Boostez les Charts Helm: Utiliser Kustomize pour Gérer les Déploiements Kubernetes

Les équipes d 'exploitation doivent automatiser le déploiement des applications, etHelm est la solution standard du sector pour le déploiement sur Kubernetes.我是说,我是说,我是说图表Helm pour l 'installation d 'Artifactoryet d 'autres products de la plateforme JFrog DevOps, conçus pour les configurations standard/recommandées don ' t la plupart des équipes auront besoin。Ces modèles fournissent aux clients un ensemble limité d’options de configuration。
我爱你,我爱你Artifactory,x光Ou d'autre déploiements à votre manière, vous pouvez dupliquer le chart pour créer votre propre version personnalisée。Mais si vous le faites, chque fois que JFrog met à jour son chart Helm, votre version personnalisée devient désynchronisée et obsolète。Pour garder votre version à jour, vous devez réintégrer chque mise à jour。
评论personaliser unchart Helm无复制?C 'est exacement pour cette raison que谷歌a crééKustomize.dan cet文章,ainsi que dan unWebinaire à venir,知识的所有,你的蒙特利尔评论,你的使用,你的叠加,Kustomize, pour, effectuer, des déploiements personnalisés tout en utilant toujours, la dernière版本du chart Helm de votre fournisseur。
Modèles ou叠加
联合国模型联合国计算空间公式réservés计算空间公式analysés联合国程序automatisé计算空间公式。Conçu pour remplir une function spécifique, il signale les emplacements où vous devez fournir les détails。谢谢你déjà joué à«疯狂的自由»,感谢你的努力paraîtra家庭。

可以查询développeur,可以查询查询modèles等值可以查询宏观等变量,可以查询程序paramètres。
一个叠加Est UN ensemble de chaînes de replacement。新生的文本集团entièrement原始的思想。

Quelle est la différence ?
- Un modèle doit être soigneusement préparé pour exiger des information spécifiques aux endroits clés。Lorsque vous utilisez un modèle, vous êtes limité à la modification des éléments que le modèle met à disposition(处置)。
- Une叠加ne nécessite aucune préparation du fichier d 'origine。你是我的爱人intégralité。
图表掌舵HelloWorld
Étant donné que les charts Helm d 'Artifactory sont assz avancés, nous allons rerir à un example très简单。Ici, le modèle autorise un argument pour le nom de la société。
$ 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}}”)
有价值的人在争论modèle有价值的人在思考values.yaml.
$ cat值。公司名称:ABC公司
Installons et voyons comment cela function。
安装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公司
冻糕!Tout a bien fonctionné et nous l 'avons expédié aux clients。Mais un client a une emergency unique: ajouter le nom de l 'employé et le nom du département à la sortie pour ressembler à ceci:
我叫约翰。我辛苦倒勒département德拉comptabilité。Le nom de notre enterprise est Société ABC。
D 'accord, c'est très facile, ils pourraient dupliquer le chart Helm et modifier le modèle Helm comme suit:
args: ["/bin/echo.Values.employeeName}}。我为{{工作.Values.employeeDepartment}}。我们的公司名称是{{.Values.companyName}}”)
Ensuite, ils peuvent ajouter de nouvelles valurs dans le fichiervalues.yaml.
$ cat值。员工名:Gary员工部门:营销公司名称:ABC公司
Mais, comme nous l 'avons indiqué, leur duplicate n'est + synchronisée avec l 'original。C 'est là qu'intervient Kustomize。
叠加avec Kustomize
“你永远都是我的”“我是你的”“我是你的”Dans notre example, le client peut«kustomizer»selon ses besoins sans créer une duplicate privée et impossible à维护de charts。
Tout d 'abord, le client doit créer un fichierkustomization.yaml.
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世界杯阿根廷预选赛赛程
维护者,nous pouvons需求者à kustomize d'appliquer notre superposition。
$ 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
所有的创造者modèle新生的创造者modèle,安装者和创造者vérifier。
$ 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修订版:1 TEST SUITE: None $ kubectl logs -f helloworld我的名字是Gary。我在市场部工作。我们公司的名字是ABC公司
和蔼的!塞拉répond紧急情况客户。
Modèle d 'Abord,叠加Ensuite
丹斯的例子précédent, nous avons utilisé Kustomize pour modifier notre modèle Helm afin d 'accepter de nouvelles valeurs, puis nous avons utilisé cette版本avec舵安装倒déployer l’application。
Mais il exist des cas pour lesquels cette séquence n 'est pas idéale。在cela, vous pouvez souhaiter的船上modèle地图位置,然后,appliquer votre叠加Kustomize lorsque vous déployez l 'application。
赛特解决est la加appropriée lorsque vous devez déployer la même应用dans plusieurs环境,mais avec des problèmes横截liés aux étiquettes, à la sécurité ou aux computers。例如,vous pouvez avoir différentes组合d 'exigences pour chque环境:
| Environnement) | 礼仪 | 安全炸药 | compteurs |
| dev | 是的 | 非 | 非 |
| 测验 | 是的 | 非 | 是的 |
| 生产 | 是的 | 是的 | 是的 |
De la même façon, vous devrez peut-être régler les ports ou l 'accès pour chacun De ces environments。Dans de tels cas, il peut s'avérer加上灵活的d 'appliquer une叠加Kustomize différente à un même图表Helm affiché pour chque环境。
À cette fin, l 'utilitaire de ligne de commander kubectl fournitL 'option apply -k.赛特dernière贴花Kustomize aux图表à l 'aide des fichierskustomization.yaml丹斯莱斯répertoires。
Pour commencer, nous allons afficher le chart Helm localement à l 'aide de la command执掌模板.塞拉génère un fichier YAML avec toutes les valeurs résolues, que nous capturons dans un fichier local。
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
Créez un nouveau fichier de kustomisation pour ajouter des étiquettes à notre pod:
$ cat templates_new/kustomization。- templates_new/pod.yaml . commonLa2022世界杯阿根廷预选赛赛程bels: app: helloworld resources
现在,比如我们Kubectl应用-k倒安装notre chart avec de nouvelles étiquettes:
$ 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 ... ...
这是事实!有知识désormais有知识的人,有知识的人désormais有知识的人,有知识的人à接受的人à有知识的人。
Approfondissez vos connaisances
Les charts Helm de JFrog sont assez avancées, et nous avons souvent dû maintenir plusieurs版本pour notre usage interne。L 'utilisation de Kustomize nous a aidés à éviter la modification manuelle des charts et à automatiser + complètement nos procsus CI/CD。
Vous voulez en savoir plus ?Regardez notre webinaire enregistré sur la façon deBooster Artifactory avec Kustomize & Helm.我的朋友们,我的朋友们,我的朋友们à mieux gérer vos déploiements !