コピペコードで快適生活

明日使えるソースを自分のために

kubectlでpodのログを確認するまで

context、namaspace、deploymentがわかっている状態からどうやって確認するかメモ

contextの確認・設定

設定は ~/.kube/config に書いてある。

# 一覧表示
kubectl config get-contexts

# 切り替え
kubectl config use-context my-context

# 現在のcontextの表示
kubectl config current-context

namespaceの確認

同一の物理クラスター上で動作する複数の仮想クラスタhttps://kubernetes.io/ja/docs/concepts/overview/working-with-objects/namespaces/

# namespaceの一覧表示
kubectl get namespace

Deployment・ReplicaSet・Podの確認

  • Deploymentによって、複数のPodのセット(ReplicaSet)が作成される。
  • Deployment ⊃ Replicaset ⊃ Pod という関係。
  • ReplicaSetの名前は [Deployment名]-[ランダム文字列]
  • Podの名前は [ReplicaSet名]-[ランダム文字列]
  • Podの名前から、どのReplicaSetやDeploymentに属しているかがわかる。
# Deployment 一覧表示
# --namespaceでnamespaceの指定ができる
kubectl get deployments --namespace=my-space

# Deployment 1件表示
kubectl get deployment my-deployment --namespace=my-space

# ReplicaSetの確認
kubectl get rs --namespace=my-space

# Podの確認
kubectl get pods --namespace=my-space

Podのログを確認する

https://kubernetes.io/ja/docs/reference/kubectl/cheatsheet/

kubectl logs my-pod                                 # Podのログをダンプします(標準出力)
kubectl logs -l name=myLabel                        # name=myLabelラベルの持つPodのログをダンプします(標準出力)
kubectl logs my-pod --previous                      # 以前に存在したコンテナのPodログをダンプします(標準出力)
kubectl logs my-pod -c my-container                 # 複数コンテナがあるPodで、特定のコンテナのログをダンプします(標準出力)
kubectl logs -l name=myLabel -c my-container        # name=mylabelラベルを持つPodのログをダンプします(標準出力) 
kubectl logs my-pod -c my-container --previous      # 複数コンテナがあるPodで、以前に作成した特定のコンテナのログをダンプします(標準出力)
kubectl logs -f my-pod                              # Podのログをストリームで確認します(標準出力)
kubectl logs -f my-pod -c my-container              # 複数のコンテナがあるPodで、特定のコンテナのログをストリームで確認します(標準出力)
kubectl logs -f -l name=myLabel --all-containers    # name-myLabelラベルを持つすべてのコンテナのログをストリームで確認します(標準出力)

(補足)ログインする

kubectl exec -it my-pod -- bash