デプロイメントは、同一のポッドのセットを表します。デプロイは、アプリケーションの複数のコピーを実行します。失敗したインスタンスは自動的に置き換えられます。アプリケーションの1つ以上のインスタンスが常に稼働していることを確認するのに役立ちます。デプロイはKubernetesデプロイメントコントローラーによって管理されます。デプロイメントでは、ポッドの仕様を含むポッドテンプレートを使用します。
Kubernetesのデプロイは、アプリケーションに宣言型の更新を提供するKubernetesのリソースオブジェクトです。
デプロイ仕様の詳細については、KubernetesAPIのドキュメントをご覧ください
この記事では、Kubernetesでデプロイを作成し、その操作を実行する方法を学習します。
少なくとも1つのワーカーノードを持つKubernetesクラスター。
Kubernetesクラスターの作成方法を学びたい場合は、ここをクリックしてください。このガイドは、AWS Ubuntu18l04EC2インスタンスで1つのマスターと2つのノードを持つKubernetesクラスターを作成するのに役立ちます。
デプロイメントを作成する
ファイルを作成し、その中に次のデプロイメント定義を追加します。
vim my-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: labels: app: httpd-frontend name: httpd-frontend spec: replicas: 1 selector: matchLabels: app: httpd-frontend template: metadata: labels: app: httpd-frontend spec: containers: - image: httpd:2.4-alpine name: httpd
この例では:
- httpd-frontendという名前のデプロイが作成され、
metadata: name
で示されます。 フィールド。 - デプロイでは、ポッドのレプリカが1つ作成され、
replicas
で示されます。 フィールド。 - ポッドテンプレート、または
spec: template
フィールドは、ポッドに
。app: httpd-frontend
というラベルが付いていることを示します - ポッドテンプレートの仕様、または
template: spec
フィールドは、ポッドが1つのコンテナhttpdを実行することを示します。これは、バージョン2.4-alpineでhttpd:イメージを実行します。
次のコマンドを使用して、デプロイメントを作成します
kubectl create -f my-deployment.yaml
デプロイメントを作成すると、次のコマンドを使用してその詳細を取得できます。
kubectl get deployment | grep httpd-frontend
デプロイメントはレプリカセットを作成しました。リストするには、次のコマンドを使用します。
kubectl get replicaset | grep httpd-frontend
レプリカセットによって作成されたポッドは、指定された名前に一致するポッドを一覧表示する次のコマンドを使用して一覧表示できます。
kubectl get pods | grep httpd-frontend
これで、ポッドを削除して既存のポッドが失敗した場合に、ポッドの自動作成をテストできます。
既存のポッドを削除するには、次のコマンドを使用します。
kubectl get pods | grep httpd-frontend
kubectl delete pod httpd-frontend-74fd6fd8cd-8nj2s
kubectl get pods | grep httpd-frontend
上のスクリーンショットでは、既存のポッドを削除した後にポッドが作成されたことがわかります。
これで、レプリカセットが削除されても、デプロイメントによって作成されます。
これをテストするには、次のコマンドを使用してレプリカセットを削除します。
kubectl get replicaset | grep httpd-frontend
kubectl delete replicaset httpd-frontend-74fd6fd8cd
kubectl get replicaset | grep httpd-frontend
上のスクリーンショットでは、レプリカセットを削除した後でも、レプリカセットが作成されたことがわかります。
ポッドの詳細情報を表示するには、次のようにコマンドで「-owide」を使用できます。
kubectl get pods | grep httpd-frontend
kubectl get pods -o wide | grep httpd-frontend
ポッドの完全な情報を取得するには、次のコマンドを使用して説明できます。
kubectl describe pod httpd-frontend
これで、デプロイを使用してアプリケーションをデプロイする必要がなくなった場合は、デプロイを削除することでアプリケーションを削除できます。
次のコマンドを使用して、デプロイメントを削除します。
kubectl get deployment | grep httpd-frontend
kubectl delete deployment httpd-frontend
kubectl get deployment | grep httpd-frontend
上のスクリーンショットでは、デプロイメントを削除した後、それが作成されなかったことがわかります。ただし、デプロイの一部として作成されたポッドまたはレプリカセットを削除すると、それらが作成されます。
この記事では、デプロイの作成方法を学び、ポッド、レプリカセット、デプロイで削除操作を試しました。