Member-only story
ベストプラクティスとポリシーのためのKubernetes YAMLのバリデーション(第二章)
14 min readDec 24, 2020
この記事では、KubernetesのYAMLファイルを検証し、ベストプラクティスとコンプライアンスをスコア化するための6つの静的ツールを比較しています。
長い記事なので4回に分けてお送りします。今回は第2回目です。
今回はKube-scoreとCongif-lintについてです。
Kube-score
Kube-score は YAML マニフェストを分析し、インビルドのチェックに照らしてスコアを付けます。
これらのチェックは、以下のようなセキュリティ勧告やベストプラクティスに基づいて選択されます。
・コンテナを非 root ユーザとして実行する
・ポッドのヘルスチェックを指定する
・リソースリクエストと制限の設定
チェックの結果は OK、WARNING、CRITICAL のいずれかになります。
kube-score をオンラインで試すことも、ローカルにインストールすることもできます。
この記事を書いている時点での最新リリースは1.7.0です。
以前のマニフェストbase-valid.yamlで実行してみましょう。
$kube-score score base-valid.yamlapps/v1/Deployment http-echo[CRITICAL] Container Image Tag· http-echo -> Image with latest tagUsing a fixed tag is recommended to avoid accidental upgrades[CRITICAL] Pod NetworkPolicy· The pod does not have a matching network policyCreate a NetworkPolicy that targets this pod[CRITICAL] Pod Probes· Container is missing a readinessProbeA readinessProbe should be used to indicate when the service is ready to receive traffic.Without it, the Pod is…