Clusterlintとは
Digital Ocean製のClusterlintというツールを使ってみたので紹介します。
Kubernetesクラスタのリソースがベストプラクティスに則っているかをチェック出来ます。
例えば、
- 使われていないConfigMap、Secretがあるか
- コンテナイメージのタグがlatestではなく、ちゃんと指定しているか
- ルートユーザーや特権モードが無効化されているか
ベンダに依存しないものから、DOKS(Digital Oceanのマネージドk8s)向けのチェックがあります。
実行時に環境に合わせたチェック項目が選べます。
チェック項目の詳細はこちらのページを参照してください。
https://github.com/digitalocean/clusterlint/blob/master/checks.md
インストール
go get github.com/digitalocean/clusterlint/cmd/clusterlint
使い方
チェック項目一覧
clusterlint list
すべての項目をチェック
clusterlint run
特定の項目のみチェックしたい場合は次のように使います。
clusterlint run -c bare-pods
チェック項目にはグループ分けされており、まとめてチェックできます。
例えば、基本的な項目をまとめてチェックする場合は次のように使います。
clusterlint run -g basic
また、チェックするネームスペースを絞り込むことも出来ます。
clusterlint run -n my-namespace
特定のリソースのみ除外したい場合は次のようなannotaionsを記述します。
"metadata": {
"annotations": {
"clusterlint.digitalocean.com/disabled-checks" : "bare-pods"
}
}
感想
ベストプラクティスに則って環境を作ったつもりでしたが、漏れに気づくことが出来ました。
他のlintツールと同様、自分たちの環境に合わせてチェックする項目を選んだり、除外設定を入れたりしましょう。