41 kubernetes使用helm部署服务 - xiaoxin01/Blog GitHub Wiki
本文介绍如何使用 helm 来在kubernetes集群中部署服务
helm的源码在:https://github.com/helm/helm
ubuntu可以通过 snap 来安装:
sudo snap install helm
完成之后,需要将 kubernetes 的配置文件复制到 helm 目录下:
cp ~/.kube/config ~/snap/helm/common/kube/config
执行如下命令初始化:
helm init
获取已经安装的服务列表:
helm list
此时如果报错:
Error: configmaps is forbidden: User "system:serviceaccount:kube-system:default" cannot list configmaps in the namespace "kube-system"
则需要添加kube-system:default的admin权限:
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
现在就可以通过 helm install 来安装需要的服务了。
可以在这里查看可以通过 helm 来安装的服务:
https://github.com/helm/charts
先创建好存储卷和声明:
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-postgres
spec:
capacity:
storage: 8Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/postgres
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- 172.21.x.x
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-postgres
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: ""
volumeName: pv-postgres
创建服务:
helm install --name postgresql \
--set postgresUser=user,postgresPassword=password,postgresDatabase=db,persistence.existingClaim=pvc-postgres,persistence.subPath="" \
stable/postgresql
完成之后,可以在集群中使用如下地址访问:
postgresql.default.svc.cluster.local
参见:https://github.com/helm/charts/tree/master/stable/postgresql