polardbx集群部署


1.vim polardbx.yaml

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: polardbx-pg-hba
  namespace: middle-ware
data:
  pg_hba.conf: |
    # Allow all IP addresses to connect using password authentication
     host    all             all             0.0.0.0/0               md5
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: polardbx-pv
  namespace: middle-ware
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: /data/polardbx
    type: DirectoryOrCreate

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: polardbx-pvc
  namespace: middle-ware
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

---
apiVersion: v1
kind: Service
metadata:
  name: polardbx-nodeport
  namespace: middle-ware
spec:
  type: NodePort
  selector:
    app: polardbx
  ports:
    - name: sql
      port: 5432
      targetPort: 5432
      nodePort: 31698
    - name: http
      port: 8080
      targetPort: 8080
      nodePort: 31001
---
apiVersion: v1
kind: Service
metadata:
  name: polardbx-headless
  namespace: middle-ware
spec:
  clusterIP: None
  selector:
    app: polardbx
  ports:
    - name: sql
      port: 5432
    - name: http
      port: 8080

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: polardbx
  namespace: middle-ware
spec:
  serviceName: polardbx-headless
  replicas: 1
  selector:
    matchLabels:
      app: polardbx
  template:
    metadata:
      labels:
        app: polardbx
    spec:
      tolerations:
      - key: "node-role.kubernetes.io/control-plane"
        operator: "Exists"
        effect: "NoSchedule"
      initContainers:
      - name: copy-config
        image: busybox
        command: ["sh", "-c", "cp /tmp/pg_hba.conf /var/polardb/pg_hba.conf && chown 1000:1000 /var/polardb/pg_hba.conf && chmod 0750 /var/polardb/replica_datadir1 && echo 'copy-config done'"]
        volumeMounts:
        - name: pg-hba-config
          mountPath: /tmp
        - name: polardbx-data
          mountPath: /var/polardb
      containers:
      - name: polardbx
        image: registry.cn-hangzhou.aliyuncs.com/polardb_pg/polardb_pg_local_instance:15
        volumeMounts:
        - name: polardbx-data
          mountPath: /var/polardb
      volumes:
      - name: polardbx-data
        persistentVolumeClaim:
          claimName: polardbx-pvc
      - name: pg-hba-config
        configMap:
          name: polardbx-pg-hba

这里添加了污点容忍,hostpath存放pv,目录/data/porarldbx/,权限授权给750
chmod -R 0750 /data/porarldbx/

kubectl get pods -A
查看running状态

进入配置用户和密码:
kubectl exec -it polardbx-0 -n middle-ware -- /bin/bash
psql -U postgres -d postgres
CREATE USER progres WITH PASSWORD 'xixi';
#GRANT ALL PRIVILEGES ON DATABASE postgres TO progres;
ALTER USER progres WITH SUPERUSER;
ALTER USER progres CREATEDB;

kubectl exec -it polardbx-0 -n middle-ware -- /bin/bash

登录测试账密
postgres@polardbx-0:~$ psql -h 10.10.10.150 -p 31698 -U progres -d postgres
xixi
成功标志:
postgres=>

3。测试客户端连接

安装pgadmin4
new 连接
名称:自定义
host:10.10.10.150
port:31698
user:progres
password:xixi

你可能感兴趣的:(polardbx,kubernetes)