Helm部署postgresql

环境信息

  1. Kubernetes:v1.20.6
  2. StorageClass:UFS
  3. Helm:v3.5.2

添加 Helm仓库

这里选用BitNami提供的chart仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

同步海外源镜像

在国内环境部署应用,经常因为获取国外源站容器镜像超时,导致部署失败,可以提前将容器镜像同步到本地镜像仓库中,以自有镜像仓库 uhub.service.ucloud.cn/ucloud_pts 为例:

docker login uhub.service.ucloud.cn/ucloud_pts
docker pull bitnami/postgresql:13.3.0-debian-10-r55
docker tag bitnami/postgresql:13.3.0-debian-10-r55 uhub.service.ucloud.cn/ucloud_pts/postgresql:13.3.0-debian-10-r55
docker push uhub.service.ucloud.cn/ucloud_pts/postgresql:13.3.0-debian-10-r55

创建 imagePullSecrets

创建容器集群访问 uhub.service.ucloud.cn/ucloud_pts 需要的 secret

kubectl create namespace db
kubectl create secret docker-registry registry-secret-name \
        --namespace=db \
        --docker-server=uhub.service.ucloud.cn/ucloud_pts \
        --docker-username='xxxxxx' \
        --docker-password='xxxxxx'

使用Helm部署postgresql

cat > pg-values.yaml << EOF
image:
  registry: uhub.service.ucloud.cn/ucloud_pts
  repository: postgresql
  tag: 13.3.0-debian-10-r55
global:
  imagePullSecrets:
    - registry-secret-name
  storageClass: csi-udisk-rssd
  postgresql:
    postgresqlDatabase: dbname
    postgresqlUsername: pgadmin
    postgresqlPassword: passwdxxxx
EOF
helm install gitlib-db -f pg-values.yaml bitnami/postgresql -n gitlib

如果需要部署不同PG版本,选择同步不同版本镜像即可:

  • PG v13: bitnami/postgresql:13.3.0-debian-10-r55
  • PG v12: bitnami/postgresql:12.7.0-debian-10-r51
  • PG v11: bitnami/postgresql:11.12.0-debian-10-r53

更多版本可以参考,https://hub.docker.com/r/bitnami/postgresql/tags?page=1&ordering=last_updated&name=debian

验证部署

  1. 集群内域名:gitlib-db-postgresql.gitlib.svc.cluster.local

  2. 获取 postgres 用户密码:

export POSTGRES_ADMIN_PASSWORD=$(kubectl get secret --namespace db dbname-postgresql -o jsonpath="{.data.postgresql-postgres-password}" | base64 --decode)

  1. 获取 pgadmin 用户密码

export POSTGRES_PASSWORD=$(kubectl get secret --namespace db dbname-postgresql -o jsonpath="{.data.postgresql-password}" | base64 --decode)

  1. 验证连接数据

kubectl run dbname-postgresql-client --rm --tty -i --restart='Never' --namespace db --image uhub.service.ucloud.cn/ucloud_pts/postgresql:11.12.0-debian-10-r44 --env="PGPASSWORD=$POSTGRES_PASSWORD" --command -- psql --host gitlib-db-postgresql -U pgadmin -d gitlib-db -p 5432

参考部分

https://artifacthub.io/packages/helm/bitnami/postgresql

你可能感兴趣的:(Helm部署postgresql)