准备k8s集群

准备local pv
local pv前提条件
- 节点上需要打上调度需要的label
- 节点上手动创建目录
mkdir -p /data/pg_data
创建db名称空间kubectl label nodes t-k8s-node1 pg=true
编写local-pv yaml ``` cat > local-pv.yaml << EOF kind: StorageClass apiVersion: storage.k8s.io/v1kubectl create ns db
metadata: name: local-storage namespace: db provisioner: kubernetes.io/no-provisioner
apiVersion: v1 kind: PersistentVolume metadata: name: local-pv namespace: db spec: capacity: storage: 20Gi accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /data/pg_data
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: pg
operator: Exists
EOF
kubectl create secret docker-registry hz-registry-secret —namespace=db —docker-server=registry.cn-hangzhou.aliyuncs.com —docker-username=杭州艾麦科技 —docker-password=xxxxxxx<a name="fiNMH"></a>## 部署pg创建docker私有库的secret
cat > pg-statefulset.yaml << EOF apiVersion: apps/v1 kind: StatefulSet metadata: name: pg namespace: db spec: serviceName: “pg” replicas: 1 selector: matchLabels: app: pg template: metadata: labels: app: pg spec: terminationGracePeriodSeconds: 10 imagePullSecrets: - name: hz-registry-secret containers:
- name: pg
image: registry.cn-hangzhou.aliyuncs.com/hz-imile/hz:pg-12.4
imagePullPolicy: IfNotPresent
readinessProbe:
tcpSocket:
initialDelaySeconds: 20 timeoutSeconds: 5 periodSeconds: 3 livenessProbe: tcpSocket:port: 5432
initialDelaySeconds: 30 timeoutSeconds: 5 periodSeconds: 3 env:port: 5432
- name: POSTGRES_PASSWORD value: pgsql@123 ports:
- containerPort: 5432 volumeMounts:
- name: datadir mountPath: /var/lib/postgresql/data volumeClaimTemplates:
- key: pg
operator: Exists
EOF
- matchExpressions:
- metadata:
name: datadir
spec:
accessModes: [ “ReadWriteOnce” ]
storageClassName: local-storage
resources:
requests:storage: 20Gi
apiVersion: v1 kind: Service metadata: name: pg namespace: db spec: type: NodePort ports:
- port: 5432 targetPort: 5432 nodePort: 30002 selector: app: pg EOF ```
kubectl apply -f pg-statefulset.yaml
访问pg
安装pg客户端
yum install postgresql -y
利用service连接pg
psql -U postgres -h xxxxx -p 5432

利用nodeport访问
psql -U postgres -h 10.10.0.4 -p 30002

