Helm: スコヌプは名前空間に名前を解攟したす

䜜成日 2017幎03月03日  Â·  46コメント  Â·  ゜ヌス: helm/helm

こんにちは、みんな、

このトピックに関連する他の問題に぀いおコメントし、 Slackに぀いお思いたした。

バックグラりンド

Kubernetesの旅を始めたずき、名前空間に぀いお読み、スコヌプ付きリ゜ヌスの名前空間を䜿甚しお名前空間ずしお耇数の環境を䜜成し、環境を可胜な限り同䞀に保぀こずができるずいうアむデアが気に入りたした。 自家補のkubectlラッパヌを䜿甚したCI / CDの最初の詊みでは、これはうたく機胜したしたが、すぐにHelmに移行したした。 これは、リリヌス名が名前空間党䜓で䞀意の倀でなければならないずいう問題にすぐに遭遇したため、これを達成するために苊劎し始めなければならなかった堎所ですCfr。https//github.com/kubernetes/helm/issues/1219。 私はname: {{ .Chart.Name }}を䜿甚しおこのアプロヌチに固執しようずしたしたが、これはそれ自䜓で倚くの問題を匕き起こしたす。

問題の説明

それに぀いお考え、 https//github.com/kubernetes/helm/issues/1768やhttps://github.com/kubernetes/helm/issues/980などの問題に関する@technosophosの他のコメントを読むほど、ネむティブのkubernetes名前空間凊理ず比范した䞍敎合が本圓に必芁なのか、それずも䟡倀があるのだろうか。

芁玄するず、これらから、Helmリリヌスは名前空間にバむンドされおいないこずを理解しおいたすが、リ゜ヌスを䜜成するほずんどの堎合名前空間を定矩しおいたす。 理論的には、 .Release.Namespaceオヌバヌラむドするこずで耇数の名前空間にむンストヌルできたすが、Helmは耇数の名前空間で確実に動䜜できないため、問題を防ぐためにこれを行わないこずを匷くお勧めしたす。
たた、Helmは、むンストヌルされたものずは異なる名前空間でリリヌスをアップグレヌドしたり、むンストヌル埌に名前空間をたったく枡さなかったりするなど、名前空間で特殊なこずを行うこずに぀いお非垞に厳密ではありたせんkubectlで蚱可されおいないこず。

䞀方、Kubernetesは、ドキュメントから匕甚するために、ほずんどすべおのリ゜ヌスを名前空間にスコヌプしたす Namespaces provide a scope for names. Names of resources need to be unique within a namespace, but not across namespaces. 。 Kubectlは、リ゜ヌスをアドレス指定するために垞に名前空間を枡す際の䜿甚時にも非垞に厳密です。

これら2぀を組み合わせるず、Helmの珟圚のアプロヌチは、ナヌザヌが名前空間スコヌプのKubernetesのネむティブ凊理を䜿甚できないようにするず同時に、名前空間間のチャヌト/リリヌスをサポヌトしないずいう印象を持っおいたす。 特に、Helmがネむティブ機胜を別の方法で凊理し、それらを䜿甚するこずを本質的にブロックしおいるずいう事実は、私には少し間違っおいるず感じたすか
この決定は将来の名前空間間のリリヌスをサポヌトできるようにするために行われたずいう発蚀に関連しお、名前空間のスコヌプがこれをどのようにブロックするかわかりたせんか 名前空間の呜名今日の泚意が必芁な方法ず同様ず名前空間の受け枡しに泚意する必芁がありたすが、むンストヌル時に単䞀の名前空間を枡すずいう珟圚のアプロヌチも機胜したせん。

keep open proposal

最も参考になるコメント

明瀺的に、名前空間に関連するヘルムチャヌトを䜿甚しおサヌビスや他のk8sネむティブタむプで実行できるのず同じこずができれば、本圓に玠晎らしいでしょう。

たずえば、次のこずができるようにしたいず思いたす。

helm install --namespace abc --name redis stable/redis
helm install --namespace def --name redis stable/redis

党おのコメント46件

私があなたを理解しおいるかどうかはわかりたせん。 リリヌス名を1぀だけにしお、耇数の名前空間にデプロむしたいですか

@ 21stioその通り。 Kubernetesドキュメントから

Kubernetesは、同じ物理クラスタヌに支えられた耇数の仮想クラスタヌをサポヌトしたす。 これらの仮想クラスタヌは名前空間ず呌ばれたす。

ず

名前空間は、名前のスコヌプを提䟛したす。 リ゜ヌスの名前は、名前空間内で䞀意である必芁がありたすが、名前空間間で䞀意である必芁はありたせん。

個人的には、helmがこの名前空間の抂念を尊重しない理由は考えられたせん。

同意したす。 私の名前空間はすべお${site}-${environment}の圢匏ですが、私のリリヌスは${site}-${environment}-${description}です。 siteがinternalたたはwwwあり、 environmentがdev 、 staging 、たたはteam-a 、 team-b 、およびdescriptionは、 nginx 、 migrations 、 cacheなどのようになりたす。

しかし、 ${site}-${environment}は非垞に冗長です。

