测试开发技术网站
博客
设计
设计
开发
Python
测试
unittest
运维
Linux基础应用
CI/CD
CI/CD
数据库
数据库
云计算
云计算
云原生
云原生
爬虫
爬虫
数据分析
数据分析
人工智能
人工智能
登录
注册
PostgresSQL----基于Kubernetes部署PostgresSQL
收藏本文
作者:redrose2100 类别: 日期:2023-09-08 17:34:57 阅读:485 次 消耗积分:0 分
[【PostgresSQL----基于Kubernetes部署PostgresSQL】](http://devops-dev.com/article/666) [TOC] ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/f37d7510-4e2a-11ee-ba34-0242ac110004.png) # 一、创建SC、PV和PVC存储对象 ## 1.1 准备一个nfs服务器 若无nfs服务器,可参考 [NFS----搭建NFS服务器](http://devops-dev.com/article/286) 部署一个 ## 1.2 编写SC、PV、PVC等存储资源文件 如下资源文件包含SC、PV、PVC资源的声明,主要修改以下几个位置 * 命名空间 命名空间需要修改为自己的namespace,一下配置中共有三处需要修改 * nfs服务器ip地址 设置nfs服务器ip地址即可 * nfs 服务器供挂载目录 设置将存储目录挂载nfs服务器上的目录路径 * 存储空间大小 存储空间大小根据实际需求设置,注意PV和PVC中存储空间大小要保持一致。 ```yaml kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: sc-postgres namespace: my-namespacce # 命名空间 provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer --- apiVersion: v1 kind: PersistentVolume metadata: name: pv-postgres namespace: my-namespacce # 命名空间 labels: pv: pv-postgres spec: capacity: storage: 5Gi # 存储空间大小 accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: sc-postgres nfs: path: /path/to/nfs/server/ # nfs 服务器供挂载目录 server: nfs-server-ip # nfs 服务器ip地址 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-postgres namespace: my-namespacce # 命名空间 labels: pvc: pvc-postgres spec: storageClassName: sc-postgres accessModes: - ReadWriteOnce resources: 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等配置文件名称等统一。 ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: postgres namespace: my-namespace # 命名空间 spec: replicas: 1 selector: matchLabels: app: postgres template: metadata: labels: app: postgres spec: containers: - name: postgres image: postgres:latest env: - name: POSTGRES_USER value: postgres # 用户名 - name: POSTGRES_PASSWORD value: postgres # 密码 - name: POSTGRES_DB value: postgres # 数据库名 - name: TZ value: Asia/Shanghai - name: POSTGRES_MAX_CONNECTIONS value: "20000" # 最大连接数 ports: - containerPort: 5432 volumeMounts: - name: postgres-storage mountPath: /var/lib/postgresql/data volumes: - name: postgres-storage persistentVolumeClaim: claimName: pvc-postgres --- apiVersion: v1 kind: Service metadata: name: postgres namespace: my-namespace # 命名空间 spec: selector: app: postgres ports: - port: 5432 protocol: TCP targetPort: 5432 nodePort: 30101 # 对外开放端口 type: NodePort ``` 将修改后的配置文件保存为 postgres.yaml 文件 # 二、部署PostgresSQL ## 2.1 部署 PV、PVC等存储对象 执行如下命令即可 ```bash kubectl apply -f postgres_pvc_pv_sc.yaml ``` ## 2.2 部署PostgresSQL数据库 执行如下命令即可 ```bash kubectl apply -f postgres.yaml ``` ## 2.3 查看是否创建成功 执行如下命令,将my-namespace换成自己的命名空间,如果查看到pod状态已经running了,表示部署成功 ```bash kubectl get pod -n my-namespace ```
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/666
上一篇:
系统架构设计师(第二版)学习笔记----嵌入式系统及软件
下一篇:
系统架构设计师(第二版)学习笔记----计算机网络
搜索
个人成就
出版书籍
《Pytest企业级应用实战》
测试开发技术全栈公众号
测试开发技术全栈公众号
DevOps技术交流微信群
加微信邀请进群
常用网站链接
开源软件洞察
云原生技术栈全景图
Python语言官方文档
Golang官方文档
Docker官方文档
Jenkins中文用户手册
Scrapy官方文档
VUE官方文档
Harbor官方文档
openQA官方文档
云原生开源社区
开源中国
Kubernetes中文文档
Markdown语法官方教程
Kubernetes中文社区
Kubersphere官方文档
BootStrap中文网站
JavaScript中文网
NumPy官方文档
Pandas官方文档
GitLink确实开源网站
数据库排名网站
编程语言排名网站
SEO综合查询网站
数学加减法练习自动生成网站
Kickstart Generator
文章分类
最新文章
最多阅读
特别推荐
×
Close
登录
注册
找回密码
登录邮箱:
登录密码:
图片验证码:
注册邮箱:
注册密码:
邮箱验证码:
发送邮件
注册邮箱:
新的密码:
邮箱验证码:
发送邮件