相比于 MySQL 我更喜欢性能更好、使用更方便并且插件生态更丰富的 Postgres!本文主要分享了一个可以学习并部署高可用Postgres的网站 CrunchyData;
社区地址:
网站:
分享一个可以学习并部署高可用Postgres的网站CrunchyData
下面是可以在线通过实践学习 Postgres 的网站:
以及 Postgres Tips & Tricks:
相比于其他在线实践在后台启动一个 Pod 实例来实现在线操作不同:
CrunchyData 并不会在后台启动数据库实例,而是使用 WASM 的方式,直接将一个 Postgres 数据库跑在你的浏览器中!
这也意味着如果你刷新页面,数据都将会丢失;
感兴趣的可以看下面这篇博文,里面有更详细的介绍:
同时,正如 CrunchyData 在 Github Organization 中介绍的那样,他们提供了在 k8s 中部署高可用 Postgres 集群的解决方案;
可以直接跟这下面的这个官方文档直接安装:
反正我是一次性就装好了的,issue-free~ 很赞!
装好之后,数据库的账号、密码等配置,就在 kubectl get secrets -n postgres-operator
中了!
可以查看:
PG_CLUSTER_USER_SECRET_NAME=hippo-pguser-hippo
PGPASSWORD=$(kubectl get secrets -n postgres-operator "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.password | base64decode}}') \
PGUSER=$(kubectl get secrets -n postgres-operator "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.user | base64decode}}') \
PGDATABASE=$(kubectl get secrets -n postgres-operator "${PG_CLUSTER_USER_SECRET_NAME}" -o go-template='{{.data.dbname | base64decode}}')
$ echo ${PGUSER} ${PGPASSWORD}
hippo xxxxxxxx
对于远程访问,可以采用 Port-Forward 的方式:
PG_CLUSTER_PRIMARY_POD=$(kubectl get pod -n postgres-operator -o name \
-l postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/role=master)
kubectl -n postgres-operator port-forward "${PG_CLUSTER_PRIMARY_POD}" 25432:5432
然后通过上面的账号密码,连接服务器上的 25432 端口;
这一点官方文档写的也非常清楚了;
后记
可以在线实践的学习各种技术是一件非常爽的事情(相比于干巴巴的文章而言);
例如:各种编程语言 Rust、Go 都自带了 PlayGround,k8s、ClickHouse 也有在线体验、教程;
并且随着 WASM 技术的发展,这种在线体验式的教程可能会越来越多!
最后,近期我也会跟着这个教程来对 Postgres 做一些总结,大家可以期待一下~
附录
社区地址:
网站: