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的名称
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