Kubernetes-デプロイ

デプロイメントがアップグレードされ、レプリケーションコントローラーの上位バージョンになります。これらは、レプリケーションコントローラーのアップグレードバージョンでもあるレプリカセットの展開を管理します。レプリカセットを更新する機能があり、以前のバージョンにロールバックすることもできます。

彼らはの多くの更新された機能を提供します matchLabels そして selectors。Kubernetesマスターには、デプロイメントコントローラーと呼ばれる新しいコントローラーがあります。展開を途中で変更する機能があります。

展開の変更

Updating−ユーザーは、進行中のデプロイメントを完了する前に更新できます。これで、既存のデプロイメントが解決され、新しいデプロイメントが作成されます。

Deleting−ユーザーは、展開が完了する前に削除することで、展開を一時停止/キャンセルできます。同じデプロイメントを再作成すると、それが再開されます。

Rollback−展開または進行中の展開をロールバックできます。ユーザーは、を使用してデプロイメントを作成または更新できます。DeploymentSpec.PodTemplateSpec = oldRC.PodTemplateSpec.

展開戦略

展開戦略は、新しいRCが既存のRCをどのように置き換えるかを定義するのに役立ちます。

Recreate−この機能は、既存のすべてのRCを強制終了してから、新しいRCを起動します。これにより、迅速な展開が可能になりますが、古いポッドがダウンし、新しいポッドが起動していない場合、ダウンタイムが発生します。

Rolling Update−この機能は、古い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