この例では、ステージングと本番の 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 を使用して高性能な分散サービス フレームワークを作成する方法は?
Sogouが「介入」して以来、360とBaiduの戦争は新たなレベルにエスカレートし、戦場はさらに拡...
誰もがウェブサイト ナビゲーションとは何かをご存知だと思います。ウェブサイト ナビゲーションの目的は...
新しい消費の波の出現により、多くの新しい消費者ブランドが誕生し、発展しました。新しい消費者ブランドが...
大晦日が近づき、春節祭が近づいています。お祭り気分が薄れていくのは残念ですが、春節祭で本山おじさんに...
インターネットの健全な発展を促進するため、大手検索エンジンはネットワークリソースの再編成を行ってきま...
動的 URL とは、疑問符を含む URL を指します。特にルールはなく、見た目も非常に乱雑です。もち...
【マイクロプロモーション】WeChatプロモーション方法12選周知のとおり、携帯電話でログインしたり...
[[379096]]日常的な開発プロセスでは、フロー制限とピークシェービングを実装するために Kaf...
今日のネットセレブによるライブストリーミング販売モデルは、本当のブームなのか、それとも偽りのバブルな...
トランザクションは、データベース システムにおいて非常に興味深く重要な概念です。これは、データベース...
エッジコンピューティング + IoT クラウド プラットフォームは、大手企業間の強力な協力のハイライ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeiboマーケティング...
最近、私はいとこの会社のウェブサイトの最適化を手伝っています。この会社は主に工作機械の部品を販売して...
万勝区の22歳の李麗(仮名)は、単に「個人的な興味」から、自宅で独学でパソコンのスキルを習得し、トロ...
月給5,000~50,000のこれらのプロジェクトはあなたの将来です熊張豪の発売以来、百度は伝統的な...