k8s部署单节点postgresql并挂载服务器磁盘
部署headless svc
apiVersion: v1
kind: Service
metadata:
name: postgres-headless
labels:
app: postgres-headless
spec:
ports:
- port: 5432
name: postgres
clusterIP: None
selector:
app: postgres-log部署postgresql
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres-logs
spec:
serviceName: "postgres-logs-headless"
replicas: 1
selector:
matchLabels:
app: postgres-logs
template:
metadata:
labels:
app: postgres-logs
spec:
nodeName: n01
containers:
- name: postgres-logs
image: postgres:16.13-bookworm
ports:
- containerPort: 5432
name: postgres
env:
- name: POSTGRES_HOST_AUTH_METHOD
value: trust
volumeMounts:
- name: postgres-data
mountPath: /var/lib/postgresql/data
resources:
requests:
memory: "512Mi"
cpu: "250m"
livenessProbe:
exec:
command: ["pg_isready", "-U", "postgres"]
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
exec:
command: ["pg_isready", "-U", "postgres"]
initialDelaySeconds: 5
periodSeconds: 5
volumes:
- name: postgres-data
hostPath:
type: DirectoryOrCreate
path: /data/pgdata部署NodePort svc 用于外部访问
apiVersion: v1
kind: Service
metadata:
name: postgres-log-np
labels:
app: postgres-log-np
spec:
ports:
- name: postgres-log-np
nodePort: 25432
port: 5432
protocol: TCP
targetPort: 5432
selector:
app: postgres-log
type: NodePort