【Kubernetes】kubectl の便利コマンド

f:id:tm200:20210826215705p:plain

使わなくなると忘れそうなので、kubectlコマンドをメモ。
alias k=kubectl 実行済の想定です。
随時、追加します。

入門ならこの一冊😊

トークン取得

$ (k describe secret $(k get secrets | grep <サービスアカウント名> | cut -f1 -d ' ') | grep -E '^token' | cut -f2 -d':' | tr -d '\t')

ネームスペース切り替え

$ k config set-context $(k config current-context) --namespace=<ネームスペース>

# namespace一覧
$ k config view | grep namespace

tls用secret作成

base64デコード時のオプションを--decodeとすると、macでも動きます。

$ k create secret tls <secret名> --key=xxx.key --cert=xxx.crt

# 確認コマンド
$ k get secret/<secret名> -o yaml

# jqが使える場合、項目指定も
$ k get secret/<secret名> -o json | jq -r '.data."<項目名>" | base64 --decode'

# historyに出力させたくない場合
$ k get secret/<secret名> -o yaml > secret.yaml
$ grep "^data:" -A <secretの件数> secret.yaml | awk -F '{print $2}' | base64 --decode

リソースを更新して再起動

# コンフィグマップの編集
$ k edit cm <ConfigMap名>

# 変更を反映させる為、再起動
$ k rollout restart <deployment名>

ポートフォワードでデバッグ

以下のコマンドで対象Podの80番ポートがlocalhost:8080でアクセス可能となる。

$ k port-forward <pod名> 8080:80