0

私はいくつかの異なる名前空間を持つgkeクラスタを持っています。他のリソースに名前空間を付けたのと同じ方法で、私のイメージを実際に名前空間に入れたいと思っています。つまり、異なる名前空間のポッドに、同じ名前を使用してイメージを参照できるようにしたいが、どちらの名前空間に応じて異なるイメージを取得するかを指定します(これがサポートされている場合)。例えば、YMLにイメージ名に名前空間の名前に置き換え:k8s/gke/gcr - 画像を名前空間にスコープ

containers: 
- image: eu.gcr.io/myproject/$(NAMESPACE)-myimage 
    name: myimage 

その後、私は名前空間mynamespaceへの私のイメージを利用できるようにeu.gcr.io/myproject/mynamespace-myimageをプッシュすることができます。

この種のことを実現するためのきれいな方法はありますか?もしそうでなければ、私は類似の質問をしている誰かを見つけることができなかったので、これはやりたいことが悪いことですか?

+0

なぜdownvoteですか? – Tom

答えて

1

私はこれが可能ではないと思います。 Kubernetesは、commandargsのようなフィールドの拡張をサポートしています。これにより、コンテナのenvフィールドに変数セットを置き換えて使用できます。これはconfigmap/secretから来る可能性があります。例:https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#use-environment-variables-to-define-arguments

しかし、imageフィールドの変数拡張は機能しません。 :(

何をしようとしていることは素晴らしいアイデアのように見えるしていません:複数の環境間で異なる画像を持つことは、テスト/ステージング環境を持つことの目的に反し

代わりに、あなたはおそらく同じを使用する必要があります必要がありますイメージは、すべてのプラットフォームで、env vars、configMapsなどを変更することでテストできます。

+0

私は正しい方法について考えていないように思えます。異なる名前空間の私の目標は、私は別の開発者のための環境を開発していました。 e。おそらく、別の方法でコードを配備するのではなく、別の名前空間を使用する方法は、小規模のチームでは名前空間を必要としたり使用したりしないでください。 – Tom