K8s は、コンテナ化されたアプリケーションの展開、スケーリング、管理を自動化するオープンソースのコンテナ オーケストレーション プラットフォームです。近年、K8s はクラウドネイティブ アーキテクチャとコンテナ化テクノロジーを採用する組織の標準となっています。 ただし、K8s の複雑さのため、使用しきい値を簡素化するためのツールが多数作成されています。ほとんどの企業が使用する2つのツールは、Kustomize(K8sの構成マネージャー)とHelm(K8sのパッケージマネージャー)です。 この記事では、Helm と Kustomize の機能、使用方法、およびこれらのツールの違いについて説明します。
Kustomize とは何ですか?Kustomize は、k8s クラスターの構成カスタマイズ ツールです。これにより、管理者は元のマニフェスト ファイルに影響を与えずに、テンプレート以外のファイルを使用して宣言的な変更を加えることができます。 すべてのカスタム仕様は kustomization.yaml ファイルに含まれており、既存のマニフェストの上に仕様をオーバーレイして、リソースのカスタマイズされたバージョンを生成します。 たとえば、本番環境とテスト環境にデプロイする必要があるアプリケーションがあり、その YAML 構成がほとんど同じで、いくつかのフィールドのみが異なる場合は、kustomize を使用してこの問題を解決できます。 構造をカスタマイズするKustomize は共有の基本リソースとオーバーライドを使用して、再利用性と構成生成を実現します。 Kustomize プロジェクトの一般的なディレクトリ構造は次のとおりです。 写真 Kustomize プロジェクト構造は通常、ベース ディレクトリとオーバーライド ディレクトリで構成されます。上記の構造では、ベース ディレクトリに kustomization.yaml というファイルと共有リソースのマニフェスト ファイルが含まれています。 base/kustomization.yamlファイルは、すべての環境に含まれるファイルを宣言します。 Overlays ディレクトリには、ベース フォルダー内の yaml ファイルを参照し、カスタム変更を加えてパーソナライズされたリソースを構築する kustomization.yaml も含まれています。 Overlays ディレクトリには、Kustomize が環境固有のリソースを作成するために使用する個別の yaml ファイルも含まれています。 カスタム展開の例次の一般的な例は、最小限の K8s デプロイメントに Kustomize を使用して、開発環境と本番環境にリソースをデプロイする方法を示しています。 事前依存関係
次のコマンドを使用して、サンプル Git リポジトリをクローンし、必要なマニフェストを作業環境にダウンロードします。 写真 構造は次の通りです 写真 この例では、さまざまな環境での httpd の dp と svc の展開をシミュレートします。 dev は名前の前に dev- を追加し、prod は名前の前に prod- を追加し、base はデフォルト名 httpd を使用します。
展開する
実行が完了すると、次の結果が出力されます。 写真
前と同様に、以下に示すように、「/overlays/dev」フォルダーに移動してデプロイを実行します。 出力 写真 本番環境の導入
出力 写真 検証
写真
写真 上記の結果から、設定が有効になっていることがわかります。 Helm とは何ですか?Helm は、K8s 上でアプリケーションをパッケージ化、デプロイ、管理できるツールです。最も複雑な K8s アプリケーションの定義、インストール、アップグレードにも役立ちます。 Helm も CNCF の卒業プロジェクトです。 写真 Helmにおける以下の概念 Helm Charts: 事前設定された YAML テンプレート (ここでは Charts と呼びます)。K8s アプリケーションの YAML と構成を記述するために使用されます。 Helmクライアント: Helmと対話し、これらのチャートのバージョンを管理するためのコマンドラインインターフェース Chart Warehouse: チャートを管理するウェアハウス。Maven の Nexus と同じです。たとえば、社内環境でチャートを構築してアップロードし、顧客のコンピュータルームの Chart Warehouse に接続してチャートをダウンロードし、k8s にデプロイすることができます。 Helm の例事前依存関係
Helm Charts は、事前構成された K8s リソース パッケージです。 Helm チャートには、K8s マニフェスト、環境変数、その他の構成など、特定のアプリケーションまたはサービスをデプロイするために必要なすべての情報が含まれています。 ディレクトリ名はチャートの名前です。 Helm のドキュメントに示されているように、 helm create helm-demo コマンドを使用して Chart を作成します。実行後、以下に示すように、nginxチャートがデフォルトで生成されます。 写真 チャート.yaml現在のチャートのバージョンを定義し、現在のチャートの目的を説明します。 name パラメータは、後続のアップロードとダウンロードに使用されるチャート名を示します。 値.yaml変数パラメータはこのファイルで定義され、image.repositoryなどのYAMLテンプレートで参照され、以下に示すように.Values + 変数名を通じて参照されます。 写真 _helpers.tpl共通コードブロックを定義し、yamlファイルはincludeを通じて参照される。 意味
参考文献
テンプレートこのディレクトリには主にデプロイされる yaml ファイル テンプレートが格納され、_helpers.tpl ファイルも含まれています。テンプレートは、values.yamlとChart.yamlで定義されたパラメータと、_helpers.tplで定義された共通コードブロックを参照します。 写真 展開する
写真 次のコマンドは、set を通じて 2 つのレプリカ ポッドのデプロイを指定します。このパラメータはvalues.yamlで定義されています
写真 検証2つのコピーが展開されていることがわかります
写真 主な違い操作方法Kustomize は、ディレクトリ固有の kustomization.yaml ファイルを使用して、個々のリソースを構築し、変更を加えます。これらのファイルは、共有ベース フォルダーで宣言されたリソースにパッチとオーバーライドを適用し、自動化されたマルチ環境構成を提供します。 Helm はテンプレートを使用して、value.yaml ファイルを変数ソースとして参照し、有効な K8s 構成を生成します。テンプレート ディレクトリは、デプロイ中にリソースを作成するために Helm チャートが使用するファイルをホストします。 利便性K8s バージョン 1.14 以降では、Kustomize は kubectl CLI にバンドルされているため、追加のツールを習得する必要はありません。 Kustomize は宣言型のデプロイメントをサポートし、各ファイルに純粋な YAML を使用するため、使いやすくなります。 Helm は、K8s パッケージ管理タスクに抽象化レイヤーを追加し、クラスター構成とリリースの自動化を簡素化したいチームの学習曲線を加速します。 Helm Chart は Kustomize よりも複雑ですが、より強力です。 パックKustomize にはパッケージ化機能がないため、各リソースはベース フォルダーで宣言し、バリアントはオーバーレイの kustomization.yaml ファイルで個別に宣言する必要があります。 Helm は必要なすべての K8s リソースを 1 つのフォルダーにパッケージ化し、必要に応じて再利用できるようにします。 Helm では、参照される yaml ファイルに挿入できる values.yaml ファイルを使用して、アプリケーションのデフォルトを設定したり、パラメータを変更したりすることもできます。 ネイティブ kubectl 統合K8s バージョン 1.14 以降、Kustomize には kubectl がプリインストールされています。 Helm は K8s と事前に統合されていないため、Helm を手動でインストールする必要があります。 Kustomize vs. Helm - どちらを使うべきかKustomize を使用する場合Kustomize を使用すると、元のファイルを変更せずに正確な変更を加えることができます。したがって、次のようなシナリオが考えられます
Helm を使用する場合Helm はすべての K8s オブジェクトを 1 つのパッケージにカプセル化し、各 yaml ファイルとのやり取りを減らします。これ以外にも、ほとんどのサードパーティベンダーは、自社製品を K8s にデプロイするプロセスを簡素化するために、事前に構築された Helm チャートも提供しています。したがって、監視、データベース、メッセージング ミドルウェアなどの既成ソリューションをインストールする場合、Helm が最初の選択肢となることがよくあります。 |
<<: クラウド開発に関する考察: どのクラウド開発戦略が正しい選択でしょうか?
>>: 2024年に注目すべきクラウドコンピューティングのトレンド
産業構造の変化と新技術の出現により、ますます多くの大規模グループが積極的にデジタル変革に参加し、先進...
Zheye IO: 10 月のプロモーション、全アイテムが 20% オフ、更新時も同じ価格、VPS ...
Tripodcloud の 11.11 イベントが開催中です。すべての VPS が 12% オフ、1...
vpsserver は 2009 年に設立されたアメリカのホスティング会社で、KVM 仮想化と純粋な...
9月11日、第6回CSSインターネットセキュリティリーダーシップサミット-業界特別セッションがオン...
HP は PC クライアントに最大 1TB の無料ストレージ スペースを提供しており、データの保存や...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスウェブサイトの権威とは何...
evoxt は、広い帯域幅と低価格の香港 VPS サービスを提供しています。そのため、evoxt の...
みなさんこんにちは。今日この記事を書いたのは、主にブロックされたウェブサイトからの回復の最近の過程を...
多くの友人は、タオバオアフィリエイトを始めるときに、どのように始めればよいか分かりません。多くの友人...
インターネット、特にモバイル インターネットの急速な発展に伴い、金融機関はインターネット シナリオへ...
実際、外部リンクの適時性は、SEO 実践の最適化において最近発見されたもので、ランキングの向上に重要...
Wooservers は英国に登録されたホスティング会社です (英国登録番号: 07207169)。...
greenwebpage は香港 VPS 事業を運営しています。サーバーは M247 コンピューター...
疫病の影響を受け、長い間冷え込んでいた生鮮食品トラックは再び資本の支持を得ており、アリババやJD.c...