k9s
https://github.com/derailed/k9s
クラスタ管理用のTUIツール。UIがとても使いやすく、表示するリソースの種類やNamespaceの切り替えが簡単に素早くできる。Podのイベントやログの確認、ポートフォワードも簡単。さらにはマニフェストの定義を直接書き換えたり、ReplicaSetの数を変更したりといったことまでできる。正直これに慣れるとkubectlコマンドを打つのが苦痛になってくる。なくてはならないツール。
kubectx
https://github.com/ahmetb/kubectx
Kubernetesクラスタのコンテキストの切り替えが簡単になるツール。kubectl config get-contextや
、kubectl config use-context
コマンドをわざわざ打たなくて良くなる。fzfコマンドとの連携がサポートされていて、fzfがインストールされているとコンテキストをインタラクティブに選択できるのだが、自分はfzfではなくpecoを使っているので、シェルに以下のエイリアスを追加して使っている。
# kubectx
alias kc="kubectx | peco | xargs kubectx"
こうしておくとkc
コマンドでpecoを使ったコンテキストの切り替えができる。
kustomize
Kubernetesのマニフェストの構成管理をするツール。Staging環境とProduction環境の環境差異などをこれで吸収できる。現在kustomizeコマンドはkubectlコマンドに組み込まれていて、kubectl apply -k
で使えるようになっているが、実際に使ってみたところオリジナルのkustomizeコマンドよりもバージョンが低く使えない機能があったので、今の所オリジナルの方を使っている。
似た用途として、Helmというツールもある。Helmを動かすにはtillerをクラスタにインストールする必要があり、それが面倒でkustomizeを使っていたのだが、最近リリースされたHelm v3ではtillerが廃止されて使いやすくなったので、kustomizeからHelmに乗り換えようかなと考えていたりする。
Rancher
クラスタ管理用のWebアプリ。とても使いやすいし、Kubernetesのリソースを作成する際に、マニフェストを書かなくてもフォームの要な箇所を埋めて登録するだけで作成できてしまうのが非常に簡単で便利。Kubernetesを一般の企業で普及させていくには、どうしてもハードルが高い場合があるが、Rancherを使うとそのハードルをいくらか下げることができると思う。SSO機能もあるのでユーザー管理も楽。
Prometheus, Grafana
PrometheusとGrafanaをインストールするとKubernetesクラスタの利用状況がいい感じのダッシュボードで監視できるようになる。KubernetesにPrometheusをインストールするのはやや難しいので、kube-prometheusを使うのがおすすめ。kube-prometheusという名前だがGrafanaも一緒にインストールされる。もしくは、RancherにPrometheusとGrafanaをインストールする機能があるので、それを使ってインストールするのもあり。
Verelo
KubernetesのメタデータやPersistent Volumeのバックアップ・リストアツール。運用の面倒臭いところがこのツールを使うことが圧倒的に楽になるのでとてもおすすめ。うっかりコンテキストを間違えてデプロイしてしまったり、Namespaceを削除してしまっても安心。Producton環境でKuberentesを使うなら必須だと思う。
Trivy
https://github.com/aquasecurity/trivy
コンテナイメージの脆弱性チェックツール。UIが使いやすく、Go言語製で環境依存が小さくCIに組み込みやすいので使っている。