Kubernetes-deployments
Kubernetes-展開
展開がアップグレードされ、レプリケーションコントローラーの上位バージョン。 これらは、複製コントローラのアップグレードバージョンでもあるレプリカセットの展開を管理します。 レプリカセットを更新する機能があり、以前のバージョンにロールバックすることもできます。
これらは、 matchLabels および selectors の多くの更新された機能を提供します。 Kubernetesマスターには、それを実現する展開コントローラーと呼ばれる新しいコントローラーがあります。 展開を途中で変更する機能があります。
展開の変更
更新中-ユーザーは進行中の展開を完了する前に更新できます。 これにより、既存の展開が解決され、新しい展開が作成されます。
削除-ユーザーは、展開を完了する前に削除することで、展開を一時停止/キャンセルできます。 同じデプロイメントを再作成すると、再開されます。
ロールバック-展開または展開中の展開をロールバックできます。 ユーザーは、* DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec。*を使用して、展開を作成または更新できます。
展開戦略
展開戦略は、新しいRCが既存のRCを置き換える方法を定義するのに役立ちます。
再作成-この機能は、既存のすべてのRCを強制終了し、新しいRCを表示します。 これにより、迅速な展開が可能になりますが、古いポッドがダウンし、新しいポッドが起動しない場合、ダウンタイムが発生します。
ローリングアップデート-この機能は、古いRCを徐々にダウンさせ、新しいRCをアップさせます。 これにより、展開が遅くなりますが、展開はありません。 常に、このプロセスで使用できる古いポッドと新しいポッドはほとんどありません。
Deploymentの構成ファイルは次のようになります。
apiVersion: extensions/v1beta1 --------------------->1
kind: Deployment --------------------------> 2
metadata:
name: Tomcat-ReplicaSet
spec:
replicas: 3
template:
metadata:
lables:
app: Tomcat-ReplicaSet
tier: Backend
spec:
containers:
- name: Tomcatimage:
tomcat: 8.0
ports:
- containerPort: 7474
上記のコードでは、レプリカセットと異なるのは、種類を展開として定義したことだけです。
配置を作成
$ kubectl create –f Deployment.yaml -–record
deployment "Deployment" created Successfully.
展開を取得する
$ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVILABLE AGE
Deployment 3 3 3 3 20s
展開のステータスを確認する
$ kubectl rollout status deployment/Deployment
展開の更新
$ kubectl set image deployment/Deployment tomcat=tomcat:6.0
前の展開へのロールバック
$ kubectl rollout undo deployment/Deployment –to-revision=2