GNU/Linux >> Linux の 問題 >  >> Linux

Kubernetesでデプロイを作成する方法

デプロイメントは、同一のポッドのセットを表します。デプロイは、アプリケーションの複数のコピーを実行します。失敗したインスタンスは自動的に置き換えられます。アプリケーションの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

上のスクリーンショットでは、デプロイメントを削除した後、それが作成されなかったことがわかります。ただし、デプロイの一部として作成されたポッドまたはレプリカセットを削除すると、それらが作成されます。

結論

この記事では、デプロイの作成方法を学び、ポッド、レプリカセット、デプロイで削除操作を試しました。


Linux
  1. Gitタグを作成する方法

  2. サブドメインを作成する方法

  3. サブドメインを作成する方法

  1. 最初のポッドをKubernetesクラスターにデプロイする方法

  2. Kubernetesデプロイメントを削除する方法[K8sのクイックヒント]

  3. Kubernetesでサービスを削除する方法

  1. Kubernetesでカナリアをデプロイする方法

  2. Kubernetesシークレット–シークレットを作成、使用、アクセスする方法

  3. ディレクトリへのリンクを作成する方法