👌

k9sでよく使うコマンド

2024/11/13に公開

k9sが非常に便利なツールですよね。
仕事でもkubernetesを触る機会が多く、そのたびにk9sを触って確認作業等を行っています。

k9s

https://github.com/derailed/k9s

上記Githubのリンクから見ていただくとおり、PodやLog、Deploymentなどコンソール上から視覚的に簡単に閲覧・操作ができるツールとなっています。

MacならBrewで入れる事が出来ます。

brew install derailed/k9s/k9s

よく使うコマンド

とりあえず

k9s

コロン系のコマンドでよく使うのは以下

  • Namespace
    • :ns
  • Deployment
    • :deploy
  • Pods
    • :pod
  • Service
    • :service
  • Ingress
    • :ingress
  • Node
    • :node
  • Secrets
    • :secrets

そしてそれぞれの状態で更によく使うコマンドはこちら

Deployment

  • Rollout Restart
    • r
  • Describe
    • d
  • Port-Forward
    • shift-f
  • Edit
    • e

特にRollout Restartは、開発環境でPod再起動をしたいときに利用しています。

また、ポートフォワードはServiceやPodを指定しなくてもDeploymentからでもポートフォワードがで来ます。
その場合一つのPodに対してポートフォワードされるような仕様のようです。

Pods

  • Delete
    • ctrl-d
  • Logs
    • return
  • Sell
    • s

PodではShellに入ってごにょごにょと検証するなどはたまに行います。
それ以外はLogが優秀なので、Logを見たり、Pod毎Killしたり。。。そのくらいでしょうか。

Service

  • Port-Forward
    • shift-f

Serviceでもポートフォワードが可能で、この場合でも一つのPodに対してポートフォワードされます。
ですので、負荷分散などを目的としたポートフォワードを実施しても分散されずにアクセスされるので注意してください。

Ingress

Hostドメインによる分岐などをIngressに記載している場合などの確認に利用します。
PathやHost名だけではなく、割り当てられているIngresControllerなども確認出来るため、
たまに見ます。

Node

  • Drain
    • r
  • Cordon
    • c

Drainを利用してNodeにPodをスケジュールしないようになり、AutoScaling設定をしている場合はそのNodeを縮退させることが出来ますので、非常によく利用するコマンドになります。

Cordonは新たにスケジュールをしないようにするのみのコマンドであり、既にPodがある場合はそれを縮退させる能力まではありません。

Secrets

  • Decode
    • x

Secretsでよくつかって良いものなのかはしっかりと議論する必要がありますが、、xコマンドでシークレット情報をデコードして表示することが出来ます。
が、セキュリティ的にデコードするのはあまり良くないので、使用する場合は十分に注意が必要です。

ましてやコピーしてどこかに貼り付けるなどはNGです。

開発環境等のSecret確認などで、正しくApply出来ているかなど影響がない範囲でデコードして確認することはあります。

最強のコマンド

d

これはdescribeで、どこでも使います。
主に設定を閲覧する際に利用することが多く、実際にApplyした内容が適切に反映されているかを確認します。

おわり

まだいくつか触っているコマンドはありますが、よく使うコマンドはこのあたりでしょうか。
他によく使うコマンドが増えてきたらこの記事に追記していこうと思います。

GitHubで編集を提案

Discussion