怎样在Kubernetes上运行PostgreSQL

运维 系统运维 其他数据库 PostgreSQL
对于 Kubernetes,使用 Operator 允许你提供额外的上下文去管理有状态应用。当使用像PostgreSQL 这样开源的数据库去执行包括配置、扩展、高可用和用户管理时,Operator 也很有帮助。让我们来探索如何在 Kubernetes 上启动并运行 PostgreSQL。

[[263265]]

创建统一管理的,具备灵活性的云原生生产部署来部署一个个性化的数据库即服务(DBaaS)。

通过在 Kubernetes 上运行 PostgreSQL 数据库,你能创建统一管理的,具备灵活性的云原生生产部署应用来部署一个个性化的数据库即服务为你的特定需求进行量身定制。

对于 Kubernetes,使用 Operator 允许你提供额外的上下文去管理有状态应用。当使用像PostgreSQL 这样开源的数据库去执行包括配置、扩展、高可用和用户管理时,Operator 也很有帮助。

让我们来探索如何在 Kubernetes 上启动并运行 PostgreSQL。

安装 PostgreSQL Operator

将 PostgreSQL 和 Kubernetes 结合使用的***步是安装一个 Operator。在针对 Linux 系统的Crunchy 的快速启动脚本的帮助下,你可以在任意基于 Kubernetes 的环境下启动和运行开源的Crunchy PostgreSQL Operator

快速启动脚本有一些必要前提:

  • Wget 工具已安装。
  • kubectl 工具已安装。
  • 在你的 Kubernetes 中已经定义了一个 StorageClass
  • 拥有集群权限的可访问 Kubernetes 的用户账号,以安装 Operator 的 RBAC 规则。
  • 一个 PostgreSQL Operator 的 命名空间

执行这个脚本将提供给你一个默认的 PostgreSQL Operator 部署,其默认假设你采用 动态存储和一个名为 standard 的 StorageClass。这个脚本允许用户采用自定义的值去覆盖这些默认值。

通过下列命令,你能下载这个快速启动脚本并把它的权限设置为可执行:

  1. wget <https://raw.githubusercontent.com/CrunchyData/postgres-operator/master/examples/quickstart.sh>
  2. chmod +x ./quickstart.sh

然后你运行快速启动脚本:

  1. ./examples/quickstart.sh

在脚本提示你相关的 Kubernetes 集群基本信息后,它将执行下列操作:

  • 下载 Operator 配置文件
  • $HOME/.pgouser 这个文件设置为默认设置
  • 以 Kubernetes Deployment 部署 Operator
  • 设置你的 .bashrc 文件包含 Operator 环境变量
  • 设置你的 $HOME/.bash_completion 文件为 pgo bash_completion 文件

在快速启动脚本的执行期间,你将会被提示在你的 Kubernetes 集群设置 RBAC 规则。在另一个终端,执行快速启动命令所提示你的命令。

一旦这个脚本执行完成,你将会得到提示设置一个端口以转发到 PostgreSQL Operator pod。在另一个终端,执行这个端口转发操作;这将允许你开始对 PostgreSQL Operator 执行命令!尝试输入下列命令创建集群:

  1. pgo create cluster mynewcluster

你能输入下列命令测试你的集群运行状况:

  1. pgo test mynewcluster

现在,你能在 Kubernetes 环境下管理你的 PostgreSQL 数据库了!你可以在官方文档找到非常全面的命令,包括扩容,高可用,备份等等。

这篇文章部分参考了该作者为 Crunchy 博客而写的在 Kubernetes 上开始运行 PostgreSQL。 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2023-01-26 11:56:31

Kubernete虚拟机k3s

2019-06-03 09:15:15

KubernetesKafka数据库

2022-03-24 14:11:25

KubernetesCitusPostgreSQL

2022-02-28 18:26:13

KubernetePostgreSQL负载均衡

2016-07-29 15:49:58

DockerKubernetesMongoDB

2021-08-09 09:00:00

Kubernetes云计算架构

2022-12-29 14:25:22

2015-10-14 10:02:33

ClojureScri Android

2019-04-28 10:00:11

UbuntuLinuxMySQL

2020-07-20 18:30:44

Fedora 32DockerLinux

2011-03-25 11:21:36

NagiosLinux

2010-05-21 15:23:25

ipadSAP

2010-10-09 08:58:03

NginxRuby on Rai

2009-10-10 17:02:55

2019-07-12 14:41:31

微服务Kubernetes容器

2020-11-26 18:30:33

机器学习Kubernetes开发

2010-11-18 14:47:49

2020-06-11 14:33:10

MacBookLinux软件

2015-12-22 10:52:36

UbuntuPostgreSQLphpPgAdmin
点赞
收藏

51CTO技术栈公众号