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 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

You Missed

Kubernetes Learning 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

  • 投稿者 mh
  • 6月 24, 2025
  • 88 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第13章:ストレージとデータベースの基礎 : オブジェクトストレージ: Cloud Storage(バケット、オブジェクト、ストレージクラス)- あなたの「データ置き場」

  • 投稿者 mh
  • 6月 23, 2025
  • 101 views

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

  • 投稿者 mh
  • 6月 21, 2025
  • 102 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第12章:Cloud CDN(Content Delivery Network):あなたのWebサイトを「世界中のユーザーに超高速で届ける宅配便ネットワーク」

  • 投稿者 mh
  • 6月 20, 2025
  • 119 views

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 111 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 123 views