よく使うkubectlコマンドたち
最近Kubernetesを使った開発を少しずつ行うようになった。その時に覚えておくと便利だと思ったコマンドを状況別にリストアップしようと思う、備忘録として。 全コマンド一覧はここから閲覧可能。
事前準備
シェル補完の有効化
echo 'source <(kubectl completion zsh)' >> ~/.zshrc
エイリアスの追加
毎度、kubectl
と入力するのは面倒なので、適当なエイリアスを追加しておく。
echo "alias k='kubectl'" >> ~/.zshalias
作業開始
kubectlがどのKubernetesクラスターに接続しているか、または接続可能かを確認する。意図しないクラスターに接続された状態でkubectl
コマンドを実行すると大事故につながるので、作業する前にどのクラスターに接続されているか必ず確認する。
コンテキスト一覧の取得
k config get-contexts
現在のコンテクストを取得
k config current-context
コンテキストの切り替え
k config use-context my-context
リソース状況の把握
Podの一覧を取得
service
やsecret
、configMap
、namespaces
などの一覧の取得もたまに使う。
k get pod -n my-namespace
Podのデバッグ
Podの詳細を表示
k describe pod my-pod -n my-namespace
Podのログを取得
Pod内にコンテナが1つしかない場合
k logs my-pod -n my-namespace
Pod内にコンテナが複数ある場合
k logs my-pod my-container -n my-namespace
コンテナでコマンドを実行(コンテナに入る)
k exec -it my-pod --container my-container -n my-namespace -- /bin/(b)ash
Serviceにポートフォワード
検証用に立てたリソースにデバッグのために接続したい時に便利。
Serviceとローカルホストを接続
k port-forward svc/service-name 5000 -n my-namespace
k port-forward svc/service-name 5000:6000 -n my-namespace
不要なリソースの削除
マニュフェストファイルから作成したリソースを全削除
k delete -f file-name.yaml
Running状態以外のPodを全て削除
Running以外のフェーズはここを参照
k delete pods --field-selector=status.phase!=Running -n my-namespace
あとがき
些か偏った内容になったけど、普段使うコマンドはこんなところだと思う。もっと知見が溜まったり便利なコマンドを発見したら第2弾を出したい。