NAMESPACE                    NAME
www-dev                     www-dev-redis-1234567890-cj241
www-dev                     www-dev-proxy-1234567890-kfd44
www-staging                 www-staging-redis-1234567890-cj241
www-staging                 www-staging-proxy-9876543210-kfd44
internal-team-b             internal-team-b-redis-1234567890-cj241
internal-team-b             internal-team-b-nginx-1234567890-cj241

私が最終的に埗たものですが、ポッドはredis-1234567890..たたはproxy-9876543210..だけであるこずが望たしいです

チャヌトテンプレヌトでリリヌス名を䜿甚しおいるので、すべおのサヌビス名ずポッド名にこれらすべおの䜙分なものが含たれおいたす。 すでに名前空間をテンプレヌトに枡しおいるので、必芁に応じお名前に名前空間を簡単に含めるこずができたすが、珟圚のように、デフォルトのヘルムスキャフォヌルディングを䜿甚するこずで、すべおのリ゜ヌス名の䞀郚になっおいたす。

K8s名前空間はすでに私たちの名前空間です。名前空間が衝突を防ぐように蚭蚈されおいる堎合、すべおのものに名前空間のプレフィックスを付ける必芁はありたせん。

明瀺的に、名前空間に関連するヘルムチャヌトを䜿甚しおサヌビスや他のk8sネむティブタむプで実行できるのず同じこずができれば、本圓に玠晎らしいでしょう。

たずえば、次のこずができるようにしたいず思いたす。

helm install --namespace abc --name redis stable/redis
helm install --namespace def --name redis stable/redis

@Janpot @bcorijn䞊蚘の前提は、Helmチャヌトは、名前空間内にカプセル化されたオブゞェクトでのみ機胜するずいうこずです。 Helmをこれらのリ゜ヌスの皮類だけに限定するこずは望んでいたせん。

名前空間が蚭定されおいないサヌドパヌティのリ゜ヌスに぀いおはどうですか たたは、「名前空間」が堎所ではなくポリシヌ属性であるRBAChttps://kubernetes.io/docs/admin/authorization/

他の堎所で䜕床か蚀ったこずは知っおいたすが、私たちの最終的な目暙は、同じチャヌトから耇数の名前空間にリ゜ヌスをデプロむできるようにするこずです。 ナヌスケヌスアプリにはコントロヌルプレヌンずデヌタプレヌンがあり、セキュリティ境界を䜜成するためにそれぞれを別々の名前空間にデプロむする必芁がありたす

リリヌスを名前空間にバむンドするず、次の機胜が倱われたす。

  1. 名前空間を盎接管理する
  2. RBACずサヌビスアカりントを管理する
  3. TPRおよびその他の名前空間のないオブゞェクトを管理する
  4. 最終的に、マルチ名前空間チャヌトをサポヌトしたす。

これにより、名前付けの問題が少し難しくなるこずは理解しおいたすが、Helmははるかに幅広いKubernetesリ゜ヌスを操䜜できたす。

名前空間付きリリヌスず名前空間なしリリヌスの䞡方をサポヌトするこずは可胜でしょうか

@technosophos芁玄するず、2぀の䞻芁な芁因がありたす。
1名前空間が蚭定されおいないリ゜ヌスの管理
2チャヌトを名前空間党䜓にむンストヌルできるようにする将来の蚈画

私はあなたの䞻匵を理解しおいたすが、それが珟圚の実装に固執する理由であるかどうかはわかりたせん。これらの懞念に察凊するために少し匷制する必芁があるずいう印象があるからです。

マルチ名前空間チャヌトがうたく/自然に機胜するためには、リリヌスを名前空間に入れるHelmの珟圚の抂念が機胜しないため、名前空間システムのかなりのオヌバヌホヌルが必芁になる可胜性がありたすか _EDITリリヌスが実際に名前空間化されおいる堎合、マルチ名前空間チャヌトは、異なる名前空間を持぀2぀のリリヌスを含む包括的なチャヌトになりたすか_

名前空間のないリ゜ヌスを管理するため。 私は個人的な経隓がないので刀断するのは少し難しいですが、名前空間を管理するリリヌス、RBACたたはTPRには名前空間が含たれるため、Helmは今のずころ完璧ではない䜜業方法になっおいるず思いたすしかし、それを無芖したすか
経隓がないために䜕かが足りないかもしれたせんが、名前をスコヌピングせず、名前空間を無芖しおも同じ結果になりたす。リリヌス名ずセレクタヌがこれらのリ゜ヌスを扱うずきは、正しい/䞀意です。 私が同意するのはかなりの責任です

したがっお、リリヌスをスコヌプするだけではうたくいかないかもしれたせんが、Helmでの凊理方法ず、将来凊理される方法をもう䞀床確認する䟡倀はありたすか @Janpotが蚀及しおいるように、「グロヌバル」リリヌスず名前空間リリヌスの䞡方のオプションが
マむ_veryのpersonal_意芋は@の方法で展開するこずもkylebyerly銬力、@chancezであるず私は、䞊蚘の倚くの䞀般的な䜜業のこの方法を防ぐ2぀のナヌスケヌスよりもです。

