翻訳者 |王志軍 校正 |孫淑娟 梁策 1. 背景現在、ほとんどのアプリケーションはクラウド インフラストラクチャを使用してホストされています。クラウド インフラストラクチャは、AWS/GCP/Azure などのパブリック クラウドで利用可能なリソース、または仮想マシン (VM) やコンテナーの形式でクラウド ワークロードを実行するデータ センター サーバーなどのコンピューティング リソースです。 クラウドにより、当社のビジネスは急速に成長し、サービスはより俊敏になりますが、それにはコストがかかります。事前に割り当てられたすべてのクラウド リソースには、過剰に使用されているか、十分に使用されていないかに関係なく、運用コストが伴います。組織はこのようなコストの管理に苦労することが多く、必要な措置を積極的に講じる必要があります。 コスト関連の課題に対処する 1 つの方法は、リソースの使用を制限するために固定リソース割り当てを設定することです。もう 1 つのオプションは、適切なツール (クラウドまたはオンプレミス) を使用して、使用されるリソースの実行にかかる「総コスト」を定期的に計算することです。 リソース割り当ては単純な解決策かもしれませんが、この万能なアプローチはすべてのシナリオに適しているわけではありません。ツールによるコスト識別は、リソースに関連するコスト情報を取得するのに有効ですが、ローコードのクローズドループ自動化の使用など、プロアクティブなアクション (特定の条件が満たされた場合の条件の定義、レポートまたは修正のいずれかのアクションの実行) を必要とするさまざまなシナリオには拡張できません。 Nirmata DevSecOps プラットフォームは、これらの課題に包括的に対処するように設計されています。これは、あらゆるインフラストラクチャ上で Kubernetes ワークロードを展開、実行、最適化し、セルフサービス、職務の分離、セキュリティとガバナンスの制御を可能にする、オープンで使いやすいプラットフォームです。この投稿では、kubecost によって統計された Kubernetes ワークロードのコストが割り当てられた値よりも高い場合にアラートを出すポリシー エンジンとして Kyverno を使用します。 2. キューブコストKubecost は、Kubernetes を使用するチームにリアルタイムのコスト可視化と分析情報を提供し、クラウド コストを継続的に削減するのに役立ちます。 Kubecost は次の課題を解決します。 1. コスト配分:デプロイメント、サービス、名前空間ラベルなどの Kubernetes リソースに応じてコストを分割します。複数のクラスターのコストを 1 つのビューまたは 1 つの API エンドポイントで表示します。 2. 統合コスト監視: Kubernetes と外部のクラウド サービスまたはインフラストラクチャのコストを包括的に把握します。外部コストを償却し、Kubernetes 全体にわたって整理することで、支出を包括的に把握できます。 3. 最適化の洞察:どのリソースがコストを増加させているか、およびこれらのリソースを最適化する潜在的な方法についての洞察。パフォーマンスを犠牲にすることなく経費を削減するための動的な推奨事項を取得します。重要なインフラストラクチャまたはアプリケーションの変更を優先して、リソースの効率と信頼性を向上させます。 4. アラートとガバナンス: PagerDuty や Slack などのツールを統合して、エンジニアリング ワークフローの流れを維持します。コスト超過やインフラストラクチャの停止のリスクを、問題になる前に迅速に特定して通知します。 3. Kyverno戦略エンジンKyverno は、アドミッション コントローラーとして動作し、カスタマイズ可能なポリシーに基づいて構成データを検証、変更、生成できるオープン ソースの Kubernetes ネイティブ ポリシー エンジンです。 他の汎用ポリシー ソリューションは Kubernetes に適合されていますが、Kyverno は Kubernetes 専用に設計されています。 Kubernetes と同様に、Kyverno は宣言型管理パラダイムを採用しています。 Kyverno ポリシーは Kubernetes リソースであり、新しい言語を学習する必要はありません。 Kyverno は、誤った構成を防止し、セキュリティを強化することで Kubernetes 構成を保護します。 Nirmata DevSecOps プラットフォームNirmata DevSecOps プラットフォーム (NDP) は、企業がクラウドネイティブ オペレーティング システムとして Kubernetes を標準化するために必要なツールとプロセスを統合し、オペレーター、開発者、セキュリティ チームのワークフローをきれいに分離します。 このプラットフォームは、企業の運用チームが開発者にセルフサービス型の安全な環境を提供し、DevOps の俊敏性を高めるのに役立ちます。 Nirmata Kubernetes プラットフォームは、認証プラグインとして Kubecost をサポートしています。 Nirmata は CNCF オープンソース プロジェクト Kyverno を開発し、DevSecOps プラットフォーム上でこのプロジェクトをネイティブにサポートしています。 Kyverno ポリシー エンジンは、セキュリティと運用のベスト プラクティスが確実に遵守されるようにするための強力なツールです。 NDP は Kubecost アドオンをデプロイするために使用されます。 V. 情報の概要次に、クラスター ポリシーが Kyverno を使用して Kubernetes 名前空間の総運用コストを監視する方法について説明します。合計コストがしきい値を超えると、Kyverno は違反/失敗を作成します。合計コスト情報は、Kubecost REST API を使用して Config Map に保存されます。以下では、これらの各コンポーネントについて詳しく見ていきます。 まず、Kubecost と Kyverno をそれぞれの名前空間にデプロイします。 デモンストレーションの目的で、Nginx Web サーバーのコピーを実行する Nginx というデモ名前空間を用意します。 Kubecost は、Nirmata DevSecOps プラットフォームを使用してアドオンとしてデプロイすることもできます (この場合、Kubecost は動的ボリュームの作成に OpenEBS-hostpath ストレージ クラスを使用します)。リンクはリソース セクションに含まれています。 6. デモコンポーネント関連するすべてのファイルは、Nirmata git リポジトリに保存されます。 1. 収集スクリプト – kubecost-collector.pya. Kubernetes cron ジョブとしてバックグラウンドで実行される Python スクリプトは、Nginx 名前空間の Kubecost REST API エンドポイントからコスト情報を収集します。 http://>/model/allocation b. configmap namespace-cost configmapのコスト情報を定期的に更新する 2. 構成マップa. Kyverno 名前空間の ConfigMap。Nginx 名前空間のコスト情報が含まれています。 3. Kyvernoポリシーa. Kyverno戦略は、namespace-configmapに保存されているデータを監視して、コスト値の変化を把握します。 b. Nginx 名前空間の合計コストがしきい値を超える場合、レポートの作成は失敗します。 上記のコンポーネントは、リソース セクションの Github ページからダウンロードできます。 7. デモワークフロー1. Nginx 名前空間を作成し、Nginx レプリカをデプロイします。 kubectl 名前空間 nginx を作成する Kyverno が Kyverno 名前空間で実行されており、コスト情報を提供するために Kubecost アプリケーションが稼働していると想定します。 2. cm.yamlを使用して名前空間Kyvernoを作成する configmap 名前空間-コスト 3. namespace-cost 内の ConfigMap を更新するために必要な RBAC リソース (ServiceAccount、ClusterRole、ClusterRoleBindings) を作成します。
4. 収集スクリプト kubecost-collector.py を Kubernetes クラスターにコピーします。 A. kubecost-collector をフォルダーに配置した後、Dockerfile を使用して Docker イメージを構築します。必ず ***kubecost*** cost-analyzer REST API エンドポイントを使用してスクリプトを更新してください。 mkdir <フォルダー名> 上記のコマンドが完了したら、kubecost-collector イメージが存在することを確認します。 dockerimages kubecost -コレクター B. kubecost-collector を Kubernetes cron ジョブとして実行する kubectl create -f cron.yaml kubecost-collector が kubecost REST API エンドポイントからライブ値を取得しているため、手順 2 で作成された cm のコストがゼロ以外の値に更新されていることを確認します。 -コレクターは kubecost REST API エンドポイントからリアルタイムの値を取得しています。 5. Kyvernoクラスター戦略を作成する 名前空間-コスト ポリシーを適用する前に、適切なコストしきい値を設定します。ワークロードは最近のものであるため、当初はコストが非常に低くなる可能性があります。 6. namespace-cost ポリシーが READY 状態であることを確認します。 kubectl で cpol を取得する 新しく作成された Nginx 名前空間の運用コストが割り当てられたしきい値を下回るため、このポリシーはすぐに承認されるはずです。
7. Nginx レプリカをより高い値に増やして、合計コスト値が policy.yaml で割り当てられたしきい値よりも高くなるようにします。 あるいは、Nginx Web サーバーのレプリカではなく、Nginx 名前空間で CPU/メモリを集中的に使用するワークロードを実行することもできます。 8. 名前空間 Nginx のコストが高くなると、この戦略は失敗します。 kubectl get polr を使用してポリシー レポートを確認します。これは、Nirmata ポリシー レポート UI を使用して確認できます。 kubectlget cpolr 上記の障害に関する詳細情報は、「説明」に移動すると確認できます。
8. 結論名前空間がコストしきい値を超えると、ユーザーは個々のチームに警告し、特定のイベントに基づいてアクションを実行できます。 Kyverno は、ユーザーが定義した既存および新しいワークロードに対してアクションを実行するためのさまざまなルール (Mutate、Validate、Generate) を提供し、ポリシーで定義された条件に基づいて新しいリソースを作成することもできます (Generate)。 元のリンク: https://dzone.com/articles/cost-governance-of-cloud-native-workloads-using-kubecost-and-kyverno 翻訳者について51CTO コミュニティ エディターの Wang Zhijun (besterjun) は、国内のクラウド ベンダーのソリューション アーキテクトです。 10 年以上の業務経験を持ち、ソリューション アーキテクチャ設計、マイクロサービス、コンテナ、ネットワーク運用保守などの関連業務に長年従事してきました。クラウド ネイティブ、マイクロサービス、コンテナなどの技術分野に重点を置いています。当社は、マルチクラウドおよびハイブリッドクラウドアーキテクチャの計画、設計、実装における豊富な経験を活かし、多くの企業のクラウド移行を支援してきました。 |
<<: 企業がクラウドに移行するときにセキュリティとコンプライアンスを向上させる方法: Amazon Web Services のクラウド セキュリティの概念と実践を分析する記事
>>: 2022 年のクラウド コンピューティングにはどのような新しいトレンドが生まれるでしょうか?
Hosthatch では、スウェーデンのデータセンターに設置された、128M メモリ、SSD 搭載、...
ロイター通信によると、アマゾン、マイクロソフト、アルファベット傘下のグーグル、インテルなど米国のテク...
王世凡は、一人で働いていた頃から、今では小さなチームで働くようになり、自分が熟知しているいくつかの ...
pq.hosting は、今年の Double Eleven イベントでは、すべてのコンピューター ...
組み込みソリューションの大手グローバルサプライヤーである Cypress Semiconductor...
[51CTO.comよりオリジナル記事]インターネットの急速な発展に伴い、人類社会におけるデータ量は...
tmhhost は、Double 12 向けにハイエンド ネットワークを備えた安価な VPS を提供...
月収10万元の起業の夢を実現するミニプログラム起業支援プランハリケーン アルゴリズムは、主なコンテン...
テクノロジーは光の速さで発展していると言っても過言ではありません。クラウド データ センター市場に遅...
少し前に、Google はペンギン アルゴリズムを導入しました。これは、過度な SEO 手法によって...
Hengshui SEO は最近いくつかの問題を発見しました。最近これらの問題に遭遇しましたか? 1...
Baidu は 2 年前から PC インターネットとモバイル インターネットの交差点に立っています。...
オンラインマーケティングに従事する人々にとって、オンラインウォーターアーミーは馴染み深い存在です。い...
著者の新浪ブログは4年前に開設されました。最初は、生活の断片を記録するために使用されていました。その...
Digitaloceanは設立されて2年以上、私も1年以上Digitaloceanを使っていますが、...