Helm-Charts effektiv nutzen: Verwendung von Kustomize zur Verwaltung von kubernetes -部署

操作-团队müssen das部署von Anwendungen automatisieren和Helm ist die Industriestandardlösung für die Bereitstellung in Kubernetes.Wie viele软件- anbieter bieten auh wir舵图für模具安装冯Artifactoryund anderen JFrog devop - plattformproduckten an, die für die Standard-/ empfehlungskonfigationen ausgelegt sind, die die meisten Teams benötigen。我爱你,我爱你,我爱你。
Wenn Sie IhrArtifactory,x光oder andere部署auf特征艺术和智慧安帕森möchten, können Sie das diagram abspalten,嗯Ihre特征安帕森版本祖厄斯特伦。过敏野生Ihre benutzerdefinierte版本jedes Mal, wenn JFrog sein Helm-Chart aktualisiert, nicht mehr synchronisiert und veraltet sein。Um Ihre版本auf dem neuesten Stand zu halten, müssten Sie bei jedem更新die集成erneut durchführen。
Wie können Sie ein Helm-Chart ohne Abspaltung anpassen?Genau dafür hat谷歌Kustomizegeschaffen。在diesem Beitrag - und auch In einemkommenden研讨会- zeigen wir Ihnen, wie Sie Kustomize-Overlays verwenden können, um benutzerdefinierte部署durchzuführen, während Sie immer die neueste Helm-Chart Version Ihres Anbieters verwenden。
Vorlagen im Vergleich zu叠加
风景明信片滑雪的前倾姿势ist ein公式,das Platzhalter enthält, die von einem automatisierten Prozess geparst werden, um sie durch Werte zu ersetzen。我们的朋友für我们的朋友,我们的朋友müssen。Wenn Sie schon einmal "Mad Libs" gespielt haben, wild Ihnen dieses Ausfüllen von Lückentext bekannt vorkommen。

阿斯特威克勒werden Sie erkennen,达斯沃拉根和Wertangaben wie Makros和ihre可变指令Unterprogramme和ihre参数信德。
静脉覆盖ist ein Satz von Ersetzungszeichenfolgen。Textblöcke in der Originaldatei werden vollständig durch neue Textblöcke ersetzt。