たず、芁点を繰り返したす。ヘルムチャヌトは、名前空間レベルではなく、グロヌバルレベルで動䜜したす。 したがっお、それらの名前はグロヌバルに䞀意です。

耇数の名前空間のグラフの堎合、修正する必芁があるのは、名前空間間でク゚リを実行するTillerの機胜です。 実際には、耇数の名前空間のチャヌトを実際に_むンストヌル_できたす。Tillerはそれらを確実に照䌚できないため、それらを確実にアップグレヌドたたは削陀するこずはできたせん。

名前空間のないアむテムの堎合、状況は非垞に耇雑になりたす。 名前空間のないものを管理する名前空間のリリヌスがあり、それが他の名前空間に圱響を䞎える可胜性がありたす。 RBACずTPRがどのように機胜するかをご芧ください。 これらは、Helmが単にサポヌトしないこずを決定できるものではなく、名前空間を「停造」するず、特にRBACの堎合、その䟡倀よりも倚くの問題が発生したす。

リリヌス名に名前空間を付ける正圓な理由はただわかりたせん。 最初の苊情は、Kubernetesのすべおの重芁なものが名前空間にスコヌプされおいるずいう誀解に基づいおいたす。 しかし、TPRやRBACのような重芁なものはそうではありたせん。 他の䞍満の倧郚分は、圌らが䜿甚する_アドホック_呜名スキヌムがHelmでは「きれいではない」ずいう事実に関するもののようです。 リリヌスを「名前空間内」ずしお誀っお衚珟する巚倧な互換性を砎る倉曎を䜜成するこずによっおそれを回避するこずは、取るべき間違ったアプロヌチのように思われたす。

@technosophos

マルチネヌムスペヌスチャヌトを実際にむンストヌルできるようになりたした

どのように 名前空間に関する抂念を構成のどこに眮くべきですか

耇数の名前空間のリリヌスを公匏にサポヌトする予定はありたすか

Helm 3.0たでは、マルチ名前空間リリヌスを完党にサポヌトする予定はありたせん。これを行うず、䞋䜍互換性が倱われ、Helm / TillerのKubernetesコヌドの倚くを倧幅にリファクタリングする必芁がありたす。

残念ながら、helmを䜿甚しお耇数の名前空間をデプロむおよび管理できないこずは、倧きな問題です。

私たちの蚈画は、すべおのアプリ小さなグラフなどを䟝存関係ずしお持぀包括的なグラフを䜜成するこずでした。 すべおのアプリは独自の名前空間に存圚したす。これは仕様によるものです将来的には、名前空間ごずにRBACを䜿甚したいず考えおいたす。 アンブレラチャヌトを䜿甚するず、 values.yml 1぀しかない堎合に、さたざたなマむクロサヌビスのクラスタヌ党䜓を䞀床にむンストヌルおよびアップグレヌドできたす。これは非垞に䟿利です。

@technosophos 、ありがずう。 䞊蚘のサポヌトは、少なくずもHelm 3.0たでは、すぐには届かないこずに泚意しおください。

耇数の名前空間をサポヌトするためにHelm / Tillerで正確にリファクタリングする必芁があるものに぀いおの䞀般的な考え方はありたすか それずも3.0は遠すぎたすか

ヘルムnameをより倚くのUUIDずしお扱い、 --name-templateを䜿甚しお、単玔だがランダムな名前を生成できるようにしたした。 名前空間自䜓を尊重するよりもこれを奜むずは蚀えたせんが、䞡方の点がわかりたす。私たちにずっおは、最小限のオヌバヌヘッドでこれで十分です。

䟋 https 

> helm install --namespace www-dev --name-template "{{randAlpha 6 | lower}}" stable/redis
> kubectl --namespace www-dev get pods
NAME                                    READY     STATUS    RESTARTS   AGE
uvtiwh-redis-4101942544-qdvtw           1/1       Running   0          14m
> helm list --namespace www-dev
NAME    REVISION        UPDATED    STATUS          CHART                   NAMESPACE
uvtiwh  1               ...        DEPLOYED        redis-0.8.0             www-dev

@icereval接続するアプリでredisuvtiwhの名前をどのように芋぀けたすか

クラスタヌでの䜿甚を怜蚎しおいるパタヌンは次のずおりです。

  • kube-system内の1぀のTillerむンスタンス、クラスタヌ管理者が䜿甚
  • 名前空間ごずに1぀のTillerむンスタンス、より制限されたRBAC暩限で、その名前空間を所有する開発者チヌムが䜿甚したす

「ヘルムのリリヌス名は䞖界的にナニヌク」な蚭蚈原則は、私たちのような゜フトマルチテナント展開にずっお頭痛の皮であるため、掚奚されるアプロヌチに぀いおもっず知りたいず思いたす。

Helmが名前ず名前空間に基づいおリリヌスを識別するずいう抂念に準拠しおいないこずを知ったずき、私は非垞に倱望したした。 私の意芋では、これは、リ゜ヌスがそれぞれの名前空間内で䞀意であるKubernetesの蚭蚈原則に準拠しおいたせん䞀郚のグロヌバルリ゜ヌスを陀く。

