当前位置: 首页 > news >正文

PostgresSQL----基于Kubernetes部署PostgresSQL

【PostgresSQL----基于Kubernetes部署PostgresSQL】

文章目录

  • 一、创建SC、PV和PVC存储对象
    • 1.1 准备一个nfs服务器
    • 1.2 编写SC、PV、PVC等存储资源文件
    • 1.3 编写部署PostgresSQL数据库的资源声明文件
  • 二、部署PostgresSQL
    • 2.1 部署 PV、PVC等存储对象
    • 2.2 部署PostgresSQL数据库
    • 2.3 查看是否创建成功

一、创建SC、PV和PVC存储对象

1.1 准备一个nfs服务器

若无nfs服务器,可参考 NFS----搭建NFS服务器 部署一个

1.2 编写SC、PV、PVC等存储资源文件

如下资源文件包含SC、PV、PVC资源的声明,主要修改以下几个位置

  • 命名空间
    命名空间需要修改为自己的namespace,一下配置中共有三处需要修改
  • nfs服务器ip地址
    设置nfs服务器ip地址即可
  • nfs 服务器供挂载目录
    设置将存储目录挂载nfs服务器上的目录路径
  • 存储空间大小
    存储空间大小根据实际需求设置,注意PV和PVC中存储空间大小要保持一致。
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: sc-postgresnamespace: my-namespacce                             # 命名空间
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:name:  pv-postgresnamespace: my-namespacce                             # 命名空间labels:pv: pv-postgres
spec:capacity:storage: 5Gi                                       # 存储空间大小accessModes:- ReadWriteOncepersistentVolumeReclaimPolicy: RetainstorageClassName: sc-postgresnfs:path: /path/to/nfs/server/                         # nfs 服务器供挂载目录server: nfs-server-ip                              # nfs 服务器ip地址
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: pvc-postgresnamespace: my-namespacce                             # 命名空间labels:pvc: pvc-postgres
spec:storageClassName: sc-postgresaccessModes:- ReadWriteOnceresources:requests:storage: 5Gi                                     # 存储空间大小selector:matchLabels:pv: pv-postgres

将修改后的配置文件,比如命名为:postgres_pvc_pv_sc.yaml

1.3 编写部署PostgresSQL数据库的资源声明文件

编写部署资源文件如下所示,包含deployment和service的声明,主要需要修改以下几个位置:

  • 命名空间
    命名空间需要统一修改为与上面部署PV和PVC一致的命名空间
  • 数据库配置
    配置数据库的用户名密码以及数据库名称,此外还需要设置最大连接数,默认的连接数为100,在实际应用中无法很难满足需求,因此这里最好在部署的时候直接设置
  • 对外开放端口
    对外开放端口用于外部访问的,在测试环境中通常是需要的,在生产环境中考虑安全性通常不需要的,这里按照测试环境的使用方式部署,即使用NodePort类型的Service,设置对外开发的端口即可

其他配置均无需修改,如修改,则需要和上面PV以及PVC等配置文件名称等统一。

apiVersion: apps/v1
kind: Deployment
metadata:name: postgresnamespace: my-namespace                                 # 命名空间
spec:replicas: 1selector:matchLabels:app: postgrestemplate:metadata:labels:app: postgresspec:containers:- name: postgresimage: postgres:latestenv:- name: POSTGRES_USERvalue: postgres                             # 用户名- name: POSTGRES_PASSWORDvalue: postgres                             # 密码- name: POSTGRES_DBvalue: postgres                             # 数据库名- name: TZvalue: Asia/Shanghai- name: POSTGRES_MAX_CONNECTIONSvalue: "20000"                              # 最大连接数ports:- containerPort: 5432volumeMounts:- name: postgres-storagemountPath: /var/lib/postgresql/datavolumes:- name: postgres-storagepersistentVolumeClaim:claimName: pvc-postgres---
apiVersion: v1
kind: Service
metadata:name: postgresnamespace: my-namespace                                 # 命名空间
spec:selector:app: postgresports:- port: 5432protocol: TCPtargetPort: 5432nodePort: 30101                                      # 对外开放端口type: NodePort

