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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/73444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Git】Git 基础

Git 基础 参考 Git 中文文档 — https://git-scm.com/book/zh/v2 1.介绍 Git 是目前世界上最先进的分布式版本控制系统,有这么几个特点: 分布式:是用来保存工程源代码历史状态的命令行工具保存点:保存点可以追溯源码中的文件…

解决防火墙导致虚拟机不能ping通宿主机的问题

今天,无缘无故的,虚拟机突然用不了,网络连上不了,一番折腾翻找,最后才发现,是因为虚拟机ping不同宿主主机了,连网关都ping不通了,但是,宿主主机却可以ping通虚拟机 。 最…

文本识别 (OCR)引擎之Tesseract的使用

Tesseract OCR Tesseract概述常见OCR识别平台下载安装配置命令使用语法测试验证 Tesseract的使用安装python库基本使用可能的异常更换语言字体库识别 Tesseract的训练 Tesseract 概述 Tesseract是一个开源文本识别 (OCR)引擎,是目前公认最优秀、最精确的开源OCR系统…

『Bug挖掘机 - 赠书02期』|〖Effective软件测试〗

大家好,我是洋子,前段时间给大家推荐了《测试设计思想》,今天再给大家推荐一本软件测试领域的新书 这本书就比较接地气了,是一本软件测试的入门书籍,但同样适用于1-3年软件测试经验的读者阅读 这本书第一章就用Java代…

深入了解 Axios 的 put 请求:使用技巧与最佳实践

在前端开发中,我们经常需要与后端服务器进行数据交互。其中,PUT 请求是一种常用的方法,用于向服务器发送更新或修改数据的请求。通过发送 PUT 请求,我们可以更新服务器上的资源状态。 Axios 是一个流行的 JavaScript 库&#xff0…

NSV60600MZ4T1G 双极型晶体管(BJT)学习总结

双极型晶体管的起源: 双极型晶体管是在1947年发明的,第一个晶体管是将两条具有尖锐端点的金属线与锗衬底(germanium substrate)形成点接触(point contact),以今天的水准来看,此第一个晶体管虽非常简陋但它却改变了整个电子工业及人类的生活方…

行测图形推理规律(一)元素组成

题库:粉笔网题库 (fenbi.com) 不知道和测评的行测题库是不是一样的,但是总结的规律应该是一样的。 规律并不唯一,题库的答案也只是参考答案,切勿当杠精,你觉得你的规律更合适就别管。本人所归纳的规律仅代表本人想法…

开源知识库平台Raneto

什么是 Raneto ? Raneto 是一个开源知识库平台,它使用静态 Markdown 文件来支持您的知识库。 官方提供了 doc & demo 网站,即是帮助文档,也是个 demo,地址:https://docs.raneto.com 准备 项目使用con…

Android之 Canvas绘制

一 Canvas介绍 1.1 Canvas 是绘制图形的重要类之一,它可以在 View 或 SurfaceView 上绘制各种图形和文本. 1.2 要创建 Canvas,首先需要有一个 View 或 SurfaceView 对象,在 View 或 SurfaceView 的绘制方法中,可以通过 Canvas 的…

华为云云耀云服务器L实例评测|部署spring项目端口开放问题的解决 服务器项目环境搭建MySQL,Redis,Minio...指南

目录 引出书接上回,部署spring项目,端口访问失败最后排查结果反馈 尝试的几种解决方案【未成功】1.指定tomcat启动ipv4端口2.添加开放端口规则保存规则防火墙相关命令记录 最终成功解决【成功!】用firewall成功了问题来了,如果这里…

Linux系统离线安装RabbitMQ

安装rabbitmq 1、下载安装包 首先进入官网进行安装包的下载,在下载时一定要注意erlong版本和rabbitmq-server版本匹配 rabbitmq版本对应关系:传送门 Erlong下载地址:传送门 rabbitmq-server下载地址:传送门 socat 不同版本 centos7:传送门 cent…

OJ练习第166题——课程表(拓扑排序问题)

课程表 力扣链接:207. 课程表 题目描述 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表…

2023数学建模国赛B题完整论文来啦!(含一二问求解代码及三四问仿真模拟代码)

大家好呀,从昨天发布赛题一直到现在,总算完成了全国大学生数学建模竞赛B题完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 说实话团队通宵一直到现在做…

CG MAGIC进行实体渲染后!分析渲染器CR和VR的区别之处!

新手小白来说,如何选择渲染器,都会提出疑问? 渲染效果图究竟用CR渲染器还是VR渲染器呢? 今天,CG MAGIC小编通过一个真实的项目场景,实例渲染之后,CR渲染器和VR渲染器区别有哪几点? 1…

Eviews用向量自回归模型VAR实证分析公路交通通车里程与经济发展GDP协整关系时间序列数据和脉冲响应可视化...

全文下载链接:http://tecdat.cn/?p27784 河源市是国务院1988年1月7日批准设立的地级市,为了深入研究河源市公路交通与经济发展的关系,本文选取了1988-2014年河源市建市以来24年的地区生产总值(GDP)和公路通…

Java jvm 内存溢出分析

1.如何分析jvm内存溢出呢 我们经常用visualVm监控Jvm的内存,cpu,线程的使用情况,通常可以根据内存不断增长来判断内存是否存在不释放。但是我们不可能时时盯着去看,这里涉及jvm堆内存配置,堆内存参数配置和调优会在其…

uniapp中UView中 u-form表单在v-for循环下如何进行表单校验

1、数据data格式 注:rule绑定的tableFromRule中要和表单tableFrom下面放置一个同名数组,确保u-form能找到 tableFrom: {tableData: [//数据详情列表]},tableFromRule: {//校验tableData: [//数据详情列表]},formRules:{localation:[{required: true,mes…

k8s 入门到实战--部署应用到 k8s

k8s 入门到实战 01.png 本文提供视频版: 背景 最近这这段时间更新了一些 k8s 相关的博客和视频,也收到了一些反馈;大概分为这几类: 公司已经经历过服务化改造了,但还未接触过云原生。公司部分应用进行了云原生改造&…

第 2 章 线性表 (线性表的静态单链表存储结构(一个数组只生成一个静态链表)实现)

1. 背景说明 A { c, b, e, g, f, d }B { a, b, n, f } 2. 示例代码 1) status.h /* DataStructure 预定义常量和类型头文件 */#ifndef STATUS_H #define STATUS_H#define CHECK_RET(ret) if (ret ! RET_OK) { \printf("FuncName: %-15s Line: %-5d ErrorCode: %-3d\n&…

Java网络编程( 一 )数据如何在网络上传输

数据如何在网络上传输 网络发展背景发送端和接收端网络协议分层封装 & 分用封装:分用: 传输补充(数据链路层(以太网)):ARP协议 网络发展背景 单机阶段—>局域网阶段—>广域网阶段—&…