1. 简介
Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
Helm V3 与 V2 最大的区别在于去掉了tiller
2 helm部署及配置
2.1 Helm安装
[root@foundation50 k8s]# scp helm-v3.4.1-linux-amd64.tar.gz server2:helm 将下载好的helm安装包拷贝到server2的helm目录里
[root@server2 helm]# tar zxf helm-v3.4.1-linux-amd64.tar.gz 解压
[root@server2 helm]# ls
helm-v3.4.1-linux-amd64.tar.gz linux-amd64
[root@server2 helm]# cd linux-amd64/ 进入解压目录
[root@server2 linux-amd64]# ls
helm LICENSE README.md
[root@server2 linux-amd64]# mv helm /usr/local/bin/ 将二进制程序helm拷贝到目录bin里
[root@server2 ~]# echo "source <(helm completion bash)" >> ~/.bashrc 设置自动补齐参数
[root@server2 ~]# source .bashrc 生效
2.2 搜索官方helm hub chart库
[root@server2 ~]# helm search hub nginx 搜索nginx,有很多
2.3 Helm 添加第三方 Chart 库
$ helm repo add stable http://mirror.azure.cn/kubernetes/charts/ 推荐使用第一个微软的
$ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
$ helm search repo redis
[root@server2 ~]# helm repo add stable http://mirror.azure.cn/kubernetes/charts/ 添加第三库成功
"stable" has been added to your repositories
[root@server2 ~]# helm search repo nginx 从第三方搜索nginx应用
NAME CHART VERSION APP VERSION DESCRIPTION
stable/nginx-ingress 1.41.3 v0.34.1 DEPRECATED! An nginx Ingress controller that us...
stable/nginx-ldapauth-proxy 0.1.6 1.13.5 DEPRECATED - nginx proxy with ldapauth
[root@server2 ~]# helm repo remove stable 将第三方仓库删掉
"stable" has been removed from your repositories
2.4 helm部署应用-nginx
使用官方库
[root@server2 ~]# helm repo add bitnami https://charts.bitnami.com/bitnami 添加仓库
"bitnami" has been added to your repositories
[root@server2 ~]# helm search repo nginx -l 列出该仓库nginx所有版本
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/nginx 10.1.2 1.21.6 NGINX Open Source is a web server that can be a...
bitnami/nginx 10.1.1 1.21.6 NGINX Open Source is a web server that can be a...
bitnami/nginx 10.1.0 1.21.6 NGINX Open Source is a web server that can be a...
bitnami/nginx 10.0.1 1.21.6 NGINX Open Source is a web server that can be a...
[root@server2 ~]# cd helm/
[root@server2 helm]# helm pull bitnami/nginx --version 8.8.5 拉取指定版本nginx,后面不跟版本号默认拉取最新的版本
[root@server2 helm]# ls
helm-v3.4.1-linux-amd64.tar.gz linux-amd64 nginx-8.8.5.tgz 拉取成功
[root@server2 helm]# tar zxf nginx-8.8.5.tgz 解压
[root@server2 helm]# cd nginx/ 进入解压目录
[root@server2 nginx]# ls
Chart.lock Chart.yaml README.md values.schema.json
charts ci templates values.yaml
[root@server2 nginx]# vim Chart.yaml nginx信息都在这里面
[root@server2 templates]# ls 这里面就是需要部属的yaml文件
deployment.yaml ingress.yaml serviceaccount.yaml
extra-list.yaml ldap-daemon-secrets.yaml servicemonitor.yaml
health-ingress.yaml NOTES.txt svc.yaml
_helpers.tpl pdb.yaml tls-secrets.yaml
hpa.yaml server-block-configmap.yaml
[root@server2 nginx]# vim values.yaml 这个就是模板调用的所有变量
[root@server1 ~]# docker pull bitnami/nginx:1.19.10-debian-10-r14 拉取所需镜像
habor仓库新建项目
[root@server1 ~]# docker tag bitnami/nginx:1.19.10-debian-10-r14 reg.westos.org/bitnami/nginx:1.19.10-debian-10-r14 改标签
[root@server1 ~]# docker push reg.westos.org/bitnami/nginx:1.19.10-debian-10-r14 上传镜像到仓库
[root@server2 nginx]# helm install nginx . 当前目录部属安装
[root@server2 nginx]# kubectl get svc --namespace default -w nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx LoadBalancer 10.99.190.189 172.25.50.100 80:32300/TCP 88s
[root@server2 nginx]# helm list --all-namespaces 查询集群用helm部属的整个应用
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx default 1 2022-04-21 19:28:36.226626507 +0800 CSTdeployed nginx-8.8.5 1.19.10
2.4.1 nginx应用版本更新
[root@server2 helm]# helm pull bitnami/nginx --version 8.9.0 再次拉取另一个版本nginx
[root@server2 helm]# mkdir update
[root@server2 helm]# mv nginx-8.9.0.tgz update/ 将镜像放入update目录
[root@server2 helm]# cd update/ 进入目录
[root@server2 update]# tar zxf nginx-8.9.0.tgz 解压
[root@server2 update]# cd nginx/
[root@server2 nginx]# vim values.yaml
[root@server2 nginx]# helm list 列出部署的helm
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx default 1 2022-04-21 19:28:36.226626507 +0800 CSTdeployed nginx-8.8.5 1.19.10
[root@server2 nginx]# helm upgrade nginx . 在当前目录升级nginx应用
[root@server2 nginx]# helm list
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx default 2 2022-04-21 19:53:57.563527117 +0800 CSTdeployed nginx-8.9.0 1.19.10 可以发现nginx应用已经升级
[root@server2 nginx]# helm history nginx 列出nginx版本安装升级的历史
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 Thu Apr 21 19:28:36 2022 superseded nginx-8.8.5 1.19.10 Install complete
2 Thu Apr 21 19:53:57 2022 deployed nginx-8.9.0 1.19.10 Upgrade complete
[root@server2 nginx]# helm rollback nginx 1 版本回滚到1
Rollback was a success! Happy Helming!
[root@server2 nginx]# helm list 版本回滚到了nginx-8.8.5版本
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nginx default 3 2022-04-21 19:59:12.040341407 +0800 CSTdeployed nginx-8.8.5 1.19.10
[root@server2 nginx]# helm uninstall nginx 卸载nginx
3 建立本地chart仓库
[root@server2 helm]# helm create mychart 自己创建一个chart库,库名为mychart
Creating mychart
[root@server2 helm]# cd mychart/
[root@server2 mychart]# ls
charts Chart.yaml templates values.yaml
[root@server2 mychart]# yum install tree -y
[root@server2 mychart]# tree . 查看路经,都被创建好了
.
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
[root@server2 mychart]# vim Chart.yaml
[root@server2 mychart]# vim values.yaml
[root@server2 mychart]# helm lint . 检测是否有语法错误
==> Linting .
[INFO] Chart.yaml: icon is recommended
1 chart(s) linted, 0 chart(s) failed
[root@server2 mychart]# helm package . 将当前目录mychart打包
Successfully packaged chart and saved it to: /root/helm/mychart/mychart-0.1.0.tgz
[root@server2 mychart]# mv mychart-0.1.0.tgz .. 移动到外层helm目录
在habor仓库创建charts项目,这个用作存放应用包
[root@server2 helm]# helm repo add mychart https://reg.westos.org/chartrepo/charts 添加自己创建的chart库,但是发现仓库是加密的
Error: looks like "https://reg.westos.org/chartrepo/charts" is not a valid chart repository or cannot be reached: Get "https://reg.westos.org/chartrepo/charts/index.yaml": x509: certificate signed by unknown authority
所以需要将私有仓库证书,拷贝到操作系统识的anchors目录里:
[root@server2 helm]# cd /etc/docker/
[root@server2 docker]# ls
certs.d daemon.json key.json
[root@server2 docker]# cd certs.d/
[root@server2 certs.d]# ls
reg.westos.org
[root@server2 certs.d]# cd reg.westos.org/
[root@server2 reg.westos.org]# ls
ca.crt 证书
[root@server2 reg.westos.org]# cp ca.crt /etc/pki/ca-trust/source/anchors/ 让操作系统识别到证书
[root@server2 reg.westos.org]# update-ca-trust 更新操作系统信任的证书
[root@server2 reg.westos.org]# helm repo add mychart https://reg.westos.org/chartrepo/charts 再次添加chart库,成功
"mychart" has been added to your repositories
[root@server2 reg.westos.org]# helm repo list 列出添加的第三方仓库
NAME URL
bitnami https://charts.bitnami.com/bitnami
mychart https://reg.westos.org/chartrepo/charts 已经添加成功
如何上传chart包,需要安抓插件
[root@foundation50 k8s]# scp helm-push_0.9.0_linux_amd64.tar.gz server2: 将下载好的插件拷贝到server2上
[root@server2 ~]# helm plugin install https://github.com/chartmuseum/helm-push 也可以直接官网下载此插件,但是不好拉取成功
[root@server2 ~]# helm env 查看环境变量,确定插件位置
HELM_PLUGINS="/root/.local/share/helm/plugins" 获取插件目录,需要自己创建
[root@server2 ~]# mkdir -p /root/.local/share/helm/plugins 创建此路经
[root@server2 ~]# cd /root/.local/share/helm/plugins
[root@server2 plugins]# mkdir push 在plugins 目录里创建push目录
[root@server2 ~]# tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/push/ 解压到创建的push目录里
[root@server2 ~]# cd /root/.local/share/helm/plugins/push/
[root@server2 push]# ls
bin LICENSE plugin.yaml
[root@server2 helm]# helm push mychart-0.1.0.tgz mychart --insecure -u admin -p westos 上传chart包到仓库,需要用户名和密码认证
Pushing mychart-0.1.0.tgz to mychart...
Done.
查看仓库,上传成功
[root@server2 helm]# helm search repo mychart 搜索mychart库,但是搜索不到,没有更新
No results found
[root@server2 helm]# helm repo update 更新mychart
[root@server2 helm]# helm search repo mychart 再次搜索mychart库,上传的应用包就搜索出来了
NAME CHART VERSION APP VERSION DESCRIPTION
mychart/mychart 0.1.0 v1 A Helm chart for Kubernetes
部署:
[root@server2 helm]# helm install myapp mychart/mychart myapp为应用名字,自定义,后面就是打的包
[root@server2 helm]# helm list 查看helm部署的应用
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
myapp default 1 2022-04-21 21:33:56.95867012 +0800 CST deployed mychart-0.1.0 v1
3.1 版本更新
[root@server2 mychart]# vim values.yaml
[root@server2 mychart]# vim Chart.yaml
[root@server2 helm]# helm package mychart 打包mychart目录
Successfully packaged chart and saved it to: /root/helm/mychart-0.2.0.tgz 生成软件包
[root@server2 helm]# helm push mychart-0.2.0.tgz mychart --insecure -u admin -p westos 上传到mychart库
Pushing mychart-0.2.0.tgz to mychart...
Done.
[root@server2 helm]# helm repo update 更新仓库
[root@server2 helm]# helm search repo mychart -l 列出mychart库中所有应用包版本
NAME CHART VERSION APP VERSION DESCRIPTION
mychart/mychart 0.2.0 v2 A Helm chart for Kubernetes
mychart/mychart 0.1.0 v1 A Helm chart for Kubernetes
[root@server2 helm]# helm upgrade myapp mychart/mychart 升级版本
[root@server2 helm]# helm list 列出集群用helm部属的应用
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
myapp default 2 2022-04-22 01:21:02.419386271 +0800 CSTdeployed mychart-0.2.0 v2 版本以升级到v2
[root@server2 helm]# helm history myapp 查看myapp版本升级的历史
REVISION UPDATED STATUS CHART APP VERSION DESCRIPTION
1 Fri Apr 22 00:22:07 2022 superseded mychart-0.1.0 v1 Install complete
2 Fri Apr 22 01:21:02 2022 deployed mychart-0.2.0 v2 Upgrade complete
3.2 版本回滚
[root@server2 helm]# helm rollback myapp 1 版本回滚到1
Rollback was a success! Happy Helming!
[root@server2 helm]# helm uninstall myapp 删除myapp应用
3.3 示例一:用helm部署nfs
[root@server2 nfs]# helm repo add moikot https://moikot.github.io/helm-charts 添加仓库
"moikot" has been added to your repositories
[root@server2 helm]# helm pull moikot/nfs-client-provisioner 拉取
[root@server2 helm]# tar zxf nfs-client-provisioner-1.3.0.tgz 解压
[root@server2 helm]# cd nfs-client-provisioner/
[root@server2 nfs-client-provisioner]# ls
Chart.yaml ci OWNERS README.md templates values.yaml
[root@server2 nfs-client-provisioner]# vim values.yaml 查看变量文件
[root@server1 harbor]# docker pull quay.io/external_storage/nfs-client-provisioner:v3.1.0-k8s1.11 拉取镜像
[root@server1 harbor]# docker tag quay.io/external_storage/nfs-client-provisioner:v3.1.0-k8s1.11 reg.westos.org/library/nfs-client-provisioner:v3.1.0-k8s1.11 更改标签
[root@server1 harbor]# docker push reg.westos.org/library/nfs-client-provisioner:v3.1.0-k8s1.11 上传镜像到仓库
[root@server2 nfs-client-provisioner]# vim values.yaml 修改配置
[root@server2 nfs-client-provisioner]# kubectl create namespace nfs-client-provisioner 创建一个namespace
namespace/nfs-client-provisioner created
[root@server2 nfs-client-provisioner]# helm install nfs-client-provisioner . -n nfs-client-provisioner 从当前目录安装nfs,并指定namespace(nfs-client-provisioner)
[root@server2 nfs-client-provisioner]# helm -n nfs-client-provisioner list 列出helm部署的应用
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
nfs-client-provisioner nfs-client-provisioner 1 2022-04-22 19:39:46.72365943 +0800 CST deployed nfs-client-provisioner-1.3.0 3.1.0
[root@server2 nfs-client-provisioner]# kubectl -n nfs-client-provisioner get all
NAME READY STATUS RESTARTS AGE
pod/nfs-client-provisioner-5bc9886cfb-s8dd4 1/1 Running 0 3h15m 已经运行
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/nfs-client-provisioner 1/1 1 1 3h15m
NAME DESIRED CURRENT READY AGE
replicaset.apps/nfs-client-provisioner-5bc9886cfb 1 1 1 3h15m
[root@server2 nfs-client-provisioner]# kubectl -n nfs-client-provisioner get sa
NAME SECRETS AGE
default 1 3h31m
nfs-client-provisioner 1 3h16m 创建成功
测试:
[root@server2 ~]# cd volumes/
[root@server2 volumes]# vim pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc1
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
[root@server2 volumes]# kubectl apply -f pvc.yaml 创建
persistentvolumeclaim/pvc1 created
[root@server2 volumes]# kubectl get pvc 查看pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE 发现pvc始终没有绑定,不成功,是因为镜像的问题,换一个镜像
pvc1 Pending nfs-client 94s
[root@server2 volumes]# helm -n nfs-client-provisioner uninstall nfs-client-provisioner 回收
release "nfs-client-provisioner" uninstalled
[root@server2 volumes]# kubectl delete -f pvc.yaml 回收
将镜像换成v4.0.0版本
[root@server2 ~]# cd helm/
[root@server2 helm]# cd nfs-client-provisioner/
[root@server2 nfs-client-provisioner]# vim values.yaml
[root@server2 nfs-client-provisioner]# helm -n nfs-client-provisioner install nfs-client-provisioner . 从当前目录安装nfs
[root@server2 volumes]# kubectl apply -f pvc.yaml 创建
[root@server2 volumes]# kubectl get pvc 查看pvc,已经绑定成功
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc1 Bound pvc-3a7bb43a-0cfa-4883-ab8e-f03aa2e976c3 5Gi RWO nfs-client 19s
3.4 示例二:用helm部署ingress
[root@server2 helm]#helm repo add bitnami https://charts.bitnami.com/bitnami 添加chart库
[root@server2 ingress-nginx]# helm pull bitnami/nginx-ingress-controller 拉取包
[root@server2 helm]# tar zxf nginx-ingress-controller-9.1.25.tgz 解压
[root@server2 helm]# cd nginx-ingress-controller/
[root@server2 nginx-ingress-controller]# vim values.yaml 查看变量文件
[root@server1 ~]# docker pull bitnami/nginx-ingress-controller:1.1.3-debian-10-r17 拉取所需镜像
[root@server1 ~]# docker pull bitnami/nginx:1.21.6-debian-10-r80 拉取所需镜像
[root@server1 harbor]# docker tag bitnami/nginx-ingress-controller:1.1.3-debian-10-r17 reg.westos.org/bitnami/nginx-ingress-controller:1.1.3-debian-10-r17 改标签
[root@server1 harbor]# docker tag bitnami/nginx:1.21.6-debian-10-r80 reg.westos.org/bitnami/nginx:1.21.6-debian-10-r80 改标签
[root@server1 harbor]# docker push reg.westos.org/bitnami/nginx-ingress-controller:1.1.3-debian-10-r17 上传镜像到仓库
[root@server1 harbor]# docker push reg.westos.org/bitnami/nginx:1.21.6-debian-10-r80 上传镜像到仓库
[root@server2 nginx-ingress-controller]# vim values.yaml 编辑
[root@server2 nginx-ingress-controller]# kubectl create namespace nginx-ingress-controller 创建一个namespace
namespace/nginx-ingress-controller created
[root@server2 nginx-ingress-controller]# helm install nginx-ingress-controller . -n nginx-ingress-controller 安装
tls:
- hosts:
- www.example.com
secretName: example-tls
测试:
[root@server2 ~]# cd ingress/
[root@server2 ingress]# cat rs.yaml 运行两个pod用于测试用
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: myapp:v1
[root@server2 ingress]# kubectl apply -f rs.yaml 创建
[root@server2 ingress]# cat myservice.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
selector:
app: nginx
type: ClusterIP
[root@server2 ingress]# kubectl apply -f myservice.yaml 创建svc服务
service/myservice created
[root@server2 ingress]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 12d
nginx-svc ClusterIP 10.98.113.195 <none> 80/TCP 28s 创建成功
[root@server2 ingress]# vim demo.yaml 创建ingress服务暴露svc端口
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-demo
spec:
ingressClassName: nginx
rules:
- host: www1.westos.org
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-svc
port:
number: 80
[root@server2 ingress]# kubectl apply -f demo.yaml 创建
ingress.networking.k8s.io/ingress-demo created
[root@server2 ingress]# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
ingress-demo nginx www1.westos.org 80 58s
[root@server2 ingress]# kubectl -n nginx-ingress-controller get svc 查看svc,分配的ip为172.25.50.100
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-ingress-controller LoadBalancer 10.102.94.227 172.25.50.100 80:30796/TCP,443:30295/TCP 109m
nginx-ingress-controller-default-backend ClusterIP 10.111.17.156 <none> 80/TCP 109m
[root@foundation50 Desktop]# vim /etc/hosts 在主机上添加解析
172.25.50.100 www1.westos.org
访问:
[root@foundation50 Desktop]# curl www1.westos.org 成功
Hello MyApp | Version: v2 | <a href="hostname.html">Pod Name</a>
4 helm可视化
helm repo add bitnami https://charts.bitnami.com/bitnami 添加chart库
[root@server2 helm]# helm pull bitnami/kubeapps 拉取包
[root@server2 helm]# tar zxf kubeapps-8.0.12.tgz 解压
[root@server2 helm]# cd kubeapps/
[root@server2 kubeapps]# vim values.yaml
[root@server1 harbor]# docker pull bitnami/kubeapps-kubeops:2.4.4-scratch-r2 拉取所需镜像
[root@server1 harbor]#docker pull bitnami/nginx:1.21.6-debian-10-r81 拉取所需镜像
[root@server1 harbor]docker pull bitnami/kubeapps-apprepository-controller:2.4.4-scratch-r2 拉取所需镜像
[root@server1 harbor]docker pull bitnami/kubeapps-asset-syncer:2.4.4-scratch-r2 拉取所需镜像
[root@server1 harbor]docker pull bitnami/kubeapps-dashboard:2.4.4-debian-10-r12 拉取所需镜像
[root@server1 harbor]# docker pull bitnami/kubeapps-apis: 2.4.4-debian-10-r19 拉取所需镜像
[root@server1 harbor]# docker tag bitnami/kubeapps-kubeops:2.4.4-scratch-r2 reg.westos.org/bitnami/kubeapps-kubeops:2.4.4-scratch-r2 改标签
[root@server1 harbor]# docker tag bitnami/nginx:1.21.6-debian-10-r81 reg.westos.org/bitnami/nginx:1.21.6-debian-10-r81 改标签
[root@server1 harbor]# docker tag bitnami/kubeapps-apprepository-controller:2.4.4-scratch-r2 reg.westos.org/bitnami/kubeapps-apprepository-controller:2.4.4-scratch-r2 改标签
[root@server1 harbor]# docker tag bitnami/kubeapps-asset-syncer:2.4.4-scratch-r2 reg.westos.org/bitnami/kubeapps-asset-syncer:2.4.4-scratch-r2 改标签
[root@server1 harbor]# docker tag bitnami/kubeapps-dashboard:2.4.4-debian-10-r12 reg.westos.org/bitnami/kubeapps-dashboard:2.4.4-debian-10-r12 改标签
[root@server1 harbor]# docker tag bitnami/kubeapps-apis:2.4.4-debian-10-r19 reg.westos.org/bitnami/kubeapps-apis:2.4.4-debian-10-r19
[root@server1 harbor]# docker push reg.westos.org/bitnami/kubeapps-kubeops:2.4.4-scratch-r2 上传镜像到仓库
[root@server1 harbor]# docker push reg.westos.org/bitnami/nginx:1.21.6-debian-10-r81 上传镜像到仓库
[root@server1 harbor]# docker push reg.westos.org/bitnami/kubeapps-dashboard:2.4.4-debian-10-r12 上传镜像到仓库
[root@server1 harbor]# docker push reg.westos.org/bitnami/kubeapps-asset-syncer:2.4.4-scratch-r2 上传镜像到仓库
[root@server1 harbor]# docker push reg.westos.org/bitnami/kubeapps-apis:2.4.4-debian-10-r19 上传镜像到仓库
[root@server2 kubeapps]# vim values.yaml 配置文件
[root@server2 helm]# cd kubeapps/
[root@server2 kubeapps]# cd charts/
[root@server2 charts]# cd postgresql/
[root@server2 kubeapps]# vim values.yaml
[root@server1 harbor]# docker pull bitnami/postgresql:14.2.0-debian-10-r69 拉取镜像
[root@server1 harbor]# docker tag bitnami/postgresql:14.2.0-debian-10-r69 reg.westos.org/bitnami/postgresql:14.2.0-debian-10-r69 改标签
[root@server1 harbor]# docker push reg.westos.org/bitnami/postgresql:14.2.0-debian-10-r
[root@foundation50 Desktop]# vim /etc/hosts 做解析
172.25.50.100 www1.westos.org kubeapps.westos.org
[root@server2 kubeapps]# kubectl get sc 需要有存储
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-client (default) cluster.local/nfs-client-provisioner Delete Immediate true 27h
[root@server2 kubeapps]# kubectl create namespace kubeapps 创建namespace
namespace/kubeapps created
[root@server2 kubeapps]# helm -n kubeapps install kubeapps . 安装
实验没成功!!!!,后续在继续解决