摘要:此版本中引入了一个新概念,用于管理有状态应用程序。 使用已创建视图的详细信息自动创建它。 使用以下命令登录到提供的服务器: 当我们看到这一点时,就意味着我们已经建立了联系。
有状态集是 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原创文章,请关注公众号“王子熙”请:
评论前必须登录!
注册