是Unterschied吗?
- Eine Vorlage muss sorgfältig vorbereitet werden,嗯spezifische Informationen和wichtigen Stellen abzufragen。请您尽情畅想,请您尽情畅想beschränkt,尽情畅想ändern,尽情畅想Verfügung。
- Für in Overlay muss die Originaldatei niht in irgendeiner Weise vorbereitet werden。Sie können jeden Teil komplett austauschen。
HelloWorld Helm-Chart
大舵图von Artifactory ziemlich komplex sinind, lassen Sie uns in sehr einfaches Beispiel verwenden。Hier lässt die Vorlage ein Argument für den Firmennamen zu。
$ cat模板/pod。yaml apiVersion: v1 kind: Pod metadata: name: helloworld spec: restartPolicy: Never containers: - name: hello image: alpine env: command: ["/bin/sh","-c"] args: ["/bin/echo hello !我的公司名称是{{.Values.companyName}}”)
Die Werte für Die争论der Vorlage stehen in der Dateivalues.yaml.
$ cat值。公司名称:ABC公司
Lassen Sie uninstallieren und sehen, wie es funktioniert。
安装helloworld。NAME: helloworld LAST DEPLOYED: Mon May 18 16:53:14 2020 NAMESPACE: default STATUS: DEPLOYED REVISION: 1 TEST-SUITE: None $ kubectl logs -f helloworld Hello!我的公司名字是ABC公司
Klasse !Das hat gut funktioniert, und wurde an die Kunden geliefert。埃尔纳·德·库登wünscht耶多赫,德·德·米塔贝特和德·德·阿泰隆einzufügen,达米特·达·埃尔格布尼斯folgt aussieht:
我叫约翰。我在会计部门工作。我们公司的名字是ABC公司。
好的,ganz einfach - man könnte das Helm-Chart aufspalten und die Helm-Vorlage wie folgt ändern:
args: ["/bin/echo.Values.employeeName}}。我为{{工作.Values.employeeDepartment}}。我们的公司名称是{{.Values.companyName}}”)
不,不,不,不werte.yaml-Datei hinzugefugt。
$ cat值。员工名:Gary员工部门:营销公司名称:ABC公司
阿贝尔,我们的节日圆满,这是阿斯帕尔东的夜晚同步,这是原创。一个柴油Stelle kommt Kustomize zur Hilfe。
Überlagern mit Kustomize
Kustomize ermöglicht es Ihnen, eigene Anpassungen in yaml-Dateien zu überlagern。在unserem Beispiel konann der Kunde Anpassungen entsprechend seiner Bedürfnisse vornehmen, ohne eine private, nicht wartungsfähige Abspaltung von Charts zu erstellen。
Zunächst古老的生命kustomization.yaml-Datei。
patchesJson6902:—target: version: v1 kind: Pod name: helloworld patch: |- - op: replace path: /spec/containers/0/args value: ["/bin/echo My name is {{. values . employeename}}。我为{{. values . employeedepartment}}工作。我们的公司名称是{{.Values.companyName}}"2022世界杯阿根廷预选赛赛程
Jetzt können wir Kustomize anweisen, unser Overlay anzuwenden。
$ mkdir templates_new $ kustomize构建-o templates_new $ cat templates_new/~g_v1_pod_helloworld。yaml apiVersion: v1 kind: Pod元数据:名称:helloworld spec:容器:—args:—/bin/echo我的名字是{{. values . employeename}}。我为{{. values工作。employeeDepartment}}。我们的公司名称是{{.Values.companyName}}命令:—/bin/sh—-c image: alpine name: hello restartPolicy: Never
Wir werden zunächst die ursprüngliche Vorlage durch unsere neue Vorlage ersetzen, sie dann mit Helm安装和验证。
$ mv templates_old $ mv templates_new/ templates $ Helm delete helloworld release“helloworld”uninstalled $ Helm install helloworld。NAME: helloworld LAST DEPLOYED: Tue May 19 14:27:18 2020 NAMESPACE: default STATUS: DEPLOYED REVISION: 1 TEST-SUITE: None $ kubectl logs -f helloworld My NAME is Gary。我在市场部工作。我们公司的名字是ABC公司
Klasse !安弗德隆和昆登之间的关系。
Zuerst die Vorlage, dann das Overlay
我是Beispiel haben wir Kustomize verwendet,嗯unsere Helm-Vorlage so zu ändern, dass sie neue Werte akzeptiert。Dann haben wir diese版本mit舵安装verwendet,呃die App bereitzustellen。
“我的梦想是美好的,我的梦想是美好的。”Stattdessen möchten Sie vielleicht die Chart-Vorlage zuerst lokal rendern und丹Ihr kustomze - overlay anwenden, wenn Sie die App bereitstellen。
Dies kann am besten funktionieren, wenn Sie dieselbe App in meherren Umgebungen bereitstellen müssen, jedoch mit übergreifenden Belangen wie Labels, Sicherheit oder Metering。Zum Beispiel könnten Sie für jede Umgebung unterschiedliche Kombinationen von Anforderungen haben:
| Umgebung | 标签 | Sicherheit | 计量 |
| Entwicklung | 晶澳 | 不行 | 不行 |
| 测试 | 晶澳 | 不行 | 晶澳 |
| Produktion | 晶澳 | 晶澳 | 晶澳 |
埃本索müssen Sie möglicherweise Ports oder den Zugriff für jede dieser Umgebungen anpassen。In diesen Szenarien kann es flexibler sein, ein anderes kustomze - overlay auf das gleiche gerenderte Helm-Chart für jede Umgebung anzuwenden。
死,死,死,死应用- k选项.Diese Funktion wendet Kustomize anhand vonkustomization.yaml-Dateien in den Verzeichnissen
Lassen Sie uns zunächst as Helm-Chart under Verwendung des执掌模板-Befehls lokal rendern.达杜尔奇狂野YAML-Datei mit allen aufgelösten Werten ausgegeben, die wir in einer lokalen Datei erfassen。
mkdir templates_new> templates_new /吊舱。Yaml $ $ cat templates_new/pod。yaml——#来源:helloworld/templates/~g_v1_pod_helloworld。yaml apiVersion: v1 kind: Pod metadata: name: helloworld spec: containers: - args: - /bin/echo我叫Gary。我在市场部工作。我们的公司名称是ABC公司命令:- /bin/sh - -c env: null image: alpine name: hello restartPolicy: Never
Erstellen Sie eine neue kustomize - datei, um wie folgt Labels zu unserem Pod hinzuzufügen:
$ cat templates_new/kustomization。- templates_new/pod.yaml . commonLa2022世界杯阿根廷预选赛赛程bels: app: helloworld resources
拉森修女Kubectl应用-kverwenden, unser Chart mit neuen Labels zu installieren:
$ helm delete helloworld $ kubectl apply -k templates_new/。pod/helloworld created $ kubectl get pods NAME READY STATUS重启AGE helloworld 0/1 Completed 0 10s $ kubectl describe pod helloworld名称:helloworld命名空间:default优先级:0节点:docker-desktop/192.168.65.3开始时间:Mon, 22 Jun 2020 16:22:11 -0700标签:app=helloworld注解:状态:Succeeded ... ...
Es hat geklappt!Jetzt sind wir in der Lage, das Helm-Chart eines beliebigen Anbieters zu übernehmen und unsere eigenen Anpassungen hinzuzufügen, während wir weiterhin更新von上游图表übernehmen。
在das Thema eintauchen的Tiefer
JFrogs Helm-Charts sind ziemlich komplex, und wir mussten oft mehere Versionen für unseren internen Gebrauch pflegen。“在我的生命中,我的生命中,我的生命中,我的生命中,我的生命中,我的生命中。”
Möchten你是谁?Sehen Sie sich die Aufzeichnung unseres Webinars and in dem es darum geht,Wie Artifactory mit Kustomize und Helm aufgerüstet wid.我们在一起,我们在一起,我们在一起,我们在一起,我们在一起!