この記事では、Kubernetesクラスターで最初のデプロイを作成する方法を説明します。例として、NginXのデプロイを作成します。
Kubernetesクラスタを実行すると、コンテナ化されたアプリケーションをその上にデプロイできます。これを実現するために、Kubernetesデプロイメント構成を作成できます。
デプロイは、ポッドとレプリカセットの宣言型の更新を提供します。デプロイメントで望ましい状態を記述し、デプロイメントコントローラーが実際の状態を制御された速度で望ましい状態に変更します。
「kubectl」Kubernetesコマンドラインインターフェースを使用して、デプロイを作成および管理できます。 KubectlはKubernetesAPIを使用してクラスターとやり取りします。
導入ライフサイクルには3つの段階があります:
- 進行中 :Kubernetesは、デプロイが新しいReplicaSetを作成するときに、デプロイを進行中としてマークします。デプロイは、最新のReplicaSetをスケールアップするか、古いReplicaSetをスケールダウンするか、新しいポッドが準備可能または使用可能になります。
- 完了 :Kubernetesは、デプロイに関連付けられているすべてのレプリカが更新され、利用可能になり、デプロイの古いレプリカが実行されていない場合に、デプロイを完了としてマークします。
- 失敗 :これは、クォータの不足、準備プローブの失敗、イメージプルのエラー、権限の不足が原因で発生する可能性があります。
- AWSアカウント(お持ちでない場合は作成)
- Kubernetesクラスター
注:AWS EC2インスタンスを試してみたくない場合は、VMを使用してクラスターを作成することもできます。
何をするか
- NginXのKubenetesデプロイメントを作成する
NginXのKubenetesデプロイメントを作成する
最初のデプロイを作成するには、新しいディレクトリを作成してオブジェクト/デプロイファイルを作成しましょう。次のコマンドを使用して、システムに新しいディレクトリを作成します
mkdir my-first-deployment
cd my-first-deployment /
続行する前に、クラスターのステータスを確認してください。
クラスタで使用可能なノードを確認し、「 kubectl」のバージョンを確認します 「次のコマンドを使用してください。
sudokubectlバージョン
sudokubectlgetノード
クラスタで利用可能なノードができたら、デプロイを作成する準備が整います。
次のコードブロックを使用してファイル「my-first-deployment.yml」を作成します
vim my-first-deployment.yml
--- apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80
ここ、
- apiVersion :APIVersionは、オブジェクトのこの表現のバージョン管理されたスキーマを定義します。
- 種類 :Deployment、Service、Configmapなどの作成するオブジェクトの種類。
- 名前 :名前は名前空間内で一意である必要があります。
- ラベル :オブジェクトの整理と分類に使用できる文字列キーと値のマップ
- spec :デプロイメントの望ましい動作の仕様。
- レプリカ :必要なポッドの数。
- セレクター :ポッドのラベルセレクター。これによってポッドが選択される既存のReplicaSetは、このデプロイメントの影響を受けるものになります。ポッドテンプレートのラベルと一致する必要があります。
これで、次のコマンドを使用してデプロイメントを作成する準備が整いました。
sudo kubectl apply -f my-first-deployment.yml
sudo kubectl get deploys
上のスクリーンショットでは、使用可能な2つのポッドを使用して展開が作成されていることがわかります。
次のコマンドを使用して、ポッドの詳細を取得できます。
sudo kubectl get pods
デプロイについて詳しく知りたい場合は、この「kubectldescribe」コマンドを使用してデプロイの完全な詳細を取得できます。
sudo kubectl get deploys
sudo kubectl describe deploys nginx-deployment
デプロイが不要になった場合は、「kubectldeletecommand」を使用してデプロイを削除できます。
sudo kubectl get deploys
sudo kubectl delete deploys nginx-deployment
sudo kubectl get deploys
上のスクリーンショットでは、展開が削除された後は使用できなくなっていることがわかります。
デプロイを削除すると、ポッドも削除されます。
次のコマンドを使用して、ポッドが利用可能かどうかを確認できます。
sudo kubectl get pods
上のスクリーンショットでは、展開を削除した後にポッドが削除され、使用できなくなっていることがわかります。
結論
この記事では、Kubernetesで最初のNginXデプロイを作成する手順について説明しました。また、展開に関する詳細を抽出する方法も確認しました。これに加えて、展開を削除するためのコマンドを検討しました。