この例では、ステージングと本番の 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 Webmaster Tools に新しい「ページ...
パンくずナビゲーションは非常に一般的で便利なナビゲーション システムです。特に、幅広い製品を取り扱う...
Baidu が更新されるたびに、ウェブサイトの一部が崩壊し、多くの古いウェブマスターは Baidu ...
12月16日〜17日、CNCF、NetEase Cloud Computing、VMware、Pin...
SEO技術は中国で10年近く普及しており、当時のSEOの運用方法は非常にシンプルで、意図的に行えばキ...
実は編集者もこのタイトルを無意味に考えました。サーバーは何に使うのでしょうか?サーバーは、ネットワー...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています中国インタ...
学生は学習状況を反映する評価が必要であり、教師は教育状況を反映する評価が必要であり、ビジネスパーソン...
インターネットの発展に伴い、オンラインプロモーションの重要性が高まっています。企業も個人も、インター...
私はしばらくウェブサイトの制作に携わっており、そこから多くのことを学びました。新しく立ち上げたウェブ...
Ctrip.comは同城旅行に2億ドル以上を投資し、同社の第2位の株主となった。 4月28日、Ctr...
Baidu のアルゴリズムやメジャーアップデートがリリースされると、SEO 担当者のウェブサイトのデ...
実は、使いやすくコスト効率に優れた香港のクラウド サーバーは比較的少ないのです。なぜそう言えるのでし...
このウェブサイトは2007年10月に構築されました。当時、QQタイプのサイトはまだ普及していませんで...
新浪科技は11月6日早朝、360の検索事業担当副社長の于光東氏が新浪科技などメディアとの独占インタビ...