0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kubectlコマンドの実行をエイリアスを使用して検知する方法

Last updated at Posted at 2024-10-24

作った理由

卒業課題で使用するためにkubectl applyされたYAMLファイルを取得したかったため,エイリアスを使用してkubectlコマンドの実行を検知する必要があったので作りました

Kubernetesとkubectl

  • Kubernetesとは
    • コンテナ化されたアプリケーションを管理するシステム
  • kubectlとは
    • Kubernetesクラスターを制御するためのコマンドライン

Alias(エイリアス)

  • エイリアスとは
    • ファイルやコマンドに別の名前を付け実行できるようにすること

kubectlコマンドを検知する方法

  1. シェルファイルを作成する

    • このシェルファイルでは,kubectlコマンドの実行とkubectlコマンドを検知して行いたい動作を書きます
    • シェルファイル(kubectl-detect.sh)
      #!/bin/bash
      
      # 実際の kubectl コマンドを実行
      /usr/local/bin/kubectl "$@"
      
      # 行いたい動作
      cat /hoge.txt
      
      • この記事では,kubectlコマンドを検知して行いたい動作として/hoge.txtに記載されている内容(hoge)をターミナルに表示します
  2. エイリアスを設定する

    • kubectlコマンドが実行されると先ほど作成したシェルファイルが実行されるエイリアスを設定する
    • /etc/profileにエイリアスを書き込みます
      • sudo vim /etc/profileでファイルを開きます
        • sudoが無いと書き込み権限がありません
      • alias kubectl='{シェルファイルを置いた場所のパス}'を最後に書き込んでください
        • シェルファイルを置いた場所のパスは,シェルファイルを置いた場所でpwdを実行するとその場所の絶対パスが表示されるので,そのパスの後ろに/kubectl-detect.shと付けえ加えたものです
    • エイリアスを書き込んだら一度VMからログアウトして,ログインし直してください
      • ログインし直すことで先ほど書き込んだエイリアスが反映されます
  3. 最後に確認

    • 例:kubectl get pod が実行されたときのターミナル表示
      No resources found in default namespace.
      hoge
      
      • No resources found in default namespace. はpodが無いときに表示される
      • hoge は先ほど作成したシェルファイルが実行され,cat /hoge.txtが実行されたことで表示された
  4. kubectlコマンドの実行の検知を辞めたい場合

    • /etc/profileに書き込んだエイリアスをコメントアウトするか削除してください
    • VMをログアウトしてログインし直すと先ほどコメントアウト(削除)したエイリアスは動作しないため,kubectlコマンドの実行を検知できなくなります
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?