一身转战三千里,一剑曾当百万师。这篇文章主要讲述k8s helm实战相关的知识,希望能为你提供帮助。
helm3使用
一.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
推荐阅读
- readinessProbe+preStop使应用更新时用户无感知
- K8S集群架构的kubeadm部署+dashboard和Harbor仓库部署
- Kubernetes——kubeadm部署安装+dashboard+harbor
- Linux之nc命令
- sersync 实现实时数据同步
- CENTOS开机自动加载shell脚本
- Nginx中的模块分类及常见配置项说明
- gitlab备份恢复 #yyds干货盘点#
- 搭建PXE远程安装服务器