Kubernetes 構成ファイルを素早く検証する方法 - TechRepublic

Kubernetes 構成ファイルを素早く検証する方法 - TechRepublic

アフィリエイトリンクまたはスポンサーシップを通じて、ベンダーから収益を得る場合があります。これにより、サイト上の商品配置が影響を受ける可能性がありますが、レビューの内容には影響しません。詳細は利用規約をご覧ください。

Kubernetes YAMLファイルの検証が必要です。Jack Wallenが、その作業を大幅に簡素化できる非常に簡単なツールを紹介します。

https://youtu.be/hxMQMu922m8

Kubernetesを実際に体験したことがある方なら、その難しさをご存知でしょう。多くの要素が動いているだけでなく、ポッドやコンテナの設定ファイルも非常に複雑になることがあります。マニフェストファイルのサイズが大きくなると、コストのかかる設定オプションを見落としてしまう可能性が高くなります。

こう考えてみてください。Kubernetesマニフェストの設定が適切でないと、セキュリティ上の問題が発生したり、場合によってはコストが発生したりする可能性があります。特に、AWSやGoogle Cloudのようなクラウドホスト型サービス(使用したサービスに応じて料金が発生するサービス)にポッドをデプロイする場合はなおさらです。ポッドの設定を誤ると、1つまたは複数のリソースを過剰に使用してしまい、月々の予算が無駄になってしまう可能性があります。

設定ファイルの lint チェックに時間をかけないのはなぜでしょうか? 時間がかかる可能性があるからです。

しかし、もっと簡単な方法があります。kube-scoreツールを使えば、YAMLファイルを以下のような点についてテストできます。

  • IngressはServiceをターゲットとする
  • CronJobsには期限が設定されている
  • すべてのポッドにはリソース制限とリクエストが設定されている
  • すべてのポッドは、リソースの制限が設定されているため、同じリクエストを持っています
  • すべてのポッドには、制限として同じCPUリクエストが設定されている
  • 明示的な最新ではないタグが使用されている
  • pullPolicyはAlwaysに設定されている
  • すべてのStatefulSetはPDBのターゲットとなる

チェック項目の完全なリストは、こちらでご覧いただけます。

このツールは非常に使いやすく、出力は YAML ファイルを強化して、セキュリティ ホールや不正なリソースがないようにするのに役立ちます。

この便利なツールの使い方は?説明しましょう。

参照: Kubernetes セキュリティ ガイド (無料 PDF) (TechRepublic)

必要なもの

  • Kubernetes の実行中のインスタンス
  • sudo権限を持つユーザー

kube-scoreのインストール方法

kube-scoreはシンプルなバイナリファイルなので、非常に簡単です。Ubuntu Server 20.04でデモを行います。このプラットフォームにkube-scoreをインストールするには、サーバーにログインし、以下のコマンドで必要なファイルをダウンロードしてください。

wget https://github.com/zegl/kube-score/releases/download/v1.10.1/kube-score_1.10.1_linux_amd64.tar.gz

注:必ず kube-score リリース ページをチェックして、最新バージョンをダウンロードしていることを確認してください。

次のコマンドで tar ファイルを解凍します。

tar xvzf kube-score_1.10.1_linux_amd64.tar.gz

現在の作業ディレクトリにkube-scoreファイルがあるはずです。次のコマンドで移動してみましょう。

sudo mv kube-score /usr/local/bin

マニフェストにスコアを付ける準備ができました。

kube-scoreの使い方

kube-scoreの使い方は驚くほど簡単です。例えば、チェックしたいファイル test.yaml があるとします。test.yaml ファイルがあるディレクトリに移動し、以下のコマンドを実行します。

kube-score score test.yaml

見つかった問題には、出力に WARNING または CRITICAL が表示されます (図 A )。

図A

テスト YAML ファイルに対する kube-score の出力。

この時点で、YAML ファイルで注意が必要な設定が明確にわかります。デプロイ前にこれらの問題に対処してください。

実行中のコンテナまたはポッドがある場合は、次のコマンドを使用してそれらに対して kube-score を実行できます。

kubectl api-resources --verbs=list --namespaced -o name | xargs -n1 -I{} bash -c "kubectl get {} --all-namespaces -oyaml && echo ---" | kube-score score -

この方法を使用すると、おそらくかなり多くの出力が得られるでしょう (図 B )。

図B

Kubernetes クラスター内で実行中のコンテナに対して kube-score を使用する。

もちろん、kube-score は完璧ではなく、必要な特定のチェックを実行できない可能性があります。チェックリスト全体をよく確認し、十分に網羅されているかどうかを確認してください。必要なすべてのチェックが実行できない場合でも、kube-score は、特に複雑で多数のマニフェストがある場合、手動チェックよりも YAML ファイルの検証に優れています。

kube-score を試してみて、Kubernetes デプロイメントのセキュリティと信頼性が向上するかどうかを確認してください。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。


画像: ジャック・ウォーレン
記事をシェア

こちらもご覧ください

  • マルチクラウド:チートシート
  • 給与アップにつながるIT認定資格(無料PDF)
  • パワーチェックリスト: ローカルメールサーバーからクラウドへの移行
  • 2020年のトップクラウドプロバイダー:AWS、Microsoft Azure、Google Cloud、ハイブリッド、SaaSプレーヤー
  • クラウドコンピューティング:さらに読むべき記事
ジャック・ウォーレンの画像

ジャック・ウォーレン

ジャック・ウォーレンは、TechRepublic、The New Stack、Linux New Mediaなどで受賞歴のあるライターです。20年以上にわたり様々なトピックを執筆し、オープンソースの熱心な推進者でもあります。ジャック・ウォーレンに関する詳細は、ウェブサイトjackwallen.comをご覧ください。

Tagged: