このラボでは、kubectlコマンドを使ってKubernetesクラスタの情報を確認し、Podの基本的な操作を学びます。
まず、kubectlが正しく設定されていることを確認しましょう。
# Kubernetesのバージョンを確認
kubectl version
# クラスタ情報を表示
kubectl cluster-info
# ノード一覧を表示
kubectl get nodes
最もシンプルな方法でPodを作成してみましょう。containous/whoami はリクエストを受けるとホスト名やIPアドレスを返す軽量なWebサーバーです。
# whoamiコンテナを使ったPodを作成
kubectl run my-pod --image=containous/whoami
# Podの状態を確認
kubectl get pods
STATUS が Running になるまで待ちましょう。
# -w オプションで状態変化をリアルタイム監視(Ctrl+C で終了)
kubectl get pods -w
# Podの詳細情報を表示
kubectl describe pod my-pod
describe はリソースのイベント履歴や設定の詳細を表示します。トラブルシューティングに頻繁に使うコマンドです。
# Podのログを表示
kubectl logs my-pod
# リアルタイムでログを追跡(Ctrl+C で終了)
kubectl logs -f my-pod
# コンテナ内でコマンドを実行
kubectl exec my-pod -- hostname
kubectl exec my-pod -- cat /etc/os-release
# コンテナ内のシェルに入る
kubectl exec -it my-pod -- /bin/sh
# ローカルの8080番ポートをPodの80番ポートに転送
kubectl port-forward my-pod 8080:80
別のターミナルを開いて確認します:
curl http://localhost:8080
Pod名やIPアドレスが表示されれば成功です。確認したらport-forwardのターミナルで Ctrl+C で終了します。
# YAML形式で出力
kubectl get pod my-pod -o yaml
# JSON形式で出力
kubectl get pod my-pod -o json
# 特定のフィールドだけ表示
kubectl get pod my-pod -o jsonpath='{.status.podIP}'
# 幅広い情報を表示
kubectl get pods -o wide
# Podを削除
kubectl delete pod my-pod
# 削除されたことを確認
kubectl get pods
# 1. Pod作成
kubectl run nginx-test --image=nginx
# 2. 詳細確認(IP: の行を確認)
kubectl describe pod nginx-test
# 3. Pod内からアクセス
kubectl exec -it nginx-test -- curl localhost
# 4. ポートフォワード(別ターミナルで curl localhost:9090)
kubectl port-forward nginx-test 9090:80
# 5. 削除
kubectl delete pod nginx-test