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
廣告

© . All rights reserved.