将修改后的配置文件保存为 postgres.yaml 文件

二、部署PostgresSQL

2.1 部署 PV、PVC等存储对象

执行如下命令即可

kubectl apply -f postgres_pvc_pv_sc.yaml

2.2 部署PostgresSQL数据库

执行如下命令即可

kubectl apply -f postgres.yaml

2.3 查看是否创建成功

执行如下命令,将my-namespace换成自己的命名空间,如果查看到pod状态已经running了,表示部署成功

kubectl get pod -n my-namespace

相关文章:

PostgresSQL----基于Kubernetes部署PostgresSQL

【PostgresSQL----基于Kubernetes部署PostgresSQL】 文章目录 一、创建SC、PV和PVC存储对象1.1 准备一个nfs服务器1.2 编写SC、PV、PVC等存储资源文件1.3 编写部署PostgresSQL数据库的资源声明文件 二、部署PostgresSQL2.1 部署 PV、PVC等存储对象2.2 部署PostgresSQL数据库2.3…...

7 个适合初学者的项目,可帮助您开始使用 ChatGPT

推荐:使用 NSDT场景编辑器快速搭建3D应用场景 从自动化日常任务到预测复杂模式,人工智能正在重塑行业并重新定义可能性。 当我们站在这场人工智能革命中时,我们必须了解它的潜力并将其整合到我们的日常工作流程中。 然而。。。我知道开始使…...

JDBC操作SQLite的工具类

