1.離線環境
CPU:Hygon C86 7285 32-core Processor
操作系統:麒麟操作系統
containerd:1.7.27
Kubernetes:1.26.12
KubeSphere:4.1.2
kubekey:3.1.10
Harbor:2.13.1
Postgis:17-3.5
2.創建并執行postgresql-headless.yaml
2.1創建
apiVersion: v1
kind: Service
metadata:
??name: postgresql-headless
??labels:
????app: postgresql
spec:
??ports:
????- name: client
??????port: 5432
??????targetPort: 5432
??clusterIP: None
??selector:
app: postgresql
2.1執行
kubectl apply -f postgresql-headless.yaml
3創建數據庫登錄用戶及密碼的Secret
3.1創建?
apiVersion: v1
kind: Secret
metadata:
??name: postgresql-secret
type: Opaque
data:
??# 使用 base64 編碼的用戶名和密碼
??POSTGRES_USER: c2lub3Bz?
??POSTGRES_PASSWORD: U2lub3BzMTIzNA==?
3.2執行
kubectl apply -f postgresql-secret.yaml?
4創建postgresql-sts.yaml
4.1創建?
apiVersion: apps/v1
kind: StatefulSet
metadata:
??name: postgresql
spec:
??serviceName: postgresql-headless
??replicas: 1
??selector:
????matchLabels:
??????app: postgresql
??template:
????metadata:
??????labels:
????????app: postgresql
????spec:
??????containers:
??????- name: postgresql
????????image: 172.23.123.117:8443/library/postgis/postgis:17-3.5
????????ports:
????????- containerPort: 5432
????????env:
????????- name: POSTGRES_DB
??????????value: "CZ_DB"
????????- name: POSTGRES_USER
??????????valueFrom:
????????????secretKeyRef:
??????????????name: postgresql-secret
??????????????key: POSTGRES_USER
????????- name: POSTGRES_PASSWORD
??????????valueFrom:
????????????secretKeyRef:
??????????????name: postgresql-secret
??????????????key: POSTGRES_PASSWORD
????????- name: TZ
??????????value: "Asia/Shanghai"
????????volumeMounts:
????????- name: postgresql-data
??????????mountPath: /var/lib/postgresql/data
??volumeClaimTemplates:
??- metadata:
??????name: postgresql-data
????spec:
??????accessModes: [ "ReadWriteOnce" ]
??????storageClassName: local-postgresql
??????resources:
????????requests:
??????????storage: 10Gi
4.2執行
kubectl apply -f postgresql-sts.yaml
5創建postgresql-service.yaml
5.1創建?
apiVersion: v1
kind: Service
metadata:
??name: postgresql-service
spec:
??type: NodePort
??ports:
????- port: 5432 ????????
??????targetPort: 5432 ??
??????nodePort: 30084 ???
??selector:
????app: postgresql ???
5.2執行
?kubectl apply -f postgresql-service.yaml
?