44
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-03-29

はじめに

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 で書きました。

44
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?