【目录】
- 1.定义K8S中的存储资源
- 2.定义K8S中Service资源
- 3.定义K8S中Deployment资源
1.定义K8S中的持久存储
- 安装postgreSQL的 /var/lib/postgresql 挂载到nfs存储类的pvc,这里挂载的是
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pg-data
spec:
storageClassName: nfs-client ## nfs存储类名称
accessModes:
- ReadWriteMany
resources:
requests:
storage: 300Mi #可以修改大小
2.定义K8S中Service资源
- 采用的Service是根据容器标签选择器app=postgre来确定服务
apiVersion: v1
kind: Service
metadata:
name: postgresql
spec:
clusterIP: None
selector:
app: postgres # 容器标签选择器
3.定义K8S中Deployment资源
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgresql # pod 名称
labels:
app: postgres # 定义容器标签 app=postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres/postgres:10.5 # 可从docker hub 官网拉取
imagePullPolicy: IfNotPresent # 设置镜像拉取策略
env:
- name: POSTGRES_PASSWORD #初始化数据库用户kong的密码
value: kongpwd
- name: POSTGRES_USER #初始化数据库用户kong
value: kong
- name: PGDATA
value: /var/lib/postgresql/data
volumeMounts:
- name: postgre-data
mountPath: /var/lib/postgresql # 选择要挂载到nfs的容器存储路径
volumes:
- name: postgre-data
persistentVolumeClaim:
claimName: pg-data # 定义指向pvc的名称