記事のディレクトリ
1つ、ヘルムの紹介
Helmは、Linuxシステムのyumと同様に、主にチャートの管理に使用されるKubernetesアプリケーションのパッケージ管理ツールです。
Helm Chartは、Kubernetesネイティブアプリケーションをパッケージ化するために使用される一連のYAMLファイルです。アプリケーションをデプロイするときに、アプリケーションの一部のメタデータをカスタマイズして、アプリケーションの配布を容易にすることができます。
アプリケーションパブリッシャーの場合、Helmはアプリケーションのパッケージ化、アプリケーションの依存関係の管理、アプリケーションバージョンの管理、およびソフトウェアウェアハウスへのアプリケーションの公開を行うことができます。
ユーザーの場合、Helmを使用した後、複雑なアプリケーションデプロイメントファイルを作成する必要はありません。アプリケーションは、Kubernetesで簡単な方法で検索、インストール、アップグレード、ロールバック、アンインストールできます。
2、ヘルムのインストールと初期構成
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 %使之生效
设置补齐命令后重新进入终端即可
上記の設定を完了したら、ヘルム検索を使用して、公式のヘルムハブチャートライブラリを検索できます。
2.サードパーティのチャートライブラリを追加します
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
ヘルム検索リポジトリを使用して、追加したウェアハウスからチャートの名前を見つけることができます。
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チャートパッケージをプルして、関連する構成を行います
helm pull bitnami/nginx --version 8.7.0 %下载nginx的Chart包
tar zxf nginx-8.7.0.tgz %解压
cd nginx %切到nginx目录
vim values.yaml %更改配置文件
3. Webサーバーをインストールします(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 %卸载
第四に、ヘルムチャートを作成します
1.ヘルムチャートを作成する
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包
5、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 %卸载