この例では、ステージングと本番の 2 つのクラスターがあるシナリオを想定しています。最終的な目標は、Flux と Kustomize を活用して、重複する宣言を最小限に抑えながら 2 つのクラスターを管理することです。 HelmRepository および HelmRelease カスタム リソースを使用してデモ アプリケーションをインストール、テスト、アップグレードするように Flux を構成します。 Flux は Helm リポジトリを監視し、semver 範囲に基づいて Helm バージョンを最新のチャート バージョンに自動的にアップグレードします。 準備flux2-kustomize-helmの例
Kubernetes クラスター バージョン 1.16 以降と kubectl バージョン 1.18 以降が必要になります。ローカルで素早くテストするには、Kubernetes を使用できます。ただし、他の Kubernetes セットアップでも同様に動作します。 このガイドに従うには、GitHub アカウントとリポジトリを作成できる個人アクセス トークンが必要です (repo のすべての権限を確認してください)。 Homebrew を使用して MacOS および Linux に Flux CLI をインストールします。
または、Bash スクリプトを使用して事前コンパイルされたバイナリをダウンロードして CLI をインストールします。
プロジェクト構造Git リポジトリには、次の最上位ディレクトリが含まれています。
アプリの構成構造は次のとおりです。
apps/base/podinfo/ ディレクトリには、両方のクラスターに共通の値を持つ HelmRelease があります。
apps/staging/ ディレクトリには、ステージング固有の値を含む Kustomize パッチがあります。
バージョン: ">=1.0.0-alpha" では、HelmRelease をアルファ、ベータ、プレリリースを含む最新のチャート バージョンに自動的にアップグレードするように Flux を構成することに注意してください。 apps/production/ ディレクトリには、本番環境固有の値を持つ Kustomize パッチがあります。
バージョン: ">=1.0.0" では、HelmRelease を最新の安定したチャート バージョンに自動的にアップグレードするように Flux を構成することに注意してください (アルファ、ベータ、プレリリースは無視されます)。 インフラストラクチャー:
Infrastructure/sources/ ディレクトリには、Helm リポジトリの定義があります。
interval: 5m では、Flux が 5 分ごとに Helm リポジトリ インデックスをプルするように構成されていることに注意してください。インデックスに HelmRelease semver 範囲に一致する新しいチャート バージョンが含まれている場合、Flux はそのバージョンをアップグレードします。 ブートストラップのステージングと本番環境クラスター ディレクトリには Flux 構成が含まれています。
clusters/staging/ ディレクトリには、Kustomization 定義があります。
path: ./apps/staging では、ステージング Kustomize オーバーライドを同期するように Flux を構成し、dependsOn では、アプリケーションをデプロイする前にインフラストラクチャ項目を作成するように Flux に指示することに注意してください。 このリポジトリを個人の GitHub アカウントでフォークし、GitHub アクセス トークン、ユーザー名、リポジトリ名をエクスポートします。
一時クラスターが前提条件を満たしていることを確認します。
kubectl コンテキストをステージング クラスターに設定し、Flux をブートストラップします。
bootstrap コマンドは、clusters/staging/flux-system ディレクトリ内の Flux コンポーネントのマニフェストをコミットし、読み取り専用アクセスを持つ GitHub 上にデプロイ キーを作成して、クラスター内で変更をプルできるようにします。 ステージングにインストールされている Helm リリースに注意してください。
デモ アプリが Ingress 経由でアクセスできることを確認します。
本番環境クラスターのコンテキストとパスを設定して、本番環境で Flux をブートストラップします。
生産調整を監視する:
Kubernetes シークレットの暗号化シークレットを Git リポジトリに安全に保存するには、Mozilla の SOPS CLI を使用して、OpenPGP または KMS で Kubernetes シークレットを暗号化できます。 gnupg と sops をインストールします。
パスフレーズを指定せずに Flux の GPG キーを生成し、GPG キー ID を取得します。
秘密キーを使用してクラスター上に Kubernetes シークレットを作成します。
Kubernetes シークレット マニフェストを生成し、SOP を使用してシークレット データ フィールドを暗号化します。
シークレットをinfrastructure/redis/kustomization.yamlに追加します。
クラスターで復号化を有効にするには、infrastructure.yaml ファイルを編集します。
リポジトリにアクセスできるすべてのユーザーがシークレットを暗号化することはできても、復号化はできないように、公開キーをエクスポートします。
変更をマスター ブランチにプッシュします。
両方のクラスターの redis 名前空間にシークレットが作成されたことを確認します。
Kubernetes シークレットを使用して、Helm リリースに値を提供できます。
Helm リリース値のオーバーライドの詳細については、ドキュメントを参照してください。 クラスターの追加クラスターをフリートに追加する場合は、まずリポジトリをローカルにクローンします。
クラスターの名前でクラスター内にディレクトリを作成します。
ステージングから同期マニフェストをコピーします。
アプリ内に開発オーバーレイを作成するには、clusters/dev/apps.yaml の spec.path を path: ./apps/dev に変更してください。 変更をマスター ブランチにプッシュします。
kubectl コンテキストとパスを開発クラスターに設定し、Flux をブートストラップします。
同じ環境同一の環境を開始する場合は、production-clone などのクラスターをブートストラップし、production 定義を再利用できます。 プロダクションクローン クラスターを起動します。
変更をローカルにプルします。
clusters/production-clone ディレクトリに kustomization.yaml ファイルを作成します。
flux-system kustomize オーバーレイに加えて、プロダクション ディレクトリのインフラストラクチャとアプリのマニフェストも含まれていることに注意してください。 変更をマスター ブランチにプッシュします。
Flux に、production-clone クラスターに実稼働ワークロードをデプロイするように指示します。
|
<<: オラクル、顧客のクラウドへの移行を加速させるOracle Support Rewardsプログラムを開始
>>: Netty を使用して高性能な分散サービス フレームワークを作成する方法は?
世界の一般的な傾向として、長い分裂の期間の後には統一が起こり、長い統一の期間の後には分裂が起こります...
SEO というかっこいい名前は、確かに近年中国のインターネットで人気が出てきました。 Baidu の...
クラウド コンピューティングは、クラウド コンピューティングとは何かという最初の議論から、クラウド ...
近年、新たな科学技術革命と産業変革の深化に伴い、デジタル経済時代が本格的に到来し、コンピューティング...
デジタル経済の台頭、インターネットビジネスモデルの変革、そして現在の経済環境の複雑化により、伝統的な...
Taobao アフィリエイト プロモーションには多くの種類があります。多くの販売者は、ストアのバック...
最近ダブル11が到来し、電子商取引企業は体を温めるためにこのダブル11の「カーボン」を求めて争ってい...
ufovps では現在、10 月の特別プロモーションを開催しており、すべての VPS が 15% オ...
今日、クラウド コンピューティングの利用が増加しています。多くの組織では、クラウドへの支出、クラウド...
今日のインターネットはもはや受動的なインターネットではなく、ますます能動的なインターネットになりつつ...
「四つの徳」とは、百校フォーラムの特別教授である王立群が説いた、人として、また物事を行う上での基準で...
Swiftway は、500 名の顧客に限定した特別な VPS プロモーションを提供しています。プロ...
Serverhub は 10 年以上の歴史を持つ定評のあるホスティング会社です。HostCat の ...
ブルガリアのホスティング プロバイダー friendhosting (2009 年 4 月~) は、...
gfrack は香港独立サーバー事業(8C 香港クラスターサーバーを含む)を開始しました。マシンは香...