kubernetes helm

目录

一、helm 

二、部署helm

三、封装chart包

四、上传chart到OCI仓库

五、部署wordpress博客系统

六、helm部署storageclass

七、helm部署ingress-nginx

八、helm部署metrics-server

九、kubeapps


一、helm 

  • Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum
  • Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发
  • 对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库
  • 对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序

 Helm V3 与 V2 最大的区别在于去掉了tiller

二、部署helm

官网:https://helm.sh/zh/docs/intro/quickstart/

https://github.com/helm/helm/releases

安装:

tar zxf helm-v3.11.0-linux-amd64.tar.gz
cd linux-amd64/
mv helm  /usr/local/bin/

 配置helm命令补齐

echo "source <(helm completion bash)" >> ~/.bashrc
source ~/.bashrc
helm version

查询官方应用中心

helm search hub nginx

 添加第三方repo源

helm repo add my-repo https://charts.bitnami.com/bitnami
helm  repo  list
helm search repo nginx

拉取应用
helm  pull my-repo/nginx
tar zxf nginx-15.4.0.tgz
cd nginx/

按需修改
vim values.yaml

 

 上传镜像

docker pull bitnami/nginx:1.25.3-debian-11-r0
docker tag docker.io/bitnami/nginx:1.25.3-debian-11-r0 reg.westos.org/bitnami/nginx:1.25.3-debian-11-r0
docker push reg.westos.org/bitnami/nginx:1.25.3-debian-11-r0

 部署应用

helm  install myapp .

测试:

 

 再次修改配置

vim values.yaml

更新应用
helm upgrade myapp .

 查看应用

helm list

查看应用历史
helm  history myapp

回滚应用

helm  rollback myapp 1
回收
helm uninstall myapp

三、封装chart包

helm  create mychart
vim Chart.yaml
vim values.yaml

 

检测语法 打包  部署应用  回收

helm lint mychart/
helm package mychart/
helm install  myapp mychart-0.1.0.tgz
helm  list

 

测试:更新:

 

测试:

回收:

kubectl get all

四、上传chart到OCI仓库

创建harbor仓库:

未登录认证时 :

需要拷贝证书以及登录

cp /etc/docker/certs.d/reg.westos.org/ca.crt /etc/pki/tls/certs/
helm  registry login reg.westos.org -u admin -p 123456

helm env

 上传chart

helm  push mychart-0.2.0.tgz oci://reg.westos.org/charts

 下载chart,默认下载最新版本

helm pull oci://reg.westos.org/charts/mychart --version 0.2.0

安装chart

helm install myapp oci://reg.westos.org/charts/mychart  --version 0.1.0

测试:

升级
helm upgrade myapp oci://reg.westos.org/charts/mychart  --version 0.2.0

也可以使用 

helm  rollback myapp 1 回滚版本

 测试:

五、部署wordpress博客系统

上传镜像:

下载chart包部署 mysql数据库集群     使用yml文件安装应用 

vim mysql-values.yaml

global:
  imageRegistry: reg.westos.org
architecture: replication
auth:
  rootPassword: westos
  database: wordpress
  username: wordpress
  password: wordpress
  replicationUser: replicator
  replicationPassword: westos

helm install --wait mydbcluster -f mysql-values.yaml mysql-9.14.2.tgz

 查看部署信息

helm  get manifest mydbcluster |kubectl get -f -

连接数据库
MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace default mydbcluster-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d)

kubectl run mydbcluster-mysql-client --rm --tty -i --restart='Never' --image  reg.westos.org/bitnami/mysql:8.0.35-debian-11-r0 --namespace default --env MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD --command -- bash

mysql -h mydbcluster-mysql-primary.default.svc.cluster.local -uroot -p"$MYSQL_ROOT_PASSWORD"

mysql -h mydbcluster-mysql-secondary.default.svc.cluster.local -uwordpress -pwordpress

 部署wordpress

vim wordpress-values.yaml

global:
  imageRegistry: reg.westos.org
wordpressUsername: james
wordpressPassword: james
mariadb:
  enabled: false
