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
要运行镜像, 可以运行:
docker run --name my-postgres \
-e POSTGRES_PASSWORD=密码 \
-d postgres
然后可以使用 docker ps
查看运行的容器.
要连接到容器中, 可以使用:
docker exec -it my-postgres \
psql -h localhost -U postgres postgres
连接的结果为
参考链接:
PostgreSQL on Kubernetes
k8s 内容太多, 这里值关注如何获得. k8s 中的容器被称为 Pod, k8s 是容器编排器.
要在 k8s 集群中部署 PostgreSQL, 首先你需要现有集群. 这超出本书范围, 但是建议你可以通过 minikube
工具来了解.
在获得 k8s 集群, 以及 k8s 命令行工具 kubectl
后, 你可以使用下面步骤来创建需要的部署资源集合:
- 配置映射. 以键值对的形式存储数据, 如详情, 用户, 密码, 数据库名等.
- PV 和 PVC. 用于数据文件的存储. 即使 pod 被删除, 使用它也能恢复数据.
- 部署 PostgreSQL. 创建运行数据库的 pod, 并使用 PV 和 PVC.
- 提供 PostgreSQL 服务. 来对外提供 PostgreSQL 功能.
所有的 k8s 配置都是通过 YAML 文件来实现的. 对前面每一个步骤都需要不同的 YAML 文件.
其余略. 这里需要找个环境将 k8s 搭建起来.