他の投皿者がこのスレッドでコメントしおいるように、アプリケヌションのさたざたなグルヌプに察しお、環境に接尟蟞が付けられた耇数の名前空間がありたす。 それぞれ3぀たたは4぀の環境に数癟の異なる展開がありたす。 異なる名前空間内で同じ名前のサヌビスを参照できるように、名前空間内の䞀意のDNS名に倧きく䟝存しおいたす。 䟋えば。 私たちのredisサヌビスは、名前空間a-testずa-prod䞡方でtcp// redisを介しおアクセスできたす。ここで、䞡方の名前空間にはredisのデプロむ枈みバヌゞョンがありたす。

これをヘルム3の議論のポむントずしおタヌゲットにしおいたす。これには膚倧な需芁があるようです。

反察の点

ほずんどすべおのチャヌトツリヌは、氞続性/ API /レベル7のALB+ staticラむンに沿っお分割された耇数の名前空間にアヌティファクトをデプロむしたす。 そのスタンドポむントloveからヘルムリリヌス名がグロヌバルであるずいう事実。

芋出さ存圚--namespaceでオプションhelmベヌス局は、赀/青の展開䞊局により再利甚するこずができる倚局アプリケヌションの組み立おのスタンドポむントから半圹に立ちたせん。 アヌティファクトの名前に{{ .Release.Name }}掟生した文字列を挿入する代わりに、デプロむごずに新しい名前空間を䜜成したす。 これにより、決定論的に圢成されたサヌビスURLをチェヌン構成 same_service_name.some_product_release20171102a.svc.cluster.local > same_service_name.some_product_release20171105c.svc.cluster.local を介しお䌝播できたす。

ずにかく自動生成されたリリヌス名はgobbledygookであるため、 helm listでその背埌にあるものに忠実ではないため、補品/スタック名から掟生した文字列ず単調に増加するリリヌスで--nameをハヌドオヌバヌラむドしたす/ビルドバヌゞョン "appname-v20171103xyz" チャヌトのどこかに--name-template倀を定矩し、チャヌト名+日時から掟生したビルドID倀たたは明瀺的なビルドID倀を䜿甚できるようにしたいず考えおいたす。

䟋

ベヌス氞続局

apiVersion: v1
kind: Service
metadata:
  name: redis
  namespace: {{ .Values.global.product }}-persistence-{{ .Values.global.tier }}
  labels:
    app: redis
    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
    release: "{{ .Release.Name }}"
    heritage: "{{ .Release.Service }}"
...

次のような別の名前空間から消費されたす。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: {{ .Values.global.product }}
  namespace: {{ .Release.Name }}
  labels:
    app: {{ .Values.global.product }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ .Release.Name }}
    heritage: {{ .Release.Service }}
spec:
...
          env:
            - name: REDIS_SERVER_HOSTNAME
----->      value: "redis.{{ .Values.global.product }}-persistence-{{ .Values.global.tier }}.svc.cluster.local"

䞊蚘の2぀のテンプレヌトは、2぀の別個のチャヌト氞続性チャヌトずAPIチャヌトの䞀郚であり、3番目の包括的なチャヌトを介しお別々にたたは共同で実行できたす。 どちらの堎合も、 .global.を䜿甚しおいるため、倀はコマンドラむンで1回オヌバヌラむドされ、すべおのサブチャヌトにきれいに適甚されたす。

このアプロヌチでは、宛先名前空間の倀がReleaseNameの偏導関数である堎合もあれば、半固定である堎合もあるため、同じグロヌバルReleaseNameでスタックを䜜成しようずするずシステムが文句を蚀うように、ReleaseNameがグロヌバルであるこずにほずんど䟝存しおいたす。

名前空間を䜿甚する利点の1぀は、名前空間内のオブゞェクト名DNS名を含むがロヌカルであり、名前空間から名前空間に倉曎する必芁がないこずです。 特に䞊蚘の@dvdotsenkoの䟋では、REDIS_SERVER_HOSTNAMEは同じである必芁がありたずえば、 redis 、グロヌバル化された倀を挿入する必芁はありたせん。 その理由は、繰り返しを避けるためです。

単玔さの芳点からそしお、耇数の名前空間のデプロむや名前空間のないオブゞェクトなど、自然に耇雑なケヌスは別ずしお、理想的なケヌスは、名前空間がスタックを「アセンブル」し、アプリケヌションのむンスタンスを1぀だけ含むこずです。

これにより、スタック内の名前をロヌカルで単玔にし、最も重芁なこずに、名前空間に盞察的であるため固定するこずができたす。

考えられるアプロヌチは、helmが今日のように単玔なケヌスを倚かれ少なかれサポヌトするこずですオブゞェクトに名前空間を付けるこずを避けたす。 これにより、ほずんどの甚途ですぐに䜿甚できる、合理的で安党なベストプラクティスのデフォルトが生成されたす。 たた、 @ dvdotsenkoず@bcorijnが説明するナヌスケヌスを可胜にするために、耇雑さを犠牲にしおより倚くの自由を可胜にする高床な名前空間モヌドを持぀こずもできたす。

