概要
Deploymentは、Podのテンプレートを宣言し、Podの実行ポリシーを制御します。状態無しのアプリケーションのデプロイに適しています。サービスニーズに応じて、Deploymentで実行されているPodのレプリカの数、スケジューリングポリシー、更新ポリシーなどを宣言できます。
Deploymentコンソールのアクションガイド
Deploymentの作成
1. Tencent Kubernetes Engine(TKE)コンソールにログインして、左側ナビゲーションバーの【Clusters 】を選択してください。 2. Deploymentの作成を必要とするクラスターIDをクリックして、Deploymentが作成されるクラスター管理ページへ進みます。
3. 【 Create 】をクリックして、「Create a workload」ページへ進みます。
実際のニーズに応じて、Deploymentパラメータを設定します。キーパラメータの情報は以下の通りです:
ワークロード名:カスタマイズされた名称を入力します。
ネームスペース:実際のニーズに応じて選択します。
タイプ:【Deployment(Podを拡張可能にデプロイする)】を選択します。
インスタンス内のコンテナ:実際のニーズに応じて、DeploymentのPodに1つ又は複数の異なるコンテナを設定します。
名称:カスタマイズします。
イメージ:実際のニーズに応じて選択します。
イメージバージョン(Tag):実際のニーズに応じて入力します。
イメージプルポリシー:次の3つのポリシーを提供し、ニーズに応じて選択してください。
イメージプルポリシーが設定されていない場合は、イメージバージョンがnullまたはlatestであるとき、Alwaysポリシーを使用し、そうでないとき、IfNotPresentポリシーを使用します。
Always:常にリモートからこのイメージをプルします。
IfNotPresent:デフォルトではローカルイメージを使用しますが、ローカルでこのイメージがない場合は、リモートからこのイメージをプルします。
Never:ローカルイメージのみを使用します。ローカルでこのイメージがない場合は、異常を報告します。
詳細設定:「作業ディレクトリ」、「実行コマンド」、「実行パラメータ」、「コンテナ健康診断」および「特権レベル」などのパラメータを設定できます。
インスタンスの数:実際のニーズに応じて調整方法を選択し、インスタンスの数を設定します。
4. 【 Create Workload 】をクリックして、作成が完了します。下図の通りです:
実行数=目的数の場合、DeploymentでのすべてのPodが作成されたことを意味します。
Deploymentの更新
YAMLの更新
1. TKEコンソールにログインして、左側ナビゲーションバーの【Clusters】を選択してください。 2. Deploymentの更新を必要とするクラスターIDをクリックして、Deploymentが更新されるクラスター管理ページへ進みます。下図の通りです:
3. YAMLの更新を必要とするDeployment行では、【 More】>【Edit YAML】をクリックして、Deployment更新ページへ進みます。
4. 「Update Deployment」ページでYAMLを編集し、【 Finish 】をクリックしてYAMLが更新されます。下図の通りです:
Pod構成の更新
1. クラスター管理ページでは、Pod構成の更新を必要とするDeploymentのクラスターIDをクリックして、Pod構成が更新されるDeploymentのクラスター管理ページへ進みます。
2. Pod構成の更新を必要とするDeployment行では、【Updating Pod configurations】をクリックします。
3. 「Updating Pod configurations」ページでは、実際のニーズに応じて更新方法を変更し、パラメータを設定します。
4. 【Finish 】をクリックして、Pod構成が更新されます。
Deploymentのロールバック
1. TKEコンソールにログインして、左側ナビゲーションバーの【Clusters】を選択してください。 2. Deploymentのロールバックを必要とするクラスターIDをクリックして、Deploymentがロールバックされるクラスター管理ページへ進みます。
3. ロールバックを必要とするDeploymentの名称をクリックして、Deployment情報ページへ進みます。
4. 【 Modification History】タブを選択して、ロールバックを必要とするバージョンでは、【 Rollback 】をクリックします。
5. ポップアップ表示された「Roll back a resource」プロンプトでは、【Submit 】をクリックしてロールバックが完了します。
Pod数の調整
1. TKEコンソールにログインして、左側ナビゲーションバーの【Clusters 】を選択してください。 2. Pod数の調整を必要とするDeploymentのクラスターIDをクリックして、Pod数が調整されるDeploymentのクラスター管理ページへ進みます。
3. Pod数の調整を必要とするDeployment行では、【 Update Pod quantity 】をクリックして、Pod数の更新ページへ進みます。
4. 実際のニーズに応じてPod数を調整し、【Update Pod quantity 】をクリックして調整が完了します。
KubectlによるDeploymentのアクションガイド
YAMLの例
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
namespace: default
labels:
app: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx-deployment
template:
metadata:
labels:
app: nginx-deployment
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
kind:Deploymentリソースタイプを標識します。
metadata:Deploymentの名称、Namespace、Labelなどの基本情報です。
metadata.annotations:Deploymentに関する追加説明であり、このパラメータを使用してTencent Cloud TKEの追加の拡張機能を設定できます。
spec.replicas:Deploymentによって管理されるPod数です。
spec.selector:Deployment管理Seletorによって選択されたPodのLabelです。
spec.template:Deploymentによって管理されるPodの詳細なテンプレート構成です。
KubectlによるDeploymentの作成
1. YAMLの例を参照して、Deployment YAMLファイルを準備します。 3. 次のコマンドを実行して、Deployment YAMLファイルを作成します。
kubectl create -f Deployment YAMLファイル名称
例えば、ファイル名がnginx.YamlであるDeployment YAMLファイルを作成するには、次のコマンドを実行します:
kubectl create -f nginx.yaml
4. 次のコマンドを実行して、作成が成功したかどうかを確認します。
下記のような情報が返された場合は、作成が成功したことを示しています。
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
first-workload 1 1 1 0 6h
ng 1 1 1 1 42m
KubectlによるDeploymentの更新
KubectlによるDeploymentの更新には次の3つの方法が含まれています。その中で、方法1および方法2の両方とも、RecreateおよびRollingUpdateの2つの更新ポリシーをサポートします。 Recreate更新ポリシーは、最初にすべてのPodを廃棄してから、Deploymentを再作成することです。
RollingUpdate更新ポリシーは、DeploymentのPodを1つずつ更新するローリング更新ポリシーです。RollingUpdateは、一時停止、更新時間間隔の設定などもサポートします。
方法1
次のコマンドを実行して、Deploymentを更新します。
kubectl edit deployment/[name]
この方法は、単純なデバッグ確認に適しています。実稼働環境で直接使用することはお勧めしません。この方法を使用して、任意のDeploymentパラメータを更新できます。
方法2
次のコマンドを実行して、指定されたコンテナのイメージを更新します。
kubectl set image deployment/[name] [containerName]=[image:tag]
Deploymentの他のパラメータを変更せず、ビジネスが更新されたときに、コンテナイメージのみを更新することはお勧めします。
方法3
次のコマンドを実行して、指定されたリソースをローリング更新します。
kubectl rolling-update [NAME] -f FILE
KubectlによるDeploymentのロールバック
1. 次のコマンドを実行して、Deploymentの更新履歴を確認します。
kubectl rollout history deployment/[name]
2. 次のコマンドを実行して、指定されたバージョンの詳細を確認します。
kubectl rollout history deployment/[name] --revision=[REVISION]
3. 次のコマンドを実行して、前のバージョンへロールバックします。
kubectl rollout undo deployment/[name]
ロールバックバージョン番号を指定するには、次のコマンドを実行します。
kubectl rollout undo deployment/[name] --to-revision=[REVISION]
KubectlによるPod数の調整
Pod数の手動更新
次のコマンドを実行して、Pod数を手動で更新します。
kubectl scale deployment [NAME] --replicas=[NUMBER]
Pod数の自動更新
前提条件
クラスターのHPA機能をオンにします。TKEによって作成されたクラスターでは、デフォルトでHPA機能がオンになっています。
操作手順
次のコマンドを実行して、Deploymentの自動スケールアウトと自動スケールインを設定します。
kubectl autoscale deployment [NAME] --min=10 --max=15 --cpu-percent=80
KubectlによるDeploymentの削除
次のコマンドを実行して、Deploymentを削除します。
kubectl delete deployment [NAME]