📅  最后修改于: 2020-10-31 13:55:33             🧑  作者: Mango
自动缩放是OpenShift的一项功能,已部署的应用程序可以根据特定规范在需要时进行缩放。在OpenShift应用程序中,自动缩放也称为pod自动缩放。应用程序缩放分为两种类型,如下所示。
垂直扩展就是在单台机器上增加越来越多的功能,这意味着增加更多的CPU和硬盘。是旧的OpenShift方法,OpenShift版本现在不支持该方法。
当需要通过增加机器数量来处理更多请求时,这种类型的缩放很有用。
在OpenShift中,有两种启用缩放功能的方法。
在此方法中,可通过deploymant配置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 .yaml
通过在oc命令行中使用以下oc autoscale命令,也可以在没有yaml文件的情况下自动缩放。
$ oc autoscale dc/database --min 1 --max 5 --cpu-percent = 75
deploymentconfig "database" autoscaled
此命令还将生成类似类型的文件,以后可将其用作参考。
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 --latest
滚动策略用于滚动更新或部署。此过程还支持生命周期挂钩,该生命周期挂钩用于将代码注入到任何部署过程中。
strategy:
type: Rolling
rollingParams:
timeoutSeconds:
此部署策略具有滚动部署策略的一些基本功能,并且还支持生命周期挂钩。
strategy:
type: Recreate
recreateParams:
pre: {}
mid: {}
post: {}
当一个人希望提供自己的部署过程或流程时,这将非常有用。所有定制都可以根据要求完成。
strategy:
type: Custom
customParams:
image: organization/mongoDB
command: [ "ls -l", "$HOME" ]
environment:
- name: VipinOpenshiftteat
value: Dev1