- OpenShift 教程
- OpenShift - 首页
- OpenShift - 概述
- OpenShift - 类型
- OpenShift - 架构
- OpenShift - 环境设置
- OpenShift - 基本概念
- OpenShift - 入门
- OpenShift - 构建自动化
- OpenShift - CLI
- OpenShift - CLI 操作
- OpenShift - 集群
- OpenShift - 应用扩展
- OpenShift - 管理
- OpenShift - Docker 和 Kubernetes
- OpenShift - 安全性
- OpenShift 有用资源
- OpenShift - 快速指南
- OpenShift - 有用资源
- OpenShift - 讨论
OpenShift - 应用扩展
自动扩展是 OpenShift 中的一项功能,部署的应用程序可以根据某些规范需要进行扩展和缩减。在 OpenShift 应用程序中,自动扩展也称为 Pod 自动扩展。应用程序扩展主要有以下两种类型。
垂直扩展
垂直扩展就是向单个机器添加越来越多的功能,这意味着添加更多的 CPU 和硬盘。这是一种旧的 OpenShift 方法,现在不受 OpenShift 版本支持。
水平扩展
当需要通过增加机器数量来处理更多请求时,这种类型的扩展非常有用。
在 OpenShift 中,有两种方法可以启用扩展功能。
- 使用部署配置文件
- 运行镜像时
使用部署配置文件
在这种方法中,扩展功能是通过部署配置 YAML 文件启用的。为此,使用 OC autoscale 命令以及在集群中任何给定时间需要运行的副本的最小值和最大值。我们需要一个对象定义来创建自动扩展器。以下是一个 Pod 自动扩展器定义文件的示例。
apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
name: database
spec:
scaleRef:
kind: DeploymentConfig
name: database
apiVersion: v1
subresource: scale
minReplicas: 1
maxReplicas: 10
cpuUtilization:
targetPercentage: 80
一旦我们准备好文件,需要以 YAML 格式保存它,并运行以下命令进行部署。
$ oc create –f <file name>.yaml
运行镜像时
也可以在没有 YAML 文件的情况下使用以下oc autoscale命令在 oc 命令行中进行自动扩展。
$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75 deploymentconfig "database" autoscaled
此命令也会生成类似的文件,以后可以将其用作参考。
OpenShift 中的部署策略
OpenShift 中的部署策略定义了使用不同可用方法的部署流程。在 OpenShift 中,以下重要的部署策略类型。
- 滚动策略
- 重新创建策略
- 自定义策略
以下是一个部署配置文件的示例,主要用于在 OpenShift 节点上进行部署。
kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
name: "database"
spec:
template:
metadata:
labels:
name: "Database1"
spec:
containers:
- name: "vipinopenshifttest"
image: "openshift/mongoDB"
ports:
- containerPort: 8080
protocol: "TCP"
replicas: 5
selector:
name: "database"
triggers:
- type: "ConfigChange"
- type: "ImageChange"
imageChangeParams:
automatic: true
containerNames:
- "vipinopenshifttest"
from:
kind: "ImageStreamTag"
name: "mongoDB:latest"
strategy:
type: "Rolling"
在上面的 Deploymentconfig 文件中,我们使用的策略是 Rolling。
我们可以使用以下 OC 命令进行部署。
$ oc deploy <deployment_config> --latest
滚动策略
滚动策略用于滚动更新或部署。此过程还支持生命周期钩子,用于将代码注入任何部署过程。
strategy:
type: Rolling
rollingParams:
timeoutSeconds: <time in seconds>
maxSurge: "<definition in %>"
maxUnavailable: "<Defintion in %>"
pre: {}
post: {}
重新创建策略
此部署策略具有一些滚动部署策略的基本功能,并且也支持生命周期钩子。
strategy:
type: Recreate
recreateParams:
pre: {}
mid: {}
post: {}
自定义策略
当希望提供自己的部署过程或流程时,这非常有用。可以根据需要进行所有自定义。
strategy:
type: Custom
customParams:
image: organization/mongoDB
command: [ "ls -l", "$HOME" ]
environment:
- name: VipinOpenshiftteat
value: Dev1
广告