Répertoire d'articles
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:
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é:
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目录
vim values.yaml %更改配置文件
3. Installez le serveur Web (afin de tester l'effet du déploiement de nginx)
helm install webserver .
helm status webserver %查看详细信息
kubectl get all %查看service/webserver-nginx分配到的IP
curl 查看到的ip %测试是否可以看到Nginx的测试页面,如果可以看到则说明部署成功
4. Mise à niveau et restauration
vim values.yaml:
修改副本数
replicaCount: 3
helm upgrade webserver . %升级
helm history webserver %查看历史版本号
helm rollback webserver 版本号 %回滚
helm uninstall webserver %卸载
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(镜像版本)
helm lint . %检查依赖和模板配置是否正确
helm package mychart/ %打包(需要切出mychart目录)
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 %更新证书信任
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
helm push mychart-0.1.0.tgz mychart -u admin -p westos --insecure %上传到harbor仓库
helm repo update %更新完之后可以在harbor仓库中看到刚才上传的chart包
Cinquièmement, déployez l'application mychart sur le cluster k8s
1. Déploiement
helm install webserver mychart/mychart %部署mychart应用到集群
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"
helm package mychart %重新打包
helm push mychart-0.2.0.tgz mychart -u admin -p westos --insecure %上传
helm repo update %更新仓库
3. Mettre à jour, restaurer et désinstaller
helm upgrade webserver mychart/mychart %更新版本
helm rollback webserver 1 %回滚
helm uninstall webserver %卸载