OpenShift 应用程序扩展基础教程文档

收录于 2023-04-20 00:10:05 · بالعربية · English · Español · हिंदीName · 日本語 · Русский язык · 中文繁體

自动缩放是 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 命令行中使用以下 oc autoscale 命令。
$ 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