2017-12-04 8 views
1

私はいくつかのアプリをkubernetesクラスタにデプロイしました。私はyamlファイルとして領収書などを持っており、私はkubectlですべてを配備して適用します。停止時間なしにプレーンkubernetesからヘルムに移行

私はhelmに移行することを決めました。その機能のために、devとprodの間でコードを複製しないようにしました(私は変数などを使うことができました)。

私のサービスはAWS ELBであり、私が知っている限り、既にkubectlで展開されたものをhelmに移行するには、削除してhelmで再度インストールする必要があります。私のELBsを作成するので、私はDNSレコードなどを変更する必要があります。そのすべての上に、私はダウンタイムを持っています - これは本当に望んでいません。

私は古いものの名前を変更し、正しい名前で新しいものを作成し、サービスで使用する共通のラベルを保持することを考えました。新しいものを作成し、DNSレコードを変更して古いしかし、明らかに名前の変更はkubernetesによって許可されていません。

もう1つの戦略は、新しいクラスタを立ち上げることです。これは本当にやりたいことではありません。

他の選択肢はありますか?

答えて

0

適切に設計された図表は、ネームスペース配備リソースを.Release.Nameで作成してください。そうすれば、既存のソフトウェアと一緒にチャートを並べて配置することができます。スタックの大部分を並行して作成し、オンチャートポッドを指すようにオフチャートサービスを更新すると、オンチャートとオフチャートの両方のサービスを定義し、2つのあなたがオフ・チャートを取り除きたいのであれば、DNSを編集して伝播させて、1日後、1週間後、または1ヶ月後に、それをスクラップしてチャートのみに残すことができます。

+0

ええ、問題は、ヘルム・チャートに以前にデプロイされたサービス/デプロイメント/ etcと同じ名前を付けることです。そうすれば、 'helm install -name foo。/ Charts/foo'とI fooという名前のサービス、デプロイメントなどが既にあります。 – caarlos0

+0

だから、デフォルトのヘルムネームは 'funky-penguin'のようなランダムなものですから、' - 'のようなものに行きます。 'prod-myapps'(大部分は複数のサブチャートを組み合わせた傘型チャートで作業しています)、セレクタをオンにしてapp-prod-myapps-myapp1のようなものにハードコードされたオフ・チャート・サービスmysvc1を簡単に持つことができます'prod-myapps-mysvc1'の-chart svc –

+0

ええ、ええ、問題は' foo'のようなものを既に持っているので、 'kubectlは' 'kubectl -l app = foo'または' '| grep foo' ... – caarlos0

関連する問題