Edited at

Kubernetes: kubectl にエイリアスを設定して生産性を上げよう

More than 1 year has passed since last update.


はじめに

Kubernetes なみなさん、日々どのくらい kubectl とタイピングしてますか? OpenShift 方面の方はニヤニヤしているかもしれませんが、kubectl はそこそこタイプ数が多いです。このコストを最小化することで日々の生産性を向上しましょう。


kubectl にエイリアスを設定する

エイリアスは k に設定します。これで oc に勝てます。

alias k="kubectl"

これだけなのですが、もちろん補完も設定しなければなりません。補完については kubectl completion: Bash/Zsh 向けの kubectl のシェル自動補完 に詳しく書いたのでそちらを参照してもらうとして、補完が有効にならないととてもじゃないですが快適な Kubernetes 生活は過ごせません。あらゆるところでコピペが必要になります。しかし残念ながらこれまではエイリアスに対して補完を設定しても正常に動作しない問題がありました。

これまでにと書いたように先日リリースされた Kubernetes 1.10 の kubectl completion においてついにエイリアスに対して設定した補完が正常に動作するようになりました :tada:

complete -o default -F __start_kubectl k

bash, zsh ともにこれで k に対して kubectl の補完が有効になります。

最終的には下記を .bashrc または .zshrc に追記してください。

bash (bash の場合は bash-completion が必要です。詳しくは kubectl completion -h を参照してください)


.bashrc

source /path/to/bash_completion

source <(kubectl completion bash)
alias k=kubectl
complete -o default -F __start_kubectl k

zsh


.zshrc

source <(kubectl completion zsh)

alias k=kubectl
complete -o default -F __start_kubectl k


1.9 以下でもエイリアスを使いたい

エイリアスで補完を使えるのは 1.10 からと言いましたが、実はワークアラウンドで 1.9 以下の kubectl でも使うことができます。

source <(kubectl completion bash | sed -e 's/kubectl/k/g')

kubectl completion bash で出力されるスクリプトの kubectl をエイリアス名に置換することでエイリアスに対して補完を有効にできます。あくまでワークアラウンドなのでどこか補完が壊れるかもしれません。できれば kubectl 1.10 を使ってください。


まとめ

Kubernetes 1.10 からエイリアスに対して kubectl の補完を使えるようになりました。より快適な Kubernetes 生活を送りましょう。


このエントリは Kubernetes / OpenShift もくもく会 No. 2 で書きました。