* 原始文章地址可能暂时无法访问,仅展示文章的摘要信息
「k8s集群部署postgresql」的摘要信息
实现的功能 我将在k8s中部署具有如下功能的PostgreSQL: k8s集群内部的pod可以通过密码访问PostgreSQL,而在集群外无法访问PostgreSQL。 定时对数据库中特定表中的数据进行备份。 整体结构设计 在k8s中我将创建一个Deployment对象, 其将管理一个Pod对象。 此Pod对象中将仅包含一个名为postgres的容器,来作为postgreSQL的服务器端。 这一容器我们将通过DockerHub上官方的镜像进行创建, 在创建中过程中我们需要通过secret对象导入设置超级用户密码的环境变量, 来使PostgreSQL的初始化顺利进行。 也将通过Persistent Volume对象来将postgres中的数据进行持久化, 即在Pod销毁后仍然存在。 在Deployment顺利创建之后,我们将通过创建service对象来使集群内其他Pod可以顺利与其通信。 我们还需要CronJob对象来进行定时创建命令postgres-backup的Pod来进行备份功能。这个Pod也将仅包含一个容器, 但这个容器需要我们通过Dockerfile自行打包创建。 这个容器将包含一个postgreSQL客户端程序,其中有一个名为pg_dump的命令,我们将通过这一命令来进行备份功能。备份的结果也将通过Persistent Volume进行持久保存。 注意 因为最近dockerHub镜像的全面封禁,所有本篇文章中用到的镜像均被我保存的自行搭建的私人docker仓库中。为了隐私期间我将隐藏docker仓库的ip,并以fs作为仓库名称的代称。 因为dockerHub镜像的禁用,在创建Deployment后, k8s将无法拉取rancher/mirrored-pause导致Pod创建失败。 我的解决方法是在本地主机通过proxy在dockerHub中pull相应的镜像后通过...