41 kubernetes使用helm部署服务 - xiaoxin01/Blog GitHub Wiki

本文介绍如何使用 helm 来在kubernetes集群中部署服务

安装 helm

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

使用 helm 安装 postgresql

先创建好存储卷和声明:

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

⚠️ **GitHub.com Fallback** ⚠️