問題タブ [helmfile]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - Helm2 を使用した Kubernetes ローリング アップデート
Helm v2を使用してKubernetes ローリング アップデートを実行しようとしています。しかし、私はできません。
低速の Tomcat イメージでを実行するhelm upgrade
と、元のポッドが破棄されます。
Pods インスタンスを新しいインスタンスで段階的に更新し、古いインスタンスを空にすることで、ゼロ ダウンタイムを達成する方法を見つけたいと思います。
実演するために、サンプルの遅い Tomcat Docker イメージとHelm チャートを作成しました。
インストールするには:
を実行してログを追跡kubectl logs -f slowtom-sf-0
できます。準備ができたら、次のアプリケーションにアクセスできます。http://localhost:30901
改良する:
(そして、それが私が助けを必要とするところです)
タグのバージョン番号を除いてupgrade.yaml
、配置ファイルと同じです。initial.yaml
ここで元のポッドが破棄され、新しいポッドが開始されます。その間、ユーザーはアプリケーションにアクセスできませんhttp://localhost:30901
削除するには:
参照
ローカル Helm チャート
Helm チャートをダウンロードします。
ローカルの helm-chart からインストールします。
ローカル helm-chart からのアップグレード:
Docker イメージ
Dockerfile
Helm チャートのコンテンツ
slowtom/Chart.yaml
slowtom/values.yaml
slowtom/environments/initial.yaml
slowtom/environments/upgrade.yaml
slowtom/templates/deployment.yaml
slowtom/templates/service.yaml
kubernetes - 条件付きで helmfile をチャートに含める
Helm チャートを使用して kubernetes にデプロイし、helm を使用してそれらのチャートを生成します。残念ながら、私は helm または helm テンプレートに精通していません (そして、kubernetes にはあまり詳しくありません) ので、以下の質問をする際に、間違った用語を使用する可能性があります (実際、この段落で既に行っている可能性があります)。スピードアップ。
次のような Helm テンプレート foo.yaml があります。
ご覧のとおり、いくつかの環境変数を作成するスクリプトを定義しています。私は、いくつかの条件が true である変数のみを作成するという要件に取り組んでいます ( .Values.global_vars.baz == 1
)
次のようなことを行うことでこれを達成できると思います:
しかし、それは非常にエレガントな方法とは思えません。data
条件が満たされたスクリプトのみを含む条件式を入れることはできますか? このようなもの:
それが理にかなっていることを願っています。これは文字通り、実権を握る初めての遠足なので、初心者向けのガイダンスを探しています。