Kubernetes-Deployment Podの作成およびスクロールアップグレード、ロールバックコマンドの例
3919 ワード
まずdeploymentの公式解釈を見てみましょう.
Deploymentは、以前のReplicationControllerに代わってアプリケーションを容易に管理するための宣言定義(declarative)メソッドをPodおよびReplicationSetに提供します.一般的な適用シーンは次のとおりです.は、PodおよびReplicaSet を作成するためにDeploymentを定義するスクロールアップグレードおよびロールバックアプリケーション 拡張および縮小 一時停止および継続Deployment アップグレード版のRCとRSのように見え、より完璧なバージョンアップとバージョンロールバック機能を提供しています.
1、helmを使用するのと同じように、まず簡単なフォルダを構築します.
2、
3、
4、
5、
6、
deployment:(複数のアップグレードスキーム:Recreate--既存のpodをすべて削除し、新しいものを再作成します;RollingUpdate-スクロールアップグレード、逐次置換するポリシー、同時にスクロールアップグレード時に、最大使用不可pod数の設定、最小アップグレード間隔の設定など、より多くの追加パラメータをサポートします.recreateポリシーはアップグレード中にサービスを停止しますが、適用バージョンが一致することを保証します;rollingUpdateを使用すると、サービスは中断されませんが、呼び出し時にアプリケーションのバージョンが一致せず、出力内容が一致しません.)kubectl api-versions#ApiServerバージョン情報を表示kubectl create-f demodeploy.yaml--record=true#Deploymentを作成し、バージョン履歴(-record=true)注を記録します.この方法でdeploymentを作成するのではなく、helmを使用して作成しても、次のコマンドを使用できます.
kubectl rollout history deployments kubectl rollout history deployment--revision=3#deploymentバージョン履歴詳細kubectl describe deployment/demodeploy kubectl rollout status deployment/demodeploy#配置状態kubectl set image deployment/demodeploy deploy=xxxを参照-xxx:5000/docker.io/dome:v2.0--record#スクロールアップグレード(推奨)kubectl apply-f update-nginx-deployment.yaml#demodeployのミラーを変更しました.アップグレードに相当します(使用参照)kubectl rollout pause deployment/demodeploy#kubectl rollout resume deployment/demodeploy#kubectl rollout undo deployment/demodeploy#ロールバックkubectl rollout undo deployment/demodeploy--to-revision=2#ロールバックバージョンの指定
Deploymentは、以前のReplicationControllerに代わってアプリケーションを容易に管理するための宣言定義(declarative)メソッドをPodおよびReplicationSetに提供します.一般的な適用シーンは次のとおりです.
1、helmを使用するのと同じように、まず簡単なフォルダを構築します.
tree demodeploy/
demodeploy/
├── Chart.yaml
├── templates
│ └── demodeploy.yaml
└── values.yaml
2、
[root demodeploy]# cat Chart.yaml
name: demodeploy
version: "v1.0"
description: demodeploy build by Helm
3、
[root demodeploy]# cat templates/demodeploy.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: demodeploy
spec:
minReadySeconds: 5 # , 5s
strategy:
type: RollingUpdate # recreate
rollingUpdate: ## replicas 3, ,pod 2-4
maxSurge: 1 ## 1 pod
maxUnavailable: 1 ## Unavailable pod
replicas: {{.Values.core.replicas}}
template:
metadata:
labels:
app: demodeploy
spec:
containers:
- name: demodeploy
image: {{.Values.docker.registry}}/demo:{{.Values.demodeploy.version}}
imagePullPolicy: {{.Values.docker.pullPolicy}}
# resources:
# limits:
# memory: "128Mi"
# requests:
# memory: "64Mi"
volumeMounts:
- mountPath: /home/test/daopinz
name: config-volume
volumes:
- name: config-volume
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: demodeploy
labels:
app: demodepoly
spec:
type: NodePort
sessionAffinity: ClientIP
ports:
- port: 12321
name: demodeploy-port
nodePort: 32111
selector:
app: demodeploy
4、
[root demodeploy]# cat values.yaml
docker:
registry: xxx-xxx:5000/docker.io
pullPolicy: Always
core:
replicas: 2
demodeploy: # -
version: "v1.0"
5、
helm lint demodeploy/ # , ,
helm install --dry-run --debug demodeploy/ #
helm install -n demodeploy demodeploy # Pod
6、
deployment:(複数のアップグレードスキーム:Recreate--既存のpodをすべて削除し、新しいものを再作成します;RollingUpdate-スクロールアップグレード、逐次置換するポリシー、同時にスクロールアップグレード時に、最大使用不可pod数の設定、最小アップグレード間隔の設定など、より多くの追加パラメータをサポートします.recreateポリシーはアップグレード中にサービスを停止しますが、適用バージョンが一致することを保証します;rollingUpdateを使用すると、サービスは中断されませんが、呼び出し時にアプリケーションのバージョンが一致せず、出力内容が一致しません.)kubectl api-versions#ApiServerバージョン情報を表示kubectl create-f demodeploy.yaml--record=true#Deploymentを作成し、バージョン履歴(-record=true)注を記録します.この方法でdeploymentを作成するのではなく、helmを使用して作成しても、次のコマンドを使用できます.
[root demodeploy]# kubectl rollout history deployment/demodeploy
deployments "demodeploy"
REVISION CHANGE-CAUSE
5 kubectl set image deployment/demodeploy demodeploy=bcmt-registry:5000/docker.io/dome:v3.0 --record=true
7
8 kubectl set image deployment/demodeploy demodeploy=bcmt-registry:5000/docker.io/dome:v1.0 --record=true
9 kubectl set image deployment/demodeploy demodeploy=bcmt-registry:5000/docker.io/dome:v2.0 --record=true
kubectl rollout history deployments kubectl rollout history deployment--revision=3#deploymentバージョン履歴詳細kubectl describe deployment/demodeploy kubectl rollout status deployment/demodeploy#配置状態kubectl set image deployment/demodeploy deploy=xxxを参照-xxx:5000/docker.io/dome:v2.0--record#スクロールアップグレード(推奨)kubectl apply-f update-nginx-deployment.yaml#demodeployのミラーを変更しました.アップグレードに相当します(使用参照)kubectl rollout pause deployment/demodeploy#kubectl rollout resume deployment/demodeploy#kubectl rollout undo deployment/demodeploy#ロールバックkubectl rollout undo deployment/demodeploy--to-revision=2#ロールバックバージョンの指定