k8s部署pgsql集群

K8S - 集群中部署 PostgreSQL 1、创建pv vi pgsql-data-pv.yaml --- kind: PersistentVolume apiVersion: v1 metadata: name: pgsqlpv0001 labels: type: hostpath spec: capacity: storage: 5Gi accessModes: - ReadWriteMany hostPath: path: "/root/k8s/pgsql 阅读详情

一、前言

        本教程是使用zalando/postgres-operator部署的pgsql集群,部署的pgsql集群有两个svc,分别用于只读从节点的svc和读写主节点的svc

二、部署pgsql集群

提前在github上下载部署pgsql-operator部署需要的文件

参考:

下载以下五个yaml文件

下载完成后编辑以下文件内容

vi configmap.yaml

docker_image: xxx.xxx.com/base_image/spilo:3.0    #变更为自身的镜像地址
vi minimal-postgres-manifest.yaml 

apiVersion: "acid.zalan.do/v1"
kind: postgresql
metadata:
  name: acid-minimal-cluster
spec:
  teamId: "acid"
  volume:
    size: 30Gi
    storageClass: pgsql-pv    #配置挂载的pv storageClass
  numberOfInstances: 3
  users:
    zalando:  # database owner
    - superuser
    - createdb
    foo_user: []  # role for application foo
  databases:
    foo: zalando  # dbname: owner
  preparedDatabases:
    bar: {}
  postgresql:
    version: "14"      #指定pgsql版本
 vi postgres-operator.yaml 

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres-operator
  labels:
    application: postgres-operator
spec:
  replicas: 1
  strategy:
    type: "Recreate"
  selector:
    matchLabels:
      name: postgres-operator
  template:
    metadata:
      labels:
        name: postgres-operator
    spec:
      serviceAccountName: postgres-operator
      containers:
      - name: postgres-operator
        image: xxx.xxx.com/base_image/postgres-operator:v1.10.1  #配置为本地镜像地址
        imagePullPolicy: IfNotPresent
        resources:
          requests:
            cpu: 100m
            memory: 250Mi
          limits:
            cpu: 500m
            memory: 500Mi
        securityContext:
          runAsUser: 1000
          runAsNonRoot: true
          readOnlyRootFilesystem: true
          allowPrivilegeEscalation: false
        env:
        # provided additional ENV vars can overwrite individual config map entries
        - name: CONFIG_MAP_NAME
          value: "postgres-operator"
        # In order to use the CRD OperatorConfiguration instead, uncomment these lines and comment out the two lines above
        # - name: POSTGRES_OPERATOR_CONFIGURATION_OBJECT
        #  value: postgresql-operator-default-configuration
        # Define an ID to isolate controllers from each other
        # - name: CONTROLLER_ID
        #   value: "second-operator"
      imagePullSecrets:
      - name: pgsql-secret       #配置拉取本地镜像的secreet

配置本地镜像secret

kubectl create secret docker-registry pgsql-secret --docker-server='https://xxx.xxx.com' --docker-username=xxx --docker-password=xxxx

配置pv存储

vi pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pgsql-0
spec:
  storageClassName: pgsql-pv    #定义了存储类型
  capacity:
    storage: 30Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /share/k8s/test-pgsql/pgsql0
    server: 10.1.60.6
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pgsql-1
spec:
  storageClassName: pgsql-pv    #定义了存储类型
  capacity:
    storage: 30Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /share/k8s/test-pgsql/pgsql1
    server: 10.1.60.6
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pgsql-2
spec:
  storageClassName: pgsql-pv    #定义了存储类型
  capacity:
    storage: 30Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /share/k8s/test-pgsql/pgsql2
    server: 10.1.60.6

启动pgsql-operator服务

kubectl apply -f api-service.yaml  
kubectl apply -f configmap.yaml 
kubectl apply -f operator-service-account-rbac.yaml  
kubectl apply -f postgres-operator.yaml

因为operator的原因需要配置一个默认的secret

kubectl edit serviceaccount default

