1、安装Helm Client
[root@master01 tmp]# wget https://get.helm.sh/helm-v2.16.6-linux-amd64.tar.gz
........................
[root@master01 tmp]# tar -zxvf helm-v2.16.6-linux-amd64.tar.gz
........................
[root@master01 tmp]# mv linux-amd64/helm /usr/local/bin/
[root@master01 tmp]# helm version
Client: &version.Version{SemVer:"v2.16.6", GitCommit:"dd2e5695da88625b190e6b22e9542550ab503a47", GitTreeState:"clean"}
Error: could not find tiller
2、安装tiller
[root@master01 tmp] kubectl create serviceaccount --namespace kube-system tiller
.....................
[root@master01 tmp] kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
..............................
[root@master01 tmp] helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.6 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts --service-account tiller
这时发现 pod tiller-deploy-549b9d7484-7lzdp 下载失败,那是因为被墙了。修改一下image的源即可。
[root@master01 ~]# kubectl edit deployment tiller-deploy -n kube-system
修改containers属性为: image: sapcc/tiller:v2.16.6,保存即可。
3、用helm部署一个应用(tomcat)
- 首先,需配置nfs,请参见前一篇文章:Kubernetes1.18实践及踩坑(之五)持久化(NFS)
- 创建pv-tomcat.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-tomcat
namespace: default
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
nfs:
path: /usr/local/work/nfs/tomcat
server: 192.168.100.51
- 部署tomcat
[root@master01 ~]# helm install --name my-tomcat bitnami/tomcat
.................
[root@master01 ~]# helm list
NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
my-tomcat 1 Sun Apr 26 00:10:43 2020 DEPLOYED tomcat-6.3.5 9.0.34 default
[root@master01 ~]# kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.10.0.1 <none> 443/TCP 8d
my-tomcat LoadBalancer 10.10.101.127 <pending> 80:32456/TCP 26h
可以看到已经部署成功,通过cluster ip 10.10.101.127 即可访问。
注:helm会自动创建一个pvc以关联pv-tomcat。