Member-only story

ベストプラクティスとポリシーのためのKubernetes YAMLのバリデーション(第一章)

gavin.zhou
10 min readDec 22, 2020

--

要約: この記事では、KubernetesのYAMLファイルを検証し、ベストプラクティスとコンプライアンスをスコア化するための6つの静的ツールを比較しています。

長い記事なので4回に分けてお送りします。今回は第一回目です。

今回はKubevalについてです。

Kubernetesのワークロードは、YAML形式のドキュメントとして最も一般的に設定されています。

YAMLの課題の1つは、マニフェストファイル間の制約や関係性を表現するのがかなり難しいことです。

クラスタにデプロイされたすべてのイメージが信頼できるレジストリから引き出されていることを確認したい場合はどうしたらいいのでしょうか?

PodDisruptionBudgetsを持たないデプロイメントがクラスタに提出されるのを防ぐにはどうしたらいいでしょうか?

静的チェックをインテグレートすることで、開発ライフサイクルに近いところでエラーやポリシー違反を検出することができます。

また、リソース定義の妥当性と安全性の保証が向上するため、本番のワークロードがベストプラクティスに従っていることを信頼することができます。

KubernetesのYAMLファイルの静的チェックのエコシステムは、以下のカテゴリにグループ化することができます。

API validators — このカテゴリのツールは、Kubernetes API サーバーに対して与えられた YAML マニフェストを検証します。

Built-in checkers — このカテゴリのツールは、セキュリティやベストプラクティスなどのopinionated checksSparseをバンドルしています。

Custom validators — このカテゴリのツールでは、RegoやJavascriptのようないくつかの言語でカスタムチェックを書くことができます。

この記事では、次の6種類のツールを学び、比較していきます。

  1. Kubeval
  2. Kube-score
  3. Config-lint
  4. Copper
  5. Conftest
  6. Polaris

それでは始めましょう。

Validating a deployment

ツールの比較を始める前に、ベースラインを設定する必要があります。

--

--

No responses yet