jk's notes
  • ch03 现代方法

ch03 现代方法

简介

前面已经介绍两种安装方法, 这两种方法也是主流方法. 除此之外, 还有其他方法.

现代技术与新平台部署应用程序使得安装 PostgreSQL 更为容易.

结构

本章会演示部署应用程序, 并演示如何在容器中, Kubernetes 中, 以及 DBaaS/CLoud 中获取 PostgreSQL.

本章主题:

  • 其他方式获取 PostgreSQL.
  • 在现代系统中获得 PostgreSQL.

目标

你会学到开发与架构配置的有效方法. 同时会介绍一些有别于标准安装的方法. 最后, 你会熟悉在 market 中使用的新方法. 并可以考虑如何规划你自己的 PostgreSQL.

获取 PostgreSQL 的其他方法

如今, 技术从 old school 的 style 中走出来, 很多需要繁杂协同的应用都可以用几句简单的代码完成部署.

预制, 虚拟化, 容器和云

就是说技术发展很快, 有很多灵活, 多样的方式不断被创造出来. 为了描述, 可以考虑一个场景:

  • 一个运行在 web 服务器上的 页面
  • 一个文件服务器, 支持图片等多文件存储
  • 一个运行在背后的数据库层

预制

虚拟化

容器

云

略

在现带系统中获取 PostgreSQL

至此, 已经了解到"传统"获取 PostgreSQL 的方法. 从源文件安装, 或二进制安装.

而现代方法可以在 Docker/Kubernetes, 或云中来获得 PostgreSQL.

PostgreSQL on Docker

简要介绍了一下 Docker 和 镜像, 以及其优势. 然后介绍了一下 Docker Hub.

安装最新的 PostgreSQL, 可以执行命令:

docker pull postgres

image-20240626000144666

要运行镜像, 可以运行:

docker run --name my-postgres \
	-e POSTGRES_PASSWORD=密码 \
	-d postgres

然后可以使用 docker ps 查看运行的容器.

要连接到容器中, 可以使用:

docker exec -it my-postgres \
	psql -h localhost -U postgres postgres

连接的结果为

Figure_3.6

参考链接:

  • DockerHub
  • GitHub

PostgreSQL on Kubernetes

k8s 内容太多, 这里值关注如何获得. k8s 中的容器被称为 Pod, k8s 是容器编排器.

要在 k8s 集群中部署 PostgreSQL, 首先你需要现有集群. 这超出本书范围, 但是建议你可以通过 minikube 工具来了解.

在获得 k8s 集群, 以及 k8s 命令行工具 kubectl 后, 你可以使用下面步骤来创建需要的部署资源集合:

  1. 配置映射. 以键值对的形式存储数据, 如详情, 用户, 密码, 数据库名等.
  2. PV 和 PVC. 用于数据文件的存储. 即使 pod 被删除, 使用它也能恢复数据.
  3. 部署 PostgreSQL. 创建运行数据库的 pod, 并使用 PV 和 PVC.
  4. 提供 PostgreSQL 服务. 来对外提供 PostgreSQL 功能.

所有的 k8s 配置都是通过 YAML 文件来实现的. 对前面每一个步骤都需要不同的 YAML 文件.

其余略. 这里需要找个环境将 k8s 搭建起来.

Last Updated:
Contributors: jk