kubernetes部署postgres

1、使用如下yaml文件部署postgres服务
1.1、创建deployment

cat postgres_deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    k8s.kuboard.cn/name: postgres
  name: postgres
  namespace: default
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.kuboard.cn/name: postgres
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s.kuboard.cn/name: postgres
    spec:
      containers:
        - env:
            - name: POSTGRES_DB
              value: sonar
            - name: POSTGRES_USER
              value: sonar
            - name: POSTGRES_PASSWORD
              value: sonar@pw
          image: 'postgres:10.12'
          imagePullPolicy: IfNotPresent
          name: postgres
          ports:
            - containerPort: 5432
              name: postgres-port
              protocol: TCP
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      schedulerName: default-scheduler
      terminationGracePeriodSeconds: 30

1.2、创建service

cat postgres_svc.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    k8s.kuboard.cn/name: postgres
  name: postgres
  namespace: default
spec:
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  ports:
    - name: postgres-port
      nodePort: 31273
      port: 5432
      protocol: TCP
      targetPort: 5432
  selector:
    k8s.kuboard.cn/name: postgres
  type: NodePort

2、应用yaml文件创建服务

kubectl apply -f postgres_deploy.yaml
kubectl apply -f postgres_svc.yaml

3、查看是否创建成功

[root@master ~]# kubectl get pod,svc
NAME                            READY   STATUS    RESTARTS   AGE
pod/postgres-7dbc947c79-gvgvb   1/1     Running   0          1h

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/postgres     NodePort    10.106.116.191   <none>        5432:31273/TCP   1h

4、postgres 服务部署完成,可以使用集群内地址或者nodeport方式进行 postgres 数据库连接

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
PostgreSQL 的主从复制是一种常见的高可用架构解决方案。下面是一个基本的 PostgreSQL 主从部署教程: 1. 安装 PostgreSQL 在主服务器和从服务器上都安装 PostgreSQL 数据库,并确保两个服务器上的 PostgreSQL 版本相同。 2. 配置主服务器 在主服务器的 postgresql.conf 文件中设置以下参数: ``` listen_addresses = '*' wal_level = replica max_wal_senders = 3 wal_keep_segments = 8 ``` 在 pg_hba.conf 文件中添加从服务器的访问权限: ``` host replication <从服务器用户名> <从服务器IP地址>/32 md5 ``` 然后重启 PostgreSQL 服务。 3. 创建备份 在主服务器上创建一个备份,并将备份文件传输到从服务器。 4. 配置从服务器 在从服务器的 postgresql.conf 文件中设置以下参数: ``` hot_standby = on ``` 在 recovery.conf 文件中添加以下内容: ``` standby_mode = 'on' primary_conninfo = 'host=<主服务器IP地址> port=<主服务器端口号> user=<从服务器用户名> password=<从服务器密码>' trigger_file = '/tmp/postgresql.trigger.5432' ``` 其中,<主服务器IP地址>、<主服务器端口号>、<从服务器用户名> 和 <从服务器密码> 需要替换为实际的值。 5. 启动从服务器 在从服务器上启动 PostgreSQL 服务,它将自动连接到主服务器并开始复制数据。 6. 测试 在主服务器上创建一些数据,并在从服务器上验证数据是否已经复制成功。 这只是一个基本的 PostgreSQL 主从部署教程,实际上还有很多细节需要注意。例如,如何处理主服务器故障、如何配置流复制和逻辑复制等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维那些事~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值