当前位置: 首页 > 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
http://www.lryc.cn/news/161293.html

相关文章:

  • 7 个适合初学者的项目,可帮助您开始使用 ChatGPT
  • JDBC操作SQLite的工具类
  • SEO百度优化基础知识全解析(了解百度SEO标签作用)
  • 用python实现基本数据结构【03/4】
  • 软件测试面试题汇总
  • AP5101C 高压线性恒流IC 宽电压6-100V LED汽车大灯照明 台灯LED矿灯 指示灯电源驱动
  • 【大数问题】字符串相减(大数相减)<模拟>
  • easycode生成代码模板配置
  • 【数据结构】堆排序和Top-k问题
  • 经典的生产者和消费者模型问题
  • Java基础:代理
  • 每日一学——防火墙2
  • Web学习笔记-React(组合Components)
  • 【strstr函数的介绍和模拟实现——超详细版】
  • 【Terraform】Terraform自动创建云服务器脚本
  • TCP机制之确认应答及超时重传
  • Openharmony3.2 源码编译(ubuntu 22.04) 过程记录
  • PostgreSQL 数据库使用 psql 导入 SQL
  • 容器编排学习(三)端口映射与Harber镜像仓库介绍
  • Day_13 > 指针进阶(2)
  • 对Transformer中的Attention(注意力机制)的一点点探索
  • 车内信息安全技术-安全技术栈-软件安全
  • Redis常见命令
  • Android Studio实现一笔画完小游戏
  • 【Python 程序设计】数据人员入门【02/8】
  • 学习笔记——树上哈希
  • Opencv快速入门教程,Python计算机视觉基础
  • laravel 报错误信息 Carbon\Exceptions\InvalidFormatException
  • UI自动化之混合框架
  • SQL创建用户-非DM8.2环境(达梦数据库)