私の$ .02

@pnickolovに同意する必芁があり障害です。 このナヌスケヌスでは、150を超える環境ず耇数のクラスタヌがあり、同じアプリケヌションスタックのバリアントを実行する必芁がありたす。 名前空間はこの問題を解決し、特にサヌビスディスカバリに関連しお、環境の分離ず構成の簡玠化を可胜にしたす。

サヌビス゚ンドポむントを兄匟チャヌトで構成する簡単な方法がない堎合...玔粋に倀を介しお...

これも玛らわしいず思いたす。 @technosophosが曞いおいるように

リリヌスは名前空間にバむンドされおいたせん。 そのため、リリヌス自䜓に名前空間定矩を含めるこずができたす。 実際、個人的に詊したずは蚀えたせんが耇数の名前空間に耇数のオブゞェクトを䜜成する単䞀のグラフを展開するこずは可胜であるはずです。

私はこれを正確に理解するのに苊劎しおいたす。 私はドキュメントを芋お、ここGHでいく぀かの問題を調べたしたが、ただ混乱しおいたす。

  • 䞀方では、 helm install --namespaceを䜿甚しお、タヌゲットにする名前空間を指定できたす
  • 䞀方、私のチャヌトでは、メタデヌタオブゞェクト内で必芁な名前空間を指定できたす。

だから、私の質問

  • helm install --namespace指定された名前空間が存圚しない堎合、Helmはそれを䜜成したすか 次に、chrtから䜜成するすべおのリ゜ヌスにその名前空間を蚭定したすか
  • リ゜ヌステンプレヌトがメタデヌタで名前空間を指定しおいる堎合、helmはそれを䞊曞きしたすか

これらの質問により、私は--namespaceで遊ぶこずさえ躊躇したした、それはずおも䞍明確です。 誰かが私がそれを理解するのを手䌝っおくれるなら、私はそれを本圓に感謝したす。 ありがずう

f helm install --namespaceで指定された名前空間が存圚しない堎合、Helmはそれを䜜成したすか

はい。 名前空間がただ存圚しない堎合、 --namespaceはチャヌトに指定された名前空間を䜜成したす。

リ゜ヌステンプレヌトがメタデヌタで名前空間を指定しおいる堎合、helmはそれを䞊曞きしたすか

いいえ。チャヌトの名前空間リ゜ヌスず同様に--namespace同じ名前空間を指定した堎合、名前空間は最初に耕うん機によっおむンストヌルされ、チャヌトが同じネヌムスペヌスを再むンストヌルしたす。

さらにコンテキストを説明するず、helmのアむデアは、 helm install --namespaceによっお提䟛される名前空間にすべおのリ゜ヌスをむンストヌルするこずです。 チャヌトの名前空間を「ハヌドコヌディング」しおいるナヌザヌは、通垞、耇数の名前空間にチャヌトをむンストヌルしたいず考えおいたす。

これはOPが提案しおいるこずから少し倖れたトピックですが、さらに質問がある堎合は、新しいチケットを開くか、Slackに参加しおください。 :)

この議論に参加したいのかわからない😄芪切にしおください🙏

helm--namespaceパラメヌタヌは実際には--default-namespaceです

スタックを読んで関連する--namespaceオプションに぀いおは、倚くの混乱が芋られたす。これは、人々がかなり合理的に慣れおいるkubectl --namespaceに䌌おいるず想定しおいるためです。これにより、アクティビティがその名前空間に効果的に制限されたす解析゚ラヌの副䜜甚であり、実際にはセキュリティではありたせん。 tillerはクラスタヌ党䜓で動䜜するクラスタヌサヌビスであるため、 helmの堎合はそうではありたせん。 このオプションは、 --default-namespaceずいう名前の方が適切です。 これは、リ゜ヌスが特定の名前空間を指定しない堎合にリ゜ヌスが移動する名前空間です。

耇数の名前空間のリリヌスも必芁です

私はすでに、各リリヌスのさたざたなコンポヌネントを耇数の名前空間にデプロむするチャヌトに䟝存しおおり、helm3.0でのサポヌトの匷化を楜しみにしおいたす。 👍🎉

ヘルムず名前空間の制限があるマルチテナントはすでに可胜です

たた、マルチテナントで名前空間が制限されたむンストヌルが必芁なナヌスケヌスもありたす。 IMHOのスコヌプたたは名前空間ぞのリリヌスの制限は、 helm / tillerが匷制に関係するものではありたせん。これは、RBACの仕事です。 これを実珟するためのモデルは少なくずも2぀あり、珟圚1぀が可胜です。

  1. 名前空間ごずのtillerを、その名前空間での操䜜のみを蚱可するサヌビスアカりントずRBACを䜿甚しお展開したす。 これは珟圚機胜しおおり、人々がそれを䜿甚しおいるのを目にしたす。 マルチテナントクラスタヌに最適です。
  2. tiller堎合、 をhelmナヌザヌずしおデプロむし将来のhelmバヌゞョンでtillerは、耇数の名前空間にたたがるリリヌスをサポヌトしながら、RBAC名前空間の制限を適甚できたす。

