K8S创建pg数据库
为什么使用k8s部署pg数据库:
首先可以熟悉k8s部署项目,其次可以联系yaml文件的编写。
理论:
在k8s中要想创建一个服务首先我们需要创建一个控制器,控制器的作用是帮助我们创建pod用的。当pod创建失败或者意外死亡时控制器就会帮我们自动去激活服务。然后是创建一个svc也就是server,当pod创建成功的了采用的是内部端口,测试我们通过集群外部的网络是没有办法直接访问的这之后就要借助svc将pod和外部网络的端口进行映射。
pg数据库yaml文件
Deployment (控制器) yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-deployment
spec:
strategy:
type: Recreate
selector:
matchLabels:
app: postgres
replicas: 1
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:11.7
imagePullPolicy: "IfNotPresent"
ports:
- containerPort: 5432
envFrom:
- configMapRef:
name: postgres-config
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgredb
volumes:
- name: postgredb
hostPath:
path: /data
type: DirectoryOrCreate
Service(服务) yaml
apiVersion: v1
kind: Service
metadata:
name: postgres-service
labels:
app: postgres
spec:
type: NodePort
ports:
- port: 5432
targetPort: 5432
protocol: TCP
selector:
app: postgres
部署项目
kubectl create -f postgres-deployment.yaml ------ postgres-deployment.yaml为Deployment (控制器) yaml的名称
kubectl create -f postgres-Service.yaml ------ postgres-Service.yaml为Service(控制器) yaml的名称