k8s helm实战

一身转战三千里,一剑曾当百万师。这篇文章主要讲述k8s helm实战相关的知识,希望能为你提供帮助。
helm3使用 一.helm架构
【k8s helm实战】

k8s helm实战

文章图片

二.helm安装和常见命令
wget https://get.helm.sh/helm-v3.0.2-linux-amd64.tar.gz tar zvxf helm-v3.0.2-linux-amd64.tar.gz mv linux-amd64/helm /usr/bin/ #配置国内chart 仓库 helm repo add stable http://mirror.azure.cn/kubernetes/charts helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts helm repo update #查看配置的存储库 helm repo list helm search repo stable helm repo remove aliyun #常用命令 helm search repo stable/mysql 查看mysql定义 helm list 查看安装应用 helm pull stable/mysql 拉取mysql helm install mysql.tgz #本地存档安装 helm install path/to/foo #chart目录安装 helm install http://example.com/charts/msql.tgz #完整url

三.helm使用案例之安装mysql
helm install db stable/mysql #安装 helm status db#查看状态 helm show values stable/mysql > values.yaml查看配置 #需要提前创建pv apiVersion: v1 kind: PersistentVolume metadata: name: pv33#pv名称 spec: capacity:#存储能力,一个pv对象都要指定一个存储能力,目前仅支持存储空间的设置 storage: 8Gi#存储空间 accessModes: - ReadWriteOnce#访问模式 #persistentVolumeReclaimPolicy: Recycle#回收策略 nfs:#服务模式 (nfs、ceph、hostpath等) path: /data/k8s-volume/db#共享数据目录挂载点 server: 10.206.16.4#nfs服务器地址 ~###修改values.yaml helm show values stable/mysql > values.yaml #到处values helm install db2 -f values.yaml stable/mysql #应用values #命令行替代方式 helm install db --set persistence.storageClass="managed-nfs-storage" stable/mysql

四.制作一个helm包
helm create nginx-demo#创建nginx helm #删除template里面的内容 kubectl create deployment web --image=nginx --dry-run -o yaml > deployment.yaml kubectl create deployment web --image=nginx kubectl expose deployment web --port=80 --target-port=80 --dry-run -o yaml > service.yaml kubectl delete deployment web --image=nginx helminstall web--dry-run /root/helm/nginx#调试是否正确 helm install web /root/helm/nginx#安装 #定义values参数形式传递给 #deployment.yaml定义 apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: chart:.Chart.Name app:.Release.Name name:.Release.Name spec: replicas:.Values.replicas selector: matchLabels: app:.Values.label strategy: template: metadata: creationTimestamp: null labels: app:.Values.label spec: containers: - image:.Values.image : .Values.imageTag name:.Release.Name resources: status: #service.yaml参数化 apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: chart:.Chart.Name app:.Release.Name name:.Release.Name spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app:.Values.label status: loadBalancer: #values.yaml定义 replicas: 3 image: nginx imageTag: 1.17 label: nginx# 调试是否正确 helm install web --dry-run /root/nginx/ #安装 helm install web /root/nginx/ #升级 helmupgradeweb/root/helm/nginx kubectlget ep #查看endpoint #单独设置某个参数的值 helm upgradeweb --set replicas=2 /root/helm/nginx


    推荐阅读