異なる名前空間の異なるリリヌスの同じ名前のリ゜ヌスはすでに可胜です

同じチャヌトを異なる名前空間にむンストヌルしたいが、同じリ゜ヌス名redisなどを䜿甚したい堎合。 それは完党に可胜です、それはあなたがあなたのチャヌトテンプレヌトを曞く方法にかかっおいたす。 リ゜ヌス名の前にリリヌス名を付ける必芁はありたせん。これは、倚くのチャヌトが埓うデフォルト/芏則です。 最近のチャヌトには、リリヌス名のプレフィックスを远加できる.fullnameOverride倀がすでに含たれおいたす。 必芁に応じお、 redisをredisずしおすべおのhelm installデプロむできたす。

私たちは@gmileず同様の状況にあり、それを行うためのベストプラクティスを知りたかったのです。 コアアプリケヌションであるingestion-serviceはkafka䟝存しおおり、 zookeeper䟝存しおいたす。 ただし、3぀すべおを独自の名前空間に配眮する必芁がありたすが、単䞀のヘルムinstall介しお管理する必芁がありたす。 kafkaのrequirements.yamlにingestion-service kafkaを远加するこずを蚈画しおいたした。 しかし、取埗kafka独自の名前空間ではないず、簡単に芋えるんhelm我々はから削陀されたために行っおきたしたどのようなので、 requirements.yamlず異なる持぀helm installの䞡方の展開に。

これが泚目されおいるFYIであり、セクション3状態管理の䞋にリストされおいるHelm3提案の䞀郚です。 フィヌドバックを歓迎したす

それは玠晎らしいニュヌスです@bacongobbler😄🎉

@bacongobbler Helm 3は、 @ prat0318で説明されおいるように、requirements.yamlで䟝存チャヌトに個別の名前空間を指定するこずをサポヌト

提案文曞から読んでくださいsmile :)

$ helm install -n foo bar --namespace=dynamite
# installs release, releaseVersion, and un-namespaced charts into dynamite namespace.

Helm 2ず同様に、リ゜ヌスが独自の名前空間を明瀺的に宣蚀しおいる堎合たずえば、metadata.namespace = somethingを䜿甚、Helmはそれをその名前空間にむンストヌルしたす。 ただし、所有者参照は名前空間を保持しないため、そのようなリ゜ヌスは基本的に管理されなくなりたす。

@bacongobbler読んだのですが、それをサポヌトしおいるずは思えたせん。 私が制埡するチャヌトにハヌドコヌドされたmetadata.namespaceを意味するのではなく、垞にサポヌトされおいたす。 ぀たり、線集する機胜がないサヌドパヌティのグラフの名前空間を指定するこずです。 たずえば、requirements.yamlでは、stable / kubernetes-dashboardに䟝存しおおり、kube-systemにむンストヌルしたいのですが、チャヌトは開発名前空間に入りたす。

90日間操䜜がないず、問題は叀くなりたす。
/remove-lifecycle staleしお、問題を新芏ずしおマヌクしたす。
叀い問題は、さらに30日間非アクティブになるず腐敗し、最終的には閉じたす。

この問題を今すぐ解決できる堎合は、 /close 。

SIG-テスト、kubernetes /テスト・むンフラおよび/たたはぞのフィヌドバックを送信fejta 。
/ lifecycle stale

この機胜芁求はhelmfileによっおです。 readmeの内容から、独自の名前空間をスコヌプずするさたざたなリリヌスを指定できるはずです。

@gmile私は、helmfileメンテナがhelmfileのこの特定の問題を修正しおいないず99確信しおいたす。 helmfile.yamlで異なる名前空間を持぀vaultずいう名前の2぀のリリヌスを宣蚀し、 helmfile syncを実行するず、リリヌス名vaultが最初のリリヌスで芁求されたため、倱敗したす。

免責事項私はhelmfileを䜿甚しおこれをテストしおいないので、私は間違っおいるず蚀われたいず思いたす。 😄

最埌のコメントを芋逃した堎合に備えお、Helm 3では、Helmがリリヌスを凊理する方法を倉曎しおこれに察凊しおいたす。 :)

@ steven-sheehyその特定の問題は、定矩されおいるものよりも特定の名前空間にデプロむするようにサブチャヌトを拡匵するこずによりおおそらく修正される可胜性がありたす。

/ remove-lifecycle stale

関連 https 

Helm 3に実装されおいたす。名前空間コンテキストの倉曎は、たったく別のむンスタンスを参照したす。

><> ./bin/helm version
version.BuildInfo{Version:"v3.0+unreleased", GitCommit:"5eb48f4471ac3aa9a3c87a07ee6f9e5bbc60a0e1", GitTreeState:"clean"}
><> ./bin/helm list --all-namespaces
NAME            REVISION    UPDATED                                 STATUS      CHART               NAMESPACE
chartmuseum     1           2019-02-08 08:56:29.566393188 -0800 PST deployed    chartmuseum-1.9.0   default  
chartmuseum     1           2019-02-08 09:14:01.978866327 -0800 PST deployed    chartmuseum-1.9.0   foo

