RDBMSとNoSQLのメリットを併せ持つクラウドネイティブなNewSQLデータベース 「TiDB」をKubernetesで動かしてみよう!
2022 Online/Spring 53 Advanced StatefulSet を使う もともと Kubernetes では StatefulSet という仕組みがあり、tidb- operator も基本的にはこの StatefulSet を使って tidb や tikv のコンポー ネントを作成します StatefulSet は Pod を指定された数だけシーケンシャルに作成します の名前の末尾の数字が増えていき、Pod が減る時 は末尾の数字が大きいものから減っていきます Open Source Conference 2022 Online/Spring 54 Advanced StatefulSet を使う StatefulSet だと、例えばこんな時困ることになります mypod-0 mypod-1 mypod-2 mypod-3 mypod-0 mypod-1 mypod-2 mypod-3 Online/Spring 55 Advanced StatefulSet を使う つまり、通常の StatefulSet だとこういう状態にすることはできません mypod-0 mypod-4 mypod-2 mypod-3 特定の番号の Pod (今回の例だと 1 ) だけ欠番にして通常通り運用したい・・・ そんな願いを叶えてくれるのが Advanced StatefulSet になります ... Open0 码力 | 71 页 | 6.65 MB | 1 年前3Kubernetes开源书 - 周立
10-Annotation 11-K8s架构及基本概念 12-Master与Node的通信 13-Node 14-Pod 15-Replica Set 16-Deployment 17-StatefulSet 18-Daemon Set 19-配置最佳实践 20-管理容器的计算资源 21-Kubernetes资源分配 22-将Pod分配到Node 23-容忍与污点 24-Secret 能组合——Kubelet实际上是“Pod控制器” ⾼可⽤性应⽤,Pod可在其终⽌或删除之前被替换,例如在计划的驱逐,图像预取或Pod实时移植的情况下#3949 14-Pod 43 StatefulSet 控制器(⽬前处于Beta测试阶段),⽀持有状态Pod。该功能在1.4中是alpha测试阶段,被称为PetSet。对 于先前版本的Kubernetes,有状态Pod的最佳做法是创建⼀个replication od。在 Node上,被设为⽴即终⽌的Pod在被强制杀死之前仍然会有⼀个较⼩的优雅关闭时间。 强制删除对于某些Pod可能是危险的,应慎⽤。在StatefulSet Pod的情况下,请参阅deleting Pods from a StatefulSet 。 Pod phase Pod的 status 字段是⼀个PodStatus 对象,它有⼀个 phase 字段。 Pod的phase0 码力 | 135 页 | 21.02 MB | 1 年前3K8S安装部署开放服务
search repo emqx helm fetch emqx/emqx tar xvf emqx-4.2.0.tgz Step2. 修改 StatefulSet.yaml vi emqx/templates/StatefulSet.yaml spec: volumes: - name: host-time hostPath: fetch bitnami/redis-cluster tar zxvf redis-cluster-3.2.5.tgz Step2. 修改 values.yaml 以及 redis-statefulset.yaml vi redis-cluster/values.yaml usePassword: true password: "redis123" persistence: "ceph" accessModes: - ReadWriteOnce size: 500Mi vi redis-cluster/templates/redis-statefulset.yaml volumes: - name: host-time hostPath: path: "/etc/localtime"0 码力 | 54 页 | 1.23 MB | 1 年前3Greenplum for Kubernetes PGConf India 2019
Master StatefulSet master-0 master-1 Greenplum Cluster Namespace: default Kubernetes Cluster Primary StatefulSet segment-a-0 segment-a-1 Mirror StatefulSet segment-b-0 segment-b-1 Master StatefulSet master-0 master-1 Greenplum Cluster Namespace: default Kubernetes Cluster Primary StatefulSet segment-a-0 segment-a-1 Mirror StatefulSet segment-b-0 segment-b-1 Master StatefulSet master-0 master-1 Greenplum Cluster Namespace: default Kubernetes Cluster Primary StatefulSet segment-a-0 segment-a-1 Mirror StatefulSet segment-b-0 segment-b-10 码力 | 26 页 | 1.75 MB | 1 年前3k8s操作手册 2.3
★StatefulSet控制器 在使用deployment时,创建的pod名称是没有顺序的,是随机字符串,在用 statefulset管理pod时要求pod名称必须是有序的,每一个pod不能被随意取代, pod重建后pod名称还是一样的(pod ip会变)。 Deployment称为无状态应用,StatefulSet称为有状态应用 statefulset管理pod的启停顺序: 序: 有 序 部 署 部署StatefulSet时,如果有多个Pod副本,它们会被顺 序地创建(从0到N-1) 并且在下一个Pod运行之前,前面的所有Pod都必须是 Running和Ready状态 有 序 删 除 当Pod被删除时,它们被终止的顺序是从N-1到0 有 序 扩 展 当对Pod执行扩展操作时,与部署一样,它前面的Pod 必须都处于Running和Ready状态 # # vi nginx-statefulset.yml #内容如下 apiVersion: apps/v1 kind: StatefulSet metadata: name: nginx-statefulset #StatefulSet名,也是pod名,不同于容器名 spec: replicas: 2 #pod运行副本数(实例数) selector:0 码力 | 126 页 | 4.33 MB | 1 年前3Kubernetes 容器编排与应用编排
容器编排与应用架构 容器编排的困境 应用编排架构 Kubernetes Caicloud Kubernetes 控制器架构 Controllers Deployment StatefulSet DaemonSet Job CronJob Pod Pod Pod Pod Pod Pod Pod Pod Pod Master Node Node Node ReplicationController ReplicationController? ReplicaSet PetSet (issue #27430) Kubernetes 控制器模式 Deployment StatefulSet DaemonSet Job CronJob ReplicaSet Pod No Scheduler Kubernetes 控制器 Deployment Deployment ReplicaSet Pod Update 3. 可控的滚动更新模式 4. 支持回滚 5. 可通过 HPA 实现自动弹性伸缩 Kubernetes 控制器 StatefulSet StatefulSet Pod 1. 支持指定副本数 2. Pod 具有固定且唯一的标识符 * statefulset-example-0.example 3. Pod 可具有独立的存储 4. 一切都是有序的 * 从 0 开始逐个创建(需等待0 码力 | 20 页 | 4.22 MB | 1 年前302 TiDB Operator 架构与实现 付业成
pod, deployment, statefulset, etc. - But it does not know how to operate a TiDB cluster... Kubernetes Pattern - Declarative Model PingCAP.com - Kubernetes has pod, deployment, statefulset, etc. - But it It’s ok to upgrade a High Availability system like TiDB directly. But, to avoid spikes we use StatefulSet partition to perform a phased roll out. - Upgrade PD - Upgrade TiKV - Upgrade TiDB PingCAP successfully, scale in the StatefulSet Scaling In - PD PingCAP.com - Delete the TiKV store via PD API first - Wait for the store to be tombstoned - Scale the statefulset Scaling In - TiKV PingCAP0 码力 | 47 页 | 1.73 MB | 5 月前3Greenplum on Kubernetes 容器化MPP数据库
资源分配:CPU,内存,磁盘 ○ 资源调度:Pod → Node ● Pod管理 ○ 无状态计算资源组:Deployment ○ 有状态计算资源组:StatefulSet ● Pod持久存储 ○ 通过PVC申请PV存储资源 ● StatefulSet ○ Pod网络地址不变 ○ Pod与PV映射关系不变 Kubernetes 网络资源 Service ● Service ○ 定义统一网络地址 Segment Pod Segment Instance Segment Pod Segment Instance Master StatefulSet (2) Primary Segment StatefulSet (N) Mirror Segment StatefulSet (N) Cluster PV (N) Database Service (Active Master) Greenplum Master节点示例 Segment节点示例 Greenplum on Kubernetes Greenplum on Kubernetes ● 存储计算分离 ○ PV持久化存储资源 ○ StatefulSet/Pod弹性扩展计算资源 ● 数据库服务层 ○ Service统一Master & Standby Master地址 ● 服务发现机制 ○ 所有节点地址名不变 ● 跨云能力 ○ 容器应用对基础设施透明0 码力 | 33 页 | 1.93 MB | 1 年前3Kubernetes Operator 实践 - MySQL容器化
有状态服务 服务调度 状态保存 带来的新挑战 服务调度 状态存储 集群管理 成员管理 扩缩容 故障迁移 高可用 CoreOS 提出了 operator Deployment StatefulSet PV/PVC StorageClass ?? 站在 Kubernetes 的肩膀上 An Operator is an application-specific controller mysql-7c46782dr mysql-577ck9s8f StatefulSet mysql-0 mysql-1 mysql-2 • Pod 名随机 • Pod 启动无序 • Pod 扩容无限制 如何调度 MySQL MySQL 更像“宠物”,使用 StatefulSet 调度 MySQL 容器 VS Deployment 散养 StatefulSet 精养 MySQL 容器化系统架构 REST bootstrap_group MGR 在 operator 的实现 部署 • Operator 在 pod 启动前注入 MGR 参数 故障迁移 • 依赖 statefulset 自愈 扩缩容 • 直接使用 statefulset 扩缩容 MySQL 容器化系统架构 REST CLI Kubernetes Master API Server Scheduler Controller0 码力 | 42 页 | 4.77 MB | 1 年前3基于Kubernetes构建容器云平台的实践 - UCloud优刻得实验室负责⼈ 叶理灯
Operator管理理有状态的服务 StatefulSet • 直接管理理的 Pod 的 hostname、名字等都是携带了了编号,Pod 的 创建,也是严格按照编号顺序进⾏行行 • 通过 Headless Service为这些有编号的 Pod,在 DNS 服务器器中 ⽣生成带有同样编号的 DNS 记录 • StatefulSet 还为每⼀一个 Pod 分配并创建⼀一个同样编号的 全部的 Namespace 或者特 定Namespace中对CR的创建、更更新、删除事件 • Operator 处理理这些事件,可以使⽤用 k8s 中的pod、deployment、 statefulset 对象构建应⽤用 Operator⼯工作原理理 Operator Kubernetes API Server Informer Delete Update Add cr cr Kubernetes API Server redis cluster redis cluster redis cluster Manage Redis Operator service statefulset pvc deployment Create Update Get Delete Operator Server 为⽤用户提供可视化 Web 操作⻚页⾯面,简化对各类⾃自0 码力 | 30 页 | 3.52 MB | 1 年前3
共 56 条
- 1
- 2
- 3
- 4
- 5
- 6