externalDatabase:
  host: mydbcluster-mysql-primary
  user: wordpress
  password: wordpress
  database: wordpress

helm  install myblog -f wordpress-values.yaml wordpress-18.1.6.tgz

 等待myblog初始化完毕

kubectl logs myblog-wordpress-c6d4c4647-qdts6  -f

 获取myblog 外部IP

helm get manifest  myblog |kubectl get -f -

使用浏览器访问wordpress  登录 192.168.67.122/admin

升级mydbcluster

vim mysql-values-update.yaml
global:
  imageRegistry: reg.westos.org
architecture: replication
auth:
  rootPassword: westos
  database: wordpress
  username: wordpress
  password: wordpress
  replicationUser: replicator
  replicationPassword: westos
secondary:
  replicaCount: 2

helm upgrade --atomic --timeout 10m mydbcluster -f mysql-values-update.yaml mysql-9.14.2.tgz

查看历史修订   回滚版本

helm  history  mydbcluster
helm get manifest mydbcluster --revision 1
helm  rollback mydbcluster 1
helm  history  mydbcluster

回收:

六、helm部署storageclass

删除原有的部署
kubectl delete  -f  nfs-client.yaml

添加repo
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm search  repo nfs-subdir-external-provisioner

修改配置文件

将修改好的文件打包 上传chart到oci

创建namespace

kubectl create namespace nfs-provisioner

 使用oci部署应用

helm -n nfs-provisioner install  nfs-client --wait oci://reg.westos.org/charts/nfs-subdir-external-provisioner
kubectl -n nfs-provisioner get pod

测试:

七、helm部署ingress-nginx

回收原有部署
kubectl delete  -f deploy.yaml
上传镜像文件

添加repo下载chart包

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm search repo ingress-nginx
helm  pull ingress-nginx/ingress-nginx

修改配置文件

vim values.yaml

将修改好的文件打包 上传chart到oci

tar zxf ingress-nginx-4.8.3.tgz
helm package ingress-nginx
helm push ingress-nginx-4.8.3.tgz oci://reg.westos.org/charts

 创建namespace   部署应用

kubectl create namespace ingress-nginx
helm -n ingress-nginx install ingress-nginx oci://reg.westos.org/charts/ingress-nginx

 测试:

helm -n ingress-nginx get manifest ingress-nginx |kubectl get -f -
helm install myapp local/mychart
curl  myapp.westos.org
helm uninstall myapp

八、helm部署metrics-server

回收原有部署
kubectl delete -f components.yaml

添加repo 及下载

helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/
helm  search repo metrics-server
helm  pull metrics-server/metrics-server

 解压修改配置文件

tar zxf metrics-server-3.8.4.tgz
cd metrics-server
vim values.yaml

上传至oci

创建namespace

kubectl create namespace metrics-server
helm -n metrics-server install metrics-server oci://reg.westos.org/charts/metrics-server
helm -n metrics-server get manifest metrics-server  kubectl get -f 

测试:

九、kubeapps

下载上传镜像:

docker load -i kubeapps-2.9.0.tar
docker images |grep reg.westos.org/bitnami | awk '{system("docker push "$1":"$2"")}'

下载chart包

helm search repo kubeapps
helm pull my-repo/kubeapps

解压修改配置文件

tar zxf kubeapps-14.0.2.tgz
cd kubeapps/
vim values.yaml

使用LoadBalancer  不使用ingress ingress访问需要在Windows上添加解析

打包上传至oci

helm package kubeapps/
helm push  kubeapps-14.0.2.tgz oci://reg.westos.org/charts

创建namespace 使用oci部署

kubectl create namespace kubeapps
helm -n kubeapps install kubeapps oci://reg.westos.org/charts/kubeapps

获取访问信息:

 访问:

授权并获取token
kubectl create serviceaccount kubeapps-operator -n kubeapps
kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=kubeapps:kubeapps-operator
kubectl -n kubeapps create token kubeapps-operator

 使用token登录web页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值