关注分享主机优惠活动
国内外VPS云服务器

Kubernetes状态集讲解及基于postgreSQL的具体示例

摘要:此版本中引入了一个新概念,用于管理有状态应用程序。 使用已创建视图的详细信息自动创建它。 使用以下命令登录到提供的服务器: 当我们看到这一点时,就意味着我们已经建立了联系。

有状态集是 Kubernetes 1.9 版本中引入的新概念,用于管理有状态应用程序。

Kubernetes 官方文档:

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

管理 Kubernetes 部署和扩展我会。

与 Deployment 一样,StatefulSet 基于相同的容器规范来管理 Pod。 与 Deployment 不同,StatefulSet 为每个 Pod 维护一个粘性 ID。 尽管这些吊舱采用相同的规格制成,但它们不可互换。 每个 Pod 都有一个持久标识符,该标识符在重新安排后仍然存在。

StatefulSet 由以下部分组成:

1. 用于定义网络标志(DNS 域)的无头服务

2. 用于创建持久性。entVolume的volumeClaimTemplates

3.为特定应用定义StatefulSet

以下是实际应用中StatefulSet的yaml文件。

-[ k4]-apiVersion:apps/v1kind:StatefulSetmetadata:名称:ads-db-statefulsetlabels:组件:adsmodule:dbspec:serviceName:ads-db[ k4]servicereplicas:1selector:matchLabels:组件:adsmodule:dbtemplate:元数据:标签:组件:adsmodule:dbspec:卷:-名称:initsecret:secretName:ads-db-secretitems:-密钥: initdb.sqlpath:initdb.sqlcontainers:- 名称:ads-db-podimage:postgres:9.6 端口:- 容器端口:5432 名称:ads-db-portvolumeMounts:-名称:ads-db-volumemountPath:/var/lib/postgresql/data/- 名称:initmountPath:/docker-entrypoint-initdb.d/env:- 名称:PGDATAvalueFrom: configMapKeyRef:名称:ads-db-configmapkey: pgdata_value- 名称: POSTGRES_PASSWORDvalueFrom:secretKeyRef:name:ads-db-secretkey:postgres_password_valuevolumeClaimTemplates:- 元数据:name:ads-db-volumelabels:组件:adsmodule:dbspec: accessModes : [ "ReadWriteOnce" ]resources:requests:storage: 1Gi

使用 kubectl get statefulset,查看生成的 stateful set:

生成的headless service:

生成的pod:

将 statefulset yaml 文件中的副本从 1 更改为 3 将启动两个新的 pod,其名称将遵循命名规范 -X 我发现它已实现。

使用kubectl描述查看创建的有状态集的详细信息。

由statefulSet自动创建的persistentVolumeClaim:

文件所属该数据库系统的数据由用户“postgres”拥有。

该用户还必须拥有服务器进程。

数据库集群使用语言环境“en_US.utf8”初始化。

默认数据库编码相应地设置为“UTF8”。

默认文本搜索设置设置为“english”。 .

数据页校验和已禁用。

修复现有目录 /var/lib/postgresql/data/pgdata 的权限...确定

正在创建子目录。 .. ok

选择默认 max_connections ... 100

选择默认共享缓冲区 ... 128MB

动态选择共享内存实现... posix

创建配置文件... OK

运行引导脚本... OK

post-执行引导初始化... OK

正在将数据同步到磁盘...好的

我成功了。 您现在可以使用以下命令启动数据库服务器:

pg_ctl -D /var/lib/postgresql/data/pgdata -llogfile start

使用以下命令登录statefulset提供的postgreSQL服务器:

1. kubectl 执行测试器 -it --rm --image=postgres:9.6 --env="PGCONNECT_TIMEOUT=5" - - 命令 -- ] bash

查看 root $ 表示您已连接到 pod。

使用以下命令行连接到 postgreSQL 服务器:

psql -h ads-db-statefulset-0.ads[ k4]db [ k4]service -p 5432 -U adsuser -W ads

当然,如果你不想使用命令行,就使用 pgadmin 即可还可以。 要使用图形界面连接到statefulSet的postgreSQL服务器:

sudo apt install pgadmin3

执行端口转发到localhost:5432进行连接。 :

kubectl端口-forwardads-db-statefulset-0 5432:5432

您还可以连接成功:

获取更多Jerry原创文章,请关注公众号“王子熙”请:

未经允许不得转载:主机频道 » Kubernetes状态集讲解及基于postgreSQL的具体示例

评论 抢沙发

评论前必须登录!