直接调用无需拼装sql 注入依赖 <dependency><groupId>org.xerial</groupId><artifactId>sqlite-jdbc</artifactId><version>3.43.0.0</version></dependency>工具类 import org.sqlite.SQLiteConnection;/*** Author cpf* Dat…...

SEO百度优化基础知识全解析(了解百度SEO标签作用)

百度SEO优化的作用介绍&#xff1a; 百度SEO优化是指通过对网站的内部结构、外部链接、内容质量、用户体验等方面进行优化&#xff0c;提升网站在百度搜索结果中的排名&#xff0c;从而提高网站的曝光率和流量。通过百度SEO优化&#xff0c;可以让更多的潜在用户找到你的网站&…...

用python实现基本数据结构【03/4】

说明 如果需要用到这些知识却没有掌握&#xff0c;则会让人感到沮丧&#xff0c;也可能导致面试被拒。无论是花几天时间“突击”&#xff0c;还是利用零碎的时间持续学习&#xff0c;在数据结构上下点功夫都是值得的。那么Python 中有哪些数据结构呢&#xff1f;列表、字典、集…...

软件测试面试题汇总

测试技术面试题 软件测试面试时一份好简历的重要性 1、什么是兼容性测试&#xff1f;兼容性测试侧重哪些方面&#xff1f; 5 2、我现在有个程序&#xff0c;发现在Windows上运行得很慢&#xff0c;怎么判别是程序存在问题还是软硬件系统存在问题&#xff1f; 5 3、测试的策略…...

AP5101C 高压线性恒流IC 宽电压6-100V LED汽车大灯照明 台灯LED矿灯 指示灯电源驱动

产品描述 AP5101C 是一款高压线性 LED 恒流芯片 &#xff0c; 外围简单 、 内置功率管 &#xff0c; 适用于6- 100V 输入的高精度降压 LED 恒流驱动芯片。电流2.0A。AP5101C 可实现内置MOS 做 2.0A,外置 MOS 可做 3.0A 的。AP5101C 内置温度保护功能 &#xff0c;温度保护点为…...

【大数问题】字符串相减(大数相减)<模拟>

类似 【力扣】415. 字符串相加&#xff08;大数相加&#xff09;&#xff0c;实现大数相减。 题解 模拟相减的过程&#xff0c;先一直使大数减小数&#xff0c;记录借位&#xff0c;最后再判断是否加负号。&#xff08;中间需要删除前导0&#xff0c;例如10001-1000000001&am…...

easycode生成代码模板配置

实体&#xff1a; ##引入宏定义 $!define##使用宏定义设置回调&#xff08;保存位置与文件后缀&#xff09;$!autoImport import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; i…...

【数据结构】堆排序和Top-k问题

【数据结构】堆 堆排序 如果只是将待排数组建立一个大堆或者小堆是无法得到一个升序或者降序的数组&#xff0c;因为对与一个堆&#xff0c;我们没法知道同一层的大小关系。 但是&#xff0c;如果建立了一个大堆&#xff0c;那么堆顶元素一定是这个数组中最大的&#xff0c;…...

经典的生产者和消费者模型问题

典型的生产者-消费者问题,可以使用 Java 中的 java.util.concurrent 包提供的 BlockingQueue 来实现。BlockingQueue 是一个线程安全的队列,它可以处理这种生产者-消费者的场景。以下是一个示例代码: import java.util.concurrent.ArrayBlockingQueue; import java.util.co…...

Java基础:代理

这里写目录标题 什么是代理1.静态代理&#xff08;委托类、代理类&#xff09;&#xff1a;使用步骤&#xff1a;示例优缺点 2.动态代理&#xff08;委托类、中介类&#xff09;2.1 JDK动态代理使用&#xff1a;中介类&#xff1a;示例1&#xff1a;示例2&#xff1a; 2.2 CGLi…...

每日一学——防火墙2

防火墙是一种网络安全设备&#xff0c;用于保护计算机网络免受未经授权的访问、攻击和恶意行为的影响。以下是一些防火墙的基本概念&#xff1a; 防火墙规则&#xff1a;防火墙会根据预先设置的规则来决定允许或拒绝特定的网络流量。这些规则可以指定源 IP 地址、目标 IP 地址、…...

Web学习笔记-React(组合Components)

笔记内容转载自 AcWing 的 Web 应用课讲义&#xff0c;课程链接&#xff1a;AcWing Web 应用课。 CONTENTS 1. 创建父组件2. 从上往下传递数据3. 传递子节点4. 从下往上调用函数5. 兄弟组件间传递消息6. 无状态函数组件7. 组件的生命周期 本节内容是组件与组件之间的组合&#…...

【strstr函数的介绍和模拟实现——超详细版】

strstr函数的介绍和模拟实现 strstr函数的介绍 资源来源于cplusplus网站 strstr函数声明&#xff1a; char *strstr( const char *str1, const char *str2 ); 它的作用其实就是&#xff1a; 在字符串str1中查找是否含有字符串str2&#xff0c;如果存在&#xff0c;返回str2在…...

【Terraform】Terraform自动创建云服务器脚本

Terraform 是由 HashiCorp 创建的开源“基础架构即代码”工具 &#xff08;IaC&#xff09; 使用HCL&#xff08;配置语言&#xff09;描述云平台基础设施&#xff08;这里教你使用低级基础设施&#xff1a;交换机、云服务器、VPC、带宽&#xff09; Terraform提供者&#xf…...

TCP机制之确认应答及超时重传

TCP因为其可靠传输的特性被广泛使用,这篇博客将详细介绍一下TCP协议是如何保证它的可靠性的呢?这得主要依赖于其确认应答及超时重传机制,同时三次握手四次挥手也起到了少部分不作用,但是主要还是由确认应答和超时重传来决定的;注意:这里的可靠传输并不是说100%能把数据发送给接…...

Openharmony3.2 源码编译(ubuntu 22.04) 过程记录

OS: ubuntu 22.04 x64 1. 下载源码 1.1 安装码云repo工具 sudo apt install python3-pip git-lfsmkdir ~/bin curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo chmod ax ~/bin/repo pip3 install -i https://repo.huaweicloud.com/repository/p…...

PostgreSQL 数据库使用 psql 导入 SQL

最近我们有一个 SQL 需要导入到 PostgreSQL &#xff0c;但数据格式使用的是用&#xff1a; -- -- TOC entry 7877 (class 0 OID 21961) -- Dependencies: 904 -- Data for Name: upload_references; Type: TABLE DATA; Schema: public; Owner: - --COPY public.upload_refere…...

容器编排学习(三)端口映射与Harber镜像仓库介绍

一 对外发布服务&#xff08;端口映射&#xff09; 1 概述 新创建容器的IP 地址是随机的 容器在重启后每次 IP 都会发生变化 容器服务只有宿主机才能访问 如何才能使用容器对外提供稳定的服务? 容器端口可以与宿主机的端口进行映射绑定 从而把宿主机变成对应的服务&a…...

基于agent-foundry框架构建智能体:从核心原理到天气助手实战

1. 项目概述&#xff1a;从零构建你的智能体开发框架最近在GitHub上看到一个挺有意思的项目&#xff0c;叫hebertzhu/agent-foundry。乍一看名字&#xff0c;你可能会觉得这又是一个跟风大语言模型热潮的“又一个Agent框架”。但当我真正深入去研究它的代码结构、设计理念和实际…...

【Instagram内容工业化生产】:ChatGPT + Canva + Notion三件套实战手册(含私有化部署Prompt库下载权限)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Instagram内容工业化生产的底层逻辑与范式迁移 Instagram内容工业化生产已从个体化、灵感驱动的创作模式&#xff0c;转向数据闭环、模块化协同与AI增强的系统工程。其底层逻辑根植于三重耦合&#xff…...

资深运维的Helm Chart私藏库:高质量K8s应用部署实战指南

1. 项目概述&#xff1a;一个资深运维的Helm Chart私藏库如果你和我一样&#xff0c;长期在Kubernetes&#xff08;K8s&#xff09;的“牧场”里当“牛仔”&#xff08;Sysop&#xff09;&#xff0c;那你肯定明白&#xff0c;找到一个质量上乘、维护及时、配置合理的Helm Char…...

2026中小企业OA软件排行榜TOP10(精简版)

2026年&#xff0c;中小企业数字化转型进入深水区&#xff0c;OA软件作为办公协同核心工具&#xff0c;是企业提升效率、规范流程、降本增效的关键支撑。随着SaaS模式普及、AI技术深度应用及信创政策落地&#xff0c;OA市场呈现“头部生态下沉、专业工具崛起、性价比为王”的格…...

3分钟完成Windows和Office永久激活:KMS智能激活脚本终极指南

3分钟完成Windows和Office永久激活&#xff1a;KMS智能激活脚本终极指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活烦恼吗&#xff1f;Office突然变成只读模式让你工…...

5个维度深度解析:如何实现高性能黑苹果系统的架构设计与优化策略

5个维度深度解析&#xff1a;如何实现高性能黑苹果系统的架构设计与优化策略 【免费下载链接】Hackintosh 国光的黑苹果安装教程&#xff1a;手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 在传统PC硬件与macOS系统兼容性的技术挑战…...

告别底噪与失真:手把手教你用STM32 I2C驱动WM8988音频Codec(附完整寄存器配置代码)

嵌入式音频开发实战&#xff1a;WM8988音质优化全攻略 在嵌入式音频系统开发中&#xff0c;WM8988作为一款高性能低功耗的音频编解码芯片&#xff0c;因其出色的音质表现和灵活的配置选项&#xff0c;成为众多开发者的首选。然而&#xff0c;很多工程师在完成基础驱动后&#x…...

告别网盘限速烦恼!九大平台直链下载助手让你的文件下载飞起来

告别网盘限速烦恼&#xff01;九大平台直链下载助手让你的文件下载飞起来 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

告别按钮!用Qt实现STM32小车的键盘与手柄控制方案(附串口通信源码)

超越按钮控制&#xff1a;Qt框架下STM32小车的键盘与手柄交互方案 在嵌入式开发领域&#xff0c;人机交互体验往往被忽视&#xff0c;而实际上它直接影响着用户的操作效率和舒适度。对于STM32遥控小车这类需要实时操控的项目&#xff0c;传统的按钮点击方式存在明显局限——操作…...

Windows运行Android应用终极指南:APK Installer让你的电脑秒变安卓手机

Windows运行Android应用终极指南&#xff1a;APK Installer让你的电脑秒变安卓手机 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在移动应用生态日益丰富的今天&…...