作った理由
卒業課題で使用するためにkubectl apply
されたYAMLファイルを取得したかったため,エイリアスを使用してkubectlコマンドの実行を検知する必要があったので作りました
Kubernetesとkubectl
- Kubernetesとは
- コンテナ化されたアプリケーションを管理するシステム
- kubectlとは
- Kubernetesクラスターを制御するためのコマンドライン
Alias(エイリアス)
- エイリアスとは
- ファイルやコマンドに別の名前を付け実行できるようにすること
kubectlコマンドを検知する方法
-
シェルファイルを作成する
- このシェルファイルでは,kubectlコマンドの実行とkubectlコマンドを検知して行いたい動作を書きます
- シェルファイル(kubectl-detect.sh)
#!/bin/bash # 実際の kubectl コマンドを実行 /usr/local/bin/kubectl "$@" # 行いたい動作 cat /hoge.txt
- この記事では,kubectlコマンドを検知して行いたい動作として
/hoge.txt
に記載されている内容(hoge)をターミナルに表示します
- この記事では,kubectlコマンドを検知して行いたい動作として
-
エイリアスを設定する
- kubectlコマンドが実行されると先ほど作成したシェルファイルが実行されるエイリアスを設定する
-
/etc/profile
にエイリアスを書き込みます-
sudo vim /etc/profile
でファイルを開きます-
sudo
が無いと書き込み権限がありません
-
-
alias kubectl='{シェルファイルを置いた場所のパス}'
を最後に書き込んでください- シェルファイルを置いた場所のパスは,シェルファイルを置いた場所で
pwd
を実行するとその場所の絶対パスが表示されるので,そのパスの後ろに/kubectl-detect.sh
と付けえ加えたものです
- シェルファイルを置いた場所のパスは,シェルファイルを置いた場所で
-
- エイリアスを書き込んだら一度VMからログアウトして,ログインし直してください
- ログインし直すことで先ほど書き込んだエイリアスが反映されます
-
最後に確認
- 例:
kubectl get pod
が実行されたときのターミナル表示No resources found in default namespace. hoge
-
No resources found in default namespace.
はpodが無いときに表示される -
hoge
は先ほど作成したシェルファイルが実行され,cat /hoge.txt
が実行されたことで表示された
-
- 例:
-
kubectlコマンドの実行の検知を辞めたい場合
-
/etc/profile
に書き込んだエイリアスをコメントアウトするか削除してください - VMをログアウトしてログインし直すと先ほどコメントアウト(削除)したエイリアスは動作しないため,kubectlコマンドの実行を検知できなくなります
-