K8s - Helm (настройка, использование, развертывание и построение Helm Chart)

Один, введение Шлема

Helm - это инструмент управления пакетами приложений Kubernetes, который в основном используется для управления диаграммами, аналогично yum в системах Linux.
Helm Chart - это серия файлов YAML, используемых для упаковки собственных приложений Kubernetes. Вы можете настроить некоторые метаданные приложения при развертывании приложения, чтобы облегчить распространение приложения.
Для издателей приложений Helm может упаковывать приложения, управлять зависимостями приложений, управлять версиями приложений и публиковать приложения в хранилищах программного обеспечения.
Для пользователей нет необходимости писать сложные файлы развертывания приложений после использования Helm, и приложения можно легко найти, установить, обновить, откатить и удалить в Kubernetes.

Два, установка Helm и начальная настройка

1. Установка

下载软件包: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    %使之生效
设置补齐命令后重新进入终端即可

После выполнения вышеуказанных настроек вы можете использовать поиск helm для поиска официальной библиотеки диаграмм helm hub:
Вставьте описание изображения сюда

2. Добавьте стороннюю библиотеку диаграмм.

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

Вы можете использовать репозиторий поиска helm, чтобы найти имя диаграммы на добавленном вами складе:
Вставьте описание изображения сюда
Вставьте описание изображения сюда

3. Helm развертывает приложение nginx.

1. Конфигурация портового склада

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. Извлеките пакет nginx Chart и внесите соответствующие настройки.

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

Вставьте описание изображения сюда
Вставьте описание изображения сюда

vim values.yaml   %更改配置文件

Вставьте описание изображения сюда
Вставьте описание изображения сюда

3. Установите веб-сервер (чтобы проверить эффект от развертывания nginx)

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

Вставьте описание изображения сюда

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

Вставьте описание изображения сюда

4. Обновление и откат

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

Вставьте описание изображения сюда
Вставьте описание изображения сюда

helm history webserver     %查看历史版本号

Вставьте описание изображения сюда

helm rollback webserver 版本号   %回滚

Вставьте описание изображения сюда

helm uninstall webserver    %卸载

Вставьте описание изображения сюда

В-четвертых, постройте Helm Chart.

1. Создайте Helm Chart.

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. Загрузите упакованный картографический пакет на склад в порту.

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包

Вставьте описание изображения сюда

В-пятых, разверните приложение mychart в кластере k8s

1. Развертывание

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

Вставьте описание изображения сюда
Вставьте описание изображения сюда

2. Создайте новую версию пакета Chart и загрузите ее.

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. Обновление, откат и удаление

helm upgrade webserver mychart/mychart      %更新版本

Вставьте описание изображения сюда
Вставьте описание изображения сюда

helm rollback webserver 1      %回滚

Вставьте описание изображения сюда
Вставьте описание изображения сюда

helm uninstall webserver       %卸载

Вставьте описание изображения сюда

рекомендация

отblog.csdn.net/nk298120/article/details/115247660