apiVersion: v1
imagePullSecrets:       #新增
- name: pgsql-secret   #新增
kind: ServiceAccount
metadata:
  creationTimestamp: "2024-01-25T01:01:12Z"
  name: default
  namespace: default
  resourceVersion: "75328624"
  selfLink: /api/v1/namespaces/default/serviceaccounts/default
  uid: 1b6408a8-80d6-40b5-8020-3d52eff75ec0
secrets:
- name: default-token-zl4vw

部署pgsql集群

kubectl apply -f pv.yaml
kubectl apply -f minimal-postgres-manifest.yaml

至此部署完成

获取pgsql集群的初始密码(用户名为:pgsql)

kubectl get secret postgres.acid-minimal-cluster.credentials.postgresql.acid.zalan.do -o 'jsonpath={.data.password}' | base64 -d

注意:该pgsql初始密码不能变更,因为是保存在了secret中的,可以创建其他用户并设置密码使用

若是需要删除则执行以下命令

kubectl delete postgresql acid-minimal-cluster

更多部署方式参考:https://github.com/zalando/postgres-operator/blob/master/docs/quickstart.md

configmap配置项参数参考:https://github.com/zalando/postgres-operator/blob/master/docs/reference/operator_parameters.md

k8s集群下创建高可用postgresql数据库集群实践 K8s 安装 pg集群服务器 主要的目的是做到自动灾备切换,利用kubernetes 集群做到高可用的数据库服务。 三个节点, 2节点部署 proxy,sentinel,3节点keeper (DB) 本文选着stolon, 详细解决方案,原理请看:项目地址 https://github.com/sorintlab/stolon 总体架构架构 下面是步骤 1. 创建临时目录下载项目 mkdir ... 阅读详情

相关推荐

Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui

Ubuntu16.04多主机集群上手动部署Kubernetes环境,配置Kubernetes-dashboard主要流程: - 部署etcd集群 - 部署K8s Master - 配置flannel服务 - 部署K8s Node - 部署DNS - 部署kubernetes-Dashboard web ui 部署私有docker registry解决google镜像不能使用问题

kingwmk的博客 5146

Kubernetes部署Postgresql

ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。可以将其用作环境变量、命令行参数或者存储卷中的配置文件。Postgresql的Docker镜像 ->参考。pg的docker镜像已经上传到云平台。上的应用程序公开为网络服务的抽象方法。尝试外部访问,测试是否能对外部提供服务。如果资源不存在,就创建,相当于执行。如果资源存在,就修改,相当于执行。资源管理方法见命令式和文件式方法。查看应用对应的service。进入容器,建议用exec。使用apply创建资源,提供声明式的更新能力。

w345731923的专栏 1639

【WiFi软件开发】IOCTL和Netlink----用户空间和内核空间交互的两种方式

linux开发中通常会涉及用户空间和内核模块的交互。本文介绍了两种典型的用户空间和内核模块通信方式:ioctl和netlink

liuwe1ye的博客 2349

【K8S部署postgresql全过程】

解析K8s部署PostgreSQL的关键技术栈,涵盖持久化存储、标签亲和性调度,敏感信息加密

m0_73346222的博客 2219

基于人脸识别的智能门禁系统设计

在当前的技术背景下,本文精心打造了一款前沿的视频识别门禁控制系统。在进行调试的时候使用的软件是Keil,编写完代码,生成文件后用下载器下载到单片机上,就能够进行程序的调试了,本次设计实现了预先设定的目标,达到了预期的效果。本次设计的人脸识别的门禁控制系统其硬件部分是以STM32F103C8T6为核心的单片机,采用0V2640摄像头对人员的人脸识别,采用矩阵按键对系统的操作以及密码的输入,使用蜂鸣器来作为报警模块,开门装置是电子锁控制,显示设备采用OLED液晶显示,无线模块在一番思索后选择了蓝牙模块传输。

2401_86147581的博客 1296

CPG控制网络入门

从线性变换开始推导

妖米的博客 5044

K8S部署postgresql

