K8s - Helm (configuration, utilisation, déploiement et construction de Helm Chart)

Un, introduction de Helm

Helm est un outil de gestion de packages pour les applications Kubernetes, principalement utilisé pour gérer les graphiques, similaire à yum dans les systèmes Linux.
Helm Chart est une série de fichiers YAML utilisés pour empaqueter des applications natives Kubernetes. Vous pouvez personnaliser certaines métadonnées de l'application lorsque vous déployez l'application pour faciliter la distribution de l'application.
Pour les éditeurs d'applications, Helm peut empaqueter des applications, gérer les dépendances d'applications, gérer les versions d'applications et publier des applications dans des entrepôts de logiciels.
Pour les utilisateurs, il n'est pas nécessaire d'écrire des fichiers de déploiement d'applications complexes après avoir utilisé Helm, et les applications peuvent être trouvées, installées, mises à niveau, restaurées et désinstallées sur Kubernetes de manière simple.

Deux, l'installation de la barre et la configuration initiale

1. Installation

下载软件包:helm-v3.1.1-linux-amd64.tar.gz
mkdir helm        %创建单独目录
cd helm
tar zxf helm-v3.1.1-linux-amd64.tar.gz   %解压
cd linux-amd64/     %切换到该目录下
cp helm /usr/local/bin/   %复制到相关目录下
echo "source <(helm completion bash)" >> ~/.bashrc   %设置命令补齐
source ~/.bashrc    %使之生效
设置补齐命令后重新进入终端即可

Après avoir terminé les paramètres ci-dessus, vous pouvez utiliser la recherche de barre pour rechercher la bibliothèque de graphiques officielle du hub de barre:
Insérez la description de l'image ici

2. Ajoutez une bibliothèque de graphiques tierce

helm repo add stable http://mirror.azure.cn/kubernetes/charts/    
helm repo add aliyun  https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts 

Vous pouvez utiliser le repo de recherche de barre pour trouver le nom du graphique de l'entrepôt que vous avez ajouté:
Insérez la description de l'image ici
Insérez la description de l'image ici

3. Helm déploie l'application nginx

1. Configuration relative à l'entrepôt du port

1.在harbor仓库中新建项目(公开):bitnami

2.拉取镜像
docker pull bitnami/nginx:1.19.7-debian-10-r1

3.上传镜像到Harbor仓库
docker push reg.westos.org/bitnami/nginx:1.19.7-debian-10-r1

2. Tirez le package nginx Chart et effectuez les configurations associées

helm pull bitnami/nginx --version 8.7.0   %下载nginx的Chart包
tar zxf nginx-8.7.0.tgz    %解压
cd nginx   %切到nginx目录

Insérez la description de l'image ici
Insérez la description de l'image ici

vim values.yaml   %更改配置文件

Insérez la description de l'image ici
Insérez la description de l'image ici

3. Installez le serveur Web (afin de tester l'effet du déploiement de nginx)

helm install webserver .
helm status webserver   %查看详细信息

Insérez la description de l'image ici

kubectl get all   %查看service/webserver-nginx分配到的IP
curl 查看到的ip   %测试是否可以看到Nginx的测试页面,如果可以看到则说明部署成功

Insérez la description de l'image ici

4. Mise à niveau et restauration

vim values.yaml:
修改副本数
replicaCount: 3
helm upgrade webserver .  %升级

Insérez la description de l'image ici
Insérez la description de l'image ici

helm history webserver     %查看历史版本号

Insérez la description de l'image ici

helm rollback webserver 版本号   %回滚

Insérez la description de l'image ici

helm uninstall webserver    %卸载

Insérez la description de l'image ici

Quatrièmement, créez un graphique de barre

1. Créez un graphique de barre

cd helm/
helm create mychart   %创建Chart
cd mychart   
tree .  %查看mychart目录结构
.
├── charts
├── Chart.yaml   %应用描述相关文件
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── serviceaccount.yaml
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml   %应用部署相关文件

3 directories, 10 files

vim values.yaml:
repository: myapp    %指定镜像
tag: "v1"       %指定tag(镜像版本)

Insérez la description de l'image ici

helm lint .    %检查依赖和模板配置是否正确

Insérez la description de l'image ici

helm package mychart/      %打包(需要切出mychart目录)

Insérez la description de l'image ici

helm repo add mychart https://reg.westos.org/chartrepo/charts   %添加第三方仓库(这个charts项目需要提前在harbor仓库中创建

cp /etc/docker/certs.d/reg.westos.org/ca.crt /etc/pki/ca-trust/source/anchors/  %复制证书
update-ca-trust  %更新证书信任

Insérez la description de l'image ici

2. Téléchargez le package de cartes emballées dans l'entrepôt du port

helm plugin install https://github.com/chartmuseum/helm-push    %安装push插件(离线安装,速度太慢,不推荐)

离线安装:
helm env	  %获取插件目录
mkdir ~/.local/share/helm/plugins/push
tar zxf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/push
helm push --help

Insérez la description de l'image ici
Insérez la description de l'image ici

helm push mychart-0.1.0.tgz mychart -u admin -p westos --insecure     %上传到harbor仓库
helm repo update     %更新完之后可以在harbor仓库中看到刚才上传的chart包

Insérez la description de l'image ici

Cinquièmement, déployez l'application mychart sur le cluster k8s

1. Déploiement

helm install webserver mychart/mychart   %部署mychart应用到集群

Insérez la description de l'image ici
Insérez la description de l'image ici

2. Créez une nouvelle version du package Chart et téléchargez-la

vim mychart/Chart.yaml:
appVersion: v2    %更换版本
version: 0.2.0

vim mychart/values.yaml:
 tag: "v2"

Insérez la description de l'image ici

helm package mychart   %重新打包
helm push mychart-0.2.0.tgz mychart -u admin -p westos --insecure     %上传
helm repo update     %更新仓库

Insérez la description de l'image ici
Insérez la description de l'image ici

3. Mettre à jour, restaurer et désinstaller

helm upgrade webserver mychart/mychart      %更新版本

Insérez la description de l'image ici
Insérez la description de l'image ici

helm rollback webserver 1      %回滚

Insérez la description de l'image ici
Insérez la description de l'image ici

helm uninstall webserver       %卸载

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/nk298120/article/details/115247660
conseillé
Classement