Каталог статей
Один, введение Шлема
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 %卸载