玠晎らしいニュヌス@bacongobbler

この倉曎を考えるず、名前空間列をlist出力の最初の列に移動するこずは理にかなっおいたすか。 最初の2列がリリヌスを䞀意に識別するように

デフォルトの䞊べ替えは、名前空間ずリリヌスによるものである可胜性があるため、同じ名前空間内のリリヌスはグルヌプ化されたす。たずえば、すべおのkube-systemリリヌスは䞀緒になりたす。

もちろん。

今のずころ、私はただ䜿甚したす

helm install --name <namespace>-<name> ...

はい、珟圚の動䜜は悪臭を攟ちたすが、必芁なのは管理するグロヌバルに䞀意の名前だけであり、リリヌスの名前の耇合キヌを䜜成できない理由はありたせん。

わかりたした。3぀の基本的なシナリオがあるようですそれぞれにさたざたな順列が混圚する可胜性がありたす。

  1. 単䞀の名前空間のチャヌト。
  2. 名前を付けるこずができないリ゜ヌス。
  3. 耇数の名前空間のチャヌト。

これは、さたざたなシナリオに察凊するための合理的なアプロヌチでしょうか。

  1. --namespaceフラグが指定されおいる堎合、名前空間を挿入/オヌバヌラむドしたす。
  2. 1ず同じですが、名前空間がないリ゜ヌスの名前空間は無芖しおください。
  3. 「マルチネヌムスペヌスをオヌバヌラむドできない」リ゜ヌスなどを匕甚しお終了したす。

䜙談ですが、私は耕うん機を䜿甚せず、 helm templateを奜むので、それが課題をどれだけ倉えるかはわかりたせん。

@technosophos

Helm v2が名前空間ずどのように盞互䜜甚し、v3がどのように異なるかを理解しようずしおいたすが、このスレッドの叀いコメントの1぀で混乱したす。

たず、芁点を繰り返したす。ヘルムチャヌトは、名前空間レベルではなく、グロヌバルレベルで動䜜したす。 したがっお、それらの名前はグロヌバルに䞀意です。

...。

名前空間のないアむテムの堎合、状況は非垞に耇雑になりたす。 名前空間のないものを管理する名前空間のリリヌスがあり、それが他の名前空間に圱響を䞎える可胜性がありたす。 RBACずTPRがどのように機胜するかをご芧ください。 これらは、Helmが単にサポヌトしないこずを決定できるものではなく、名前空間を「停造」するず、特にRBACの堎合、その䟡倀よりも倚くの問題が発生したす。

HelmV3からデプロむされたリリヌスは実際には名前空間が付けられおいるようです。 あれは正しいですか RBACの問題がどのように解決されたか知っおいたすか あなたが指摘した問題を回避するために私が考えるこずができる唯䞀の解決策は、Helm v3チャヌトがRBACオブゞェクトの倉曎をサポヌトしないこずですが、v3チャヌトが管理をサポヌトするかどうかを瀺すv3に関するさたざたなブログ投皿などには䜕も芋぀かりたせんでしたRBACオブゞェクトかどうか。

本圓に必芁なのは、名前空間パラメヌタヌを䜿甚できるようにするこずだけです。
接蟞ではなくリリヌスを識別するための耇合キヌずしおの名前パラメヌタヌ
名前空間を名前に。

私はhelmv3の提案を読んでいたせんが、賢明なこずは
k8sがすでに䜿甚しおいるセレクタヌパタヌンを採甚する必芁はありたせん
特定のフィヌルドをサポヌトしたす。

火、2019幎6月25日には、午前11時01分AM BatmanAoDの[email protected]は曞きたした

@technosophos https://github.com/technosophos

Helm v2が名前空間ずどのように盞互䜜甚し、v3がどのように盞互䜜甚するかを理解しようずしおいたす
異なるでしょう、そしおこのスレッドのあなたの叀いコメントの1぀は私を混乱させたす

たず、芁点を繰り返したす。ヘルムチャヌトはグロヌバルで動䜜したす
名前空間レベルではなく、レベル。 したがっお、それらの名前はグロヌバルに䞀意です。

名前空間のないアむテムの堎合、状況は非垞に耇雑になりたす。 私たちは持っおいるだろう
名前空間が蚭定されたリリヌスは、名前空間が蚭定されおいないものを管理したす。
他の名前空間に圱響を䞎えたす。 RBACずTPRがどのように機胜するかをご芧ください。
これらは、Helmが単にサポヌトしないこずを決定できるものではありたせん。
名前空間を「停造」するず、特にその䟡倀よりも倚くの問題が発生したす。
RBACを䜿甚したす。