主要是要注意其中selector的app和metadata中的app名称要一致,另外引入的configmap名称要和前面的configmap一致等等。创建好yaml文件后,通过kubectl创建deployment。replica写1就好,数据库的副本数一般1就够了,避免读写冲突。注意targetPort要和deployment暴露出来的一致,否则无法转发到deployment创建的pod。同样,写好yaml之后通过kubectl apply -f创建service。4. 创建deployment。

小白白的博客 3080

光通量与辐射通量之间的换算

由理论和实验可知存在两种定义: 1W1W1W(瓦特)的频率为540×1012Hz540\times10^{12}Hz540×1012Hz(赫兹)的单色辐射的辐射通量等于683lm(流明)683lm(流明)683lm(流明).。 1lm1lm1lm的频率为540×1012Hz540\times10^{12}Hz540×1012Hz的单色通量等于1683=0.001464W\frac{1}{683}=0.001464W6831​=0.001464W。 从上述定义中我们可以得到什么呢?我们知道光速: c=3×

u011699626的博客 3273

Kubernetes集群安装高可用postgresql

Kubernetes安装高可用postgresql集群

weixin_46660849的博客 8万+

2025年开源气象大模型的实现原理与实践指南

气象大模型在人工智能时代实现了革命性突破,通过深度学习技术以更低的计算成本达到甚至超越传统数值天气预报的精度。开源气象大模型的出现使得全球研究者和机构都能参与气象AI的创新。本文详细解析了开源气象大模型的实现原理,包括核心架构、数据准备、训练方法和实际预测流程,并提供了实践指南。核心架构主要采用Transformer、图神经网络和扩散模型,处理多模态数据融合和时空联合建模。数据体系构建涉及数据来源、预处理和增强策略。模型训练关键技术包括损失函数设计、分布式训练优化和训练过程监控。微调与领域适应策略包括迁移学

专注AI大模型,软件混淆,授权 1181

AutoSAR配置视频讲解:总目录

AutoSAR实验视频讲解:闪烁一颗LED实验【总目录】 欢迎大家来到雪云飞星的《AutoSAR实验视频讲解》,本专栏是一个关于AutoSAR的闪烁LED灯的实验课程,一共8节课,每节课的视频都放在文章最后,传送门如下: 前言 AutoSAR实验视频讲解:简介 EB 的Mcal配置 AutoSAR实验视频讲解:Mcal配置 DaVinci Cfg配置 AutoSAR实验视频讲解:新建DaVinci工程 AutoSAR实验视频讲解:Os配置(预计2021-3-10更新) AutoSAR实验视频讲解:检查校验报

雪云飞星的博客 2万+

K8S stolon for postgresql

K8S里面搭建postgresql集群,有多种方案,这里介绍一下stolon方案,先看下架构图,摘自stolon git https://github.com/sorintlab/stolon 如上图,主要三个部件组成 keeper: 主要作用是管理postgresql数据库实例,并收集相关信息至sentinal。 sentinal: 发现并监控keeper,并配置出最佳集群 proxy:client 接入点,客户端可以连接到对应正确的master,可以在failover的时候强制关闭以前连接在损坏的m

魂醉的一亩二分地 1133

Sigrity System SI Parallel Bus Analysis模式进行DDR3仿真分析操作指导-单个颗粒

Default Strobe Offset:DQS默认偏移时间,自动填充为0.5ns,即DQS默认偏移1/2UI,DQS滞后于DQ 1/2UI,让建立保持时间均分。WLO:写平衡偏移的数值,DataL是0ps,DataU是500ps,是根据WLOSkew自动定义的,可以认为是WLOSkew取整,也可以根据需要手动调整数值。注意AddCmd的UI=T,这里的Data Rate仍然是DQ的速率,并不是地址线的速率,地址线的速率=1/UI=1/2ns=0.5Gbps。

weixin_54787054的博客 366

三、kubernetes部署postgresql高可用集群

kubernetes helm部署postgresql-ha高可用集群

wangweiji的博客 1090

[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341)

[ vulhub漏洞复现篇 ] Drupal XSS漏洞 (CVE-2019-6341) Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,在GPL2.0及更新协议下发布。Drupal在某些情况下,通过文件模块或者子系统上传恶意文件触发XSS漏洞。

