- 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