Kubernetes Learning 第6章:DeploymentとPodを動かす簡単なハンズオン

Kubernetesを使ううえで最も基本的かつ実用的なリソースが Deployment(デプロイメント) です。
Pod を直接作ることもできますが、本番環境では Deployment を使うのが一般的です。

このハンズオンでは、次のような流れで進めます:


🛠 ハンズオンの流れ

  1. Deploymentマニフェストを作ってみる
  2. kubectl apply でクラスタに適用
  3. 状態を get / describe / logs で確認
  4. Pod に exec で入り、動作を確認
  5. Deployment を削除してクリーンアップ

① Deploymentマニフェストを作成する

以下のような YAML ファイル(nginx-deployment.yaml)を作ってください。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.25
          ports:
            - containerPort: 80
  • replicas: 2 → Podを2つ起動する
  • image: nginx:1.25 → Docker Hub の Nginx公式イメージを使用
  • containerPort: 80 → Webサーバーなので80番ポートを開放

② クラスタに適用する

kubectl apply -f nginx-deployment.yaml

適用後、以下で状況を確認してみましょう:

kubectl get deployments
kubectl get pods

③ ログや詳細を見てみる

kubectl describe deployment nginx-deployment
kubectl get pods -o wide

# 任意のPod名に対してログ確認
kubectl logs <pod名>

④ Podに入ってWebサーバーを確認

Pod内に exec で入って curl を試すことができます。

kubectl exec -it <pod名> -- bash
# Alpine系のイメージなら sh
curl localhost

ブラウザからアクセスするには、Serviceの作成が必要になりますが、ここではハンズオンの基本にとどめます。


⑤ クリーンアップ

ハンズオン終了後は、作成したリソースを削除しておきましょう。

kubectl delete -f nginx-deployment.yaml

✨ 補足:Podを直接作る方法

Deploymentではなく、単体Pod を作る方法もあります。以下は簡単なPodの例です。

apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod
spec:
  containers:
    - name: nginx
      image: nginx:1.25
      ports:
        - containerPort: 80
kubectl apply -f nginx-pod.yaml

ただし、Pod単体では自己修復やスケーリングの機能がないため、実際の運用では Deployment を使うことが推奨されます。


✅ まとめ

操作内容
Deployment作成アプリを定義して複数Podを管理
applyYAMLを使ってクラスタに反映
get / describe状態の確認
logs / execトラブルシュートやアプリの確認に便利
deleteクリーンアップ

mh

Related Posts

Kubernetes Learning 第5章:kubectl の基本操作(get / describe / logs / exec)

Kubernetesクラスタを操作するための最重要ツールが …

Kubernetes Learning 第4章:Kubernetesを触ってみよう(最小構成で試す)

Minikube / kind / ローカル環境の選定と構築…

You Missed

Kubernetes Learning 第6章:DeploymentとPodを動かす簡単なハンズオン

  • 投稿者 mh
  • 5月 10, 2025
  • 6 views

Android application development 第10章:Bundleを使ったデータの受け渡し

  • 投稿者 mh
  • 5月 10, 2025
  • 7 views

Kubernetes Learning 第5章:kubectl の基本操作(get / describe / logs / exec)

  • 投稿者 mh
  • 5月 9, 2025
  • 17 views

Android application development 第9章:イベントリスナーの定義(Java視点からの違和感に注意)

  • 投稿者 mh
  • 5月 9, 2025
  • 18 views

Android application development 第8章:XMLによるUI記述とコードの連携

  • 投稿者 mh
  • 5月 8, 2025
  • 29 views

Kubernetes Learning 第4章:Kubernetesを触ってみよう(最小構成で試す)

  • 投稿者 mh
  • 5月 8, 2025
  • 28 views