k8s部署单节点postgresql并使用local-path-provisioner storageClass作为持久化存储
部署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-log
spec:
serviceName: "postgres-headless"
replicas: 1
selector:
matchLabels:
app: postgres-log
template:
metadata:
labels:
app: postgres-log
spec:
containers:
- name: postgres-log
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
volumeClaimTemplates:
- metadata:
name: postgres-data
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "local-path" # 指定存储类
resources:
requests:
storage: 1200Gi部署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:
name: postgres-log
type: NodePort
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 运维小白
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