qq_51577576的博客 2208

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Kubernetes Operator(以 Patroni + PostgreSQL 为例) 实现跨多云部署的两种典型方式

实现。

喝醉酒的小白 1193

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

k8s部署nacos集群-PG版本

上一篇内容写的是部署支持mysql的nacos,今天实验部署一下支持postgresql的nacos。

你说亮不亮的博客 1084

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

k8s部署springboot项目,zookeeper,redis,pgsl

安装环境 操作系统:centos7 docker:1.13.1 k8s: 1.5.2(单节点) 如果没有安装docker和k8s的参照我前一篇博客安装安装k8s踩的一些坑 部署安装步骤 1、先在docker里面安装redis、pgsql、zookeeper、 1.1 docker search imageName //搜索镜像 选择合适版本然后 1.2 docker pull imag...

逝水流年染轻尘的博客 1526

k8s集群中部署kong网关与konga

kong官方文档中的部署方案因为某种奇葩的原因,不能对helm文件中的镜像拉取,所以我这里对kong的docker镜像部署。 首先要搭建postgresql: 可以选择集群外搭建,也可以集群内搭建。 参考dockerhub上的postgres镜像文档搭建:https://hub.docker.com/_/postgres docker run -d \ --name some-postgres \ -e POSTGRES_PASSWORD=mysecretpassword \

草莓甜甜圈的博客 5599

Kubernetes云原生架构实战:高可用集群与全栈编排

云原生架构通过容器化、微服务和动态编排等核心技术,实现了应用系统的弹性扩展与高效运维。作为核心编排平台的Kubernetes(K8s),采用声明式API和控制器模式,能够自动化管理容器化应用的部署、扩缩容及服务发现。在生产环境中,合理配置高可用集群、优化资源调度策略以及实施完善的监控体系,可显著提升系统的稳定性和性能。特别是在微服务架构下,K8s与Prometheus监控、EFK日志收集等工具的深度集成,为分布式系统提供了端到端的可观测性解决方案。通过StatefulSet管理有状态服务、NetworkPo

weixin_29233333的博客 236

Apache PredictionIO Helm Charts 部署指南:在 Kubernetes 上安装 PredictionIO 与 Spark 集群

PredictionIO 是一套面向开发者和机器学习工程师的机器学习服务器。本指南围绕 [docker/charts/README.md](https://link.gitcode.com/i/6baf87be92d9098c55ca6c397bd68806) 展开,讲解如何使用仓库内自带的 Helm Charts,在 Kubernetes 上完成 PredictionIO 核心服务(Event

gitblog_00498的博客 185

PostgreSQL的集群化和容器化部署

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34178244的博客 5818

Kubernetes pgsql使用本地 Local PV

Node 14-16全部打上污点 Node 14-16全部设置为不可调度 [root@master1 ~]# kubectl cordon node14 node/node14 cordoned [root@master1 ~]# kubectl cordon node15 node/node15 cordoned [root@master1 ~]# kubectl cordon node16 node/node16 cordoned [root@master1 ~]# kubectl get n

小楼一夜听春雨,深巷明朝卖杏花 1268

k8s部署kong(第二版)

我的是基于腾讯云的storageclass存储来做的,当然你也可以直接创建hostpath类型的pv和pvc。

ss810540895的博客 837

hadoop硬件配置 高可用 datanode namenode硬件配置

每个分布式文件系统分块在NameNode的内存中大小约为250个字节, 此外还要加上文件和目录所需的250字节空间。 500字节 一个块 假设我们有5000个平均大小为20GB的文件并且使用默认的分布式文件系统分块大小(64MB)同时副本因子为3, 5000*20GB=102400 000M=97T 那么NameNode需要保存5千万个分块的信息,这些分块的大小加上文件系统的开销总共需要1.5...

xcagy-国际性的文档记录中心 1760

小白都能学会的使用helm在k8s中部署postgreSQL+pgadmin

手把手教你使用helm在k8s集群中部署postgreSQL数据库和pgadmin-dashboard界面。小白也能学会

qq_59665758的博客 829
上一篇: jenkins集成liquibase
下一篇: exsi添加存储报错
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值