Kubernetes · 1 min read · Dec 09, 2025

Kubernetesクラスターでの最初のデプロイメントの作成

** この記事では、Kubernetesクラスターで最初のデプロイメントを作成する方法を見ていきます。例として、Nginxのデプロイメントを作成します。

Kubernetesクラスターが稼働していると、コンテナ化されたアプリケーションをその上にデプロイできます。これを達成するために、Kubernetesデプロイメント構成を作成できます。

デプロイメントは、PodsおよびReplicaSetsの宣言的な更新を提供します。デプロイメントで望ましい状態を記述し、デプロイメントコントローラーが実際の状態を制御された速度で望ましい状態に変更します。

「kubectl」Kubernetesコマンドラインインターフェースを使用してデプロイメントを作成および管理できます。KubectlはKubernetes APIを使用してクラスターと対話します。

デプロイメントライフサイクルには3つのステージがあります:

  1. 進行中: Kubernetesは、デプロイメントが新しいReplicaSetを作成したとき、デプロイメントが最新のReplicaSetをスケールアップしているとき、または古いReplicaSetをスケールダウンしているとき、または新しいPodsが準備完了または利用可能になったときにデプロイメントを進行中としてマークします。
  2. 完了: Kubernetesは、デプロイメントに関連するすべてのレプリカが更新され、利用可能であり、デプロイメントの古いレプリカが実行されていないときにデプロイメントを完了としてマークします。
  3. 失敗: これは、十分なクォータがない、準備プローブの失敗、イメージプルエラー、または十分な権限がない場合に発生する可能性があります。

前提条件

  1. AWSアカウント(持っていない場合は作成してください)
  2. Kubernetesクラスター

注: AWS EC2インスタンスで試したくない場合は、VMを使用してクラスターを作成することもできます。

何をするか

  1. NginxのためのKubernetesデプロイメントを作成します。

NginxのためのKubernetesデプロイメントを作成する

最初のデプロイメントを作成するために、オブジェクト/デプロイメントファイルを作成する新しいディレクトリを作成しましょう。次のコマンドを使用して、システムに新しいディレクトリを作成します。

mkdir my-first-deployment
cd my-first-deployment/

進む前に、クラスターの状態を確認してください。

クラスター内のノードを確認し、「kubectl」のバージョンを確認するには、次のコマンドを使用します。

sudo kubectl version
sudo kubectl get nodes

クラスターにノードが利用可能になったら、デプロイメントを作成する準備が整いました。

次のコードブロックを含む「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は、このオブジェクトの表現のバージョン付きスキーマを定義します。
  • kind: デプロイメント、サービス、Configmapなど、作成したいオブジェクトの種類。
  • name: 名前は名前空間内で一意である必要があります。
  • labels: オブジェクトを整理および分類するために使用できる文字列キーと値のマップ。
  • spec: デプロイメントの望ましい動作の仕様。
  • replicas: 望ましいポッドの数。
  • selector: ポッドのラベルセレクター。このデプロイメントによって選択されたポッドを持つ既存のReplicaSetsが影響を受けます。ポッドテンプレートのラベルと一致する必要があります。

次のコマンドを使用してデプロイメントを作成する準備が整いました。

sudo kubectl apply -f my-first-deployment.yml
sudo kubectl get deployments

kubectl apply

上のスクリーンショットでは、デプロイメントが作成され、使用可能な2つのポッドがあることがわかります。

次のコマンドを使用してポッドの詳細を取得できます。

sudo kubectl get pods

kubectl get pods

デプロイメントの詳細を知りたい場合は、この「kubectl describe」コマンドを使用してデプロイメントの完全な詳細を取得できます。

sudo kubectl get deployments
sudo kubectl describe deployments nginx-deployment

kubectl get deployments

デプロイメントがもはや必要ない場合は、「kubectl delete」コマンドを使用して削除できます。

sudo kubectl get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl get deployments

kubectl get deployments

上のスクリーンショットでは、デプロイメントが削除された後、もはや利用できないことがわかります。

デプロイメントを削除すると、ポッドも削除されます。

次のコマンドを使用してポッドの可用性を確認できます。

sudo kubectl get pods

上のスクリーンショットでは、デプロイメントを削除した後、ポッドが削除され、利用できないことがわかります。

結論

この記事では、Kubernetes上で最初のNginxデプロイメントを作成する手順を見ました。また、デプロイメントに関する詳細を抽出する方法も見ました。さらに、デプロイメントを削除するためのコマンドを探りました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。