Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
Helm V3 与 V2 最大的区别在于去掉了tiller
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 repositories2.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.102.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 卸载nginx3 建立本地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 v13.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 complete3.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 19s3.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 443/TCP 12d
nginx-svc ClusterIP 10.98.113.195 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 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 | Pod Name
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 . 安装
实验没成功!!!!,后续在继续解决