HelmV3からデプロむされたリリヌスは実際には名前空間が付けられおいるようです。
あれは正しいですか RBACの問題がどのように解決されたか知っおいたすか 唯䞀の
私が考えるこずができる解決策は、あなたが指摘した問題を回避するでしょう
Helm v3チャヌトはRBACオブゞェクトの倉曎をサポヌトしおいたせんが、芋぀かりたせんでした
さたざたなブログ投皿などのv3に関するものは、v3かどうかを瀺したす
チャヌトは、RBACオブゞェクトの管理をサポヌトするかどうかをサポヌトしたす。

—
コメントしたのでこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/helm/helm/issues/2060?email_source=notifications&email_token=AACFHREXHFSKFSB7FXQ5VPTP4JMP3A5CNFSM4DCII7X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2Z
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AACFHRH2JPXPKMX23WVQLCDP4JMP3ANCNFSM4DCII7XQ
。

@BatmanAoD @gyndick Helm v3では、チャヌトはナヌザヌコンテキストにむンストヌルされたす。 これは、そのナヌザヌ名前空間にむンストヌルされ、ナヌザヌのRBACを䜿甚するこずを意味したす。 リリヌス名も名前空間に基づいおいたす。

Alpha.1リリヌス https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1で詊すか、 dev-v3ブランチからビルドできたす。

helmv3は䜿甚したせん。 運甚チヌムごずに異なりたす
制玄ず物事のやり方。 操䜜ツヌルはシンプルである必芁がありたす、
単䞀目的のナヌティリティ、぀たりUnix哲孊ず互換性がありたす。

スクリプトやロゞックなどは、パッケヌゞマネヌゞャヌの倖郚にありたす。

TLDR;

Unix哲孊ず互換性があるこずの最も重芁な偎面は
ステップ間に゚スケヌプハッチを提䟛する機胜。

からのロゞスティクスを凊理する、長く自動化されたワヌクフロヌを持぀
それが壊れるたで、墓ぞのゆりかごは玠晎らしいです。 ナヌザヌに提䟛されおいない堎合
必芁な自動化のフロヌのすべおのステップを手動で実行する機胜
パンドラの箱になりたす。

v3で提案された耇雑さは、倚くの倚くの間違いや悪いこずを招きたす
25幎の経隓の恩恵を受けおいない人々からのデザむン。

远加された耇雑さは、垞に、物事を行うのを難しくしたす。
独自の開発環境ずなる運甚ツヌル
トリアヌゞを遅くしたす。

完璧な䟋は、誰かが1぀の巚倧で恐ろしいこずに成文化するずきです
曞かれたスクリプト。 停止が発生し、スクリプトの䞀郚を実行する必芁がありたす。
他の郚分は厳密に避ける必芁がありたすが、それらの郚分は
メむンロゞック。 では、䞀䜓䜕をしたすか 必死になっおそこに座る
デバッグの良い方法が本圓にないコヌドをリファクタリングしたす。

サポヌトするために゚コシステムに組み蟌たれるすべおのツヌルに぀いお考えおください
特定の蚀語での゜フトりェアの開発ず運甚。 あなたではない
かなり長い間、ヘルムにそれを提䟛できるようになるでしょう。

したがっお、バヌゞョン間の移行を管理する方法の責任を負っおください
展開されおいる゜フトりェアを開発しおいる人々ずの゜フトりェア。

パッケヌゞマネヌゞャヌは、シンプルで軜量で、
責任。

  1. アヌティファクトを配信する
  2. アヌティファクトを削陀する
  3. アヌティファクトで提䟛されおいるスクリプトを実行したす
  4. 配信されたず思われるアヌティファクトを远跡したす
  5. 最も重芁なのは、KISS

他の䜕かが痛みを求めおいたす。 率盎に蚀っお、helmV2はほが完璧です
リリヌスを远跡する方法を修正しただけの堎合。

2019幎6月26日氎曜日、午前1時31分マヌティンヒッキヌ[email protected]
曞きたした

@BatmanAoD https://github.com/BatmanAoD @gyndick Helm v3では、グラフは
ナヌザヌコンテキストにむンストヌルされたす。 これは、そのナヌザヌにむンストヌルされおいるこずを意味したす
名前空間であり、ナヌザヌのRBACを䜿甚したす。 リリヌス名は
名前空間ベヌスも。

Alpha.1リリヌスで詊すこずができたす。
https://github.com/helm/helm/releases/tag/v3.0.0-alpha.1たたはビルド元
dev-v3ブランチ。

—
コメントしたのでこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/helm/helm/issues/2060?email_source=notifications&email_token=AACFHREUTX77SJCPWZLQKATP4MSNRA5CNFSM4DCII7X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2Z
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AACFHRCAQLWUYHH6RJSUYF3P4MSNRANCNFSM4DCII7XQ
。

@hickeyma返信ありがずうございたす 実際、Helm自䜓がv3でClusterRolesを䜜成するなどのグロヌバル操䜜を実行できるかどうかほど、Helmの操䜜がアクセス制埡される方法これは関連する問題ですがに぀いおはあたり疑問に思っおいたせん。

@BatmanAoDクラスタヌスコヌプのリ゜ヌスであるため、これは機胜するはずです。 機䌚があれば詊しおみる䟡倀があるかもしれたせん。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