RDBMSとNoSQLのメリットを併せ持つクラウドネイティブなNewSQLデータベース
「TiDB」をKubernetesで動かしてみよう!de379/p52_1.jpg) ## Advanced StatefulSet を使う もともと Kubernetes では StatefulSet という仕組みがあり、tidb-operator も基本的にはこの StatefulSet を使って tidb や tikv のコンポーネントを作成します ☑ StatefulSet は Pod を指定された数だけシーケンシャルに作成します (mypod-0 [Image](/uploads/documents/8/b/2/a/8b2a438e9f4a37d5af876c1c987de379/p53_1.jpg) ## Advanced StatefulSet を使う ☑ StatefulSet だと、例えばこんな時困ることになります mypod-0 mypod-1 mypod-2 mypod-3 mypod-1 を消したいけど・・・ ,支持有状态Pod。该功能在1.4中是alpha测试阶段,被称为PetSet。对于先前版本的Kubernetes,有状态Pod的最佳做法是创建一个replication 名Pod。在Node上,被设为立即终止的Pod在被强制杀死之前仍然会有一个较小的优雅关闭时间。 强制删除对于某些Pod可能是危险的,应慎用。在StatefulSet Pod的情况下,请参阅`deleting Pods from a StatefulSet`。 ## Pod phase Pod的 status 字段是一个PodStatus对象,它有一个 phase 字段。 Pod的phase0 码力 | 135 页 | 21.02 MB | 2 年前3
K8S安装部署开放服务helm 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: storageClass: "ceph" accessModes: - ReadWriteOnce size: 500Mi vi redis-cluster/templates/redis-statefulset.yaml volumes: - name: host-time hostPath: path: "/etc/localtime" volumeMounts: //注意有多个0 码力 | 54 页 | 1.23 MB | 2 年前3
02 TiDB Operator 架构与实现 付业成has pod, deployment, statefulset, etc. - But it does not know how to operate a TiDB cluster... ## Kubernetes Pattern - Declarative Model - Kubernetes has pod, deployment, statefulset, etc. - But it does tidb-scheduler other Pod other Pod other Pod PD Pod TiKV Pod TiDB Pod ## apiVersion: apps/v1 kind: StatefulSet spec: template: spec: schedulerName: tidb-scheduler containers: ## Scheduler Extender 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 status:0 码力 | 47 页 | 1.73 MB | 1 年前3
Greenplum on Kubernetes
容器化MPP数据库Pod管理 ☐ 无状态计算资源组:Deployment ☐ 有状态计算资源组:StatefulSet ● Pod持久存储 ☐ 通过PVC申请PV存储资源 ● StatefulSet ○ Pod网络地址不变 ○ Pod与PV映射关系不变 apiVersion: apps/v1 kind: StatefulSet metadata: name: web spec: selector: /2/6/a/1/26a11ccc3381a9b86766186614142f79/p22_2.jpg) Master StatefulSet (2) Primary Segment StatefulSet (N) Mirror Segment StatefulSet (N) Cluster PV (N) ## Greenplum on Kubernetes ## Master节点示例 |pv|-o|wide| |---|---|---|---|---|---|---| ## Greenplum on Kubernetes 存储计算分离 ☐ PV持久化存储资源 ☐ StatefulSet/Pod弹性扩展计算资源 ● 数据库服务层 ○ Service统一Master & Standby Master地址 ● 服务发现机制 ☐ 所有节点地址名不变 ● 跨云能力0 码力 | 33 页 | 1.93 MB | 2 年前3
Kubernetes 容器编排与应用编排de59abe/p2_3.jpg) ## Caicloud ## Kubernetes Master Deployment Controllers Job CronJob StatefulSet DaemonSet ReplicationController? ReplicaSet PetSet (issue #27430)  Node Pod Pod Pod Deployment StatefulSet DaemonSet CronJob No/Scheduler ReplicaSet Job Pod 1. 支持指定副本数 2. 支持 Recreate 和 Rolling Update $ ^{*} $ statefulset-example-0.example 3. Pod 可具有独立的存储 4. 一切都是有序的 * 从 0 开始逐个创建(需等待 Ready) * 反向逐个删除(需等待 Terminated) 5. Update Strategy ( $ * $ v1.7) * 反向逐个删除并重建 Pod ## StatefulSet  可以对集群进行配置更新、删除等操作。 redis cluster redis cluster redis cluster Manage Redis Operator pvc statefulset deployment service Create Update Get Delete Kubernetes API Server ## Operator管理无状态的服务 特性0 码力 | 30 页 | 3.52 MB | 2 年前3
Kubernetes Operator 实践 - MySQL容器化服务调度 状态保存 有状态服务集群 服务调度 状态保存 集群管理 ## 站在 Kubernetes 的肩膀上 服务调度 状态存储 集群管理 Deployment StatefulSet PV/PVC StorageClass 成员管理 扩缩容 故障迁移 ? ? 高可用 CoreOS 提出了 operator ## Operator 是什么 An Operator mysql-7c46782dr  StatefulSet mysql-577ck9s8f  917f8cd627e1bdc741/p21_1.jpg) VS StatefulSet 精养  MySQL 更像 “宠物”,使用 StatefulSet 调度 MySQL 容器 ## MySQL 容器化系统架构 REST 00 码力 | 42 页 | 4.77 MB | 1 年前3
k8s操作手册 2.3秒再检测,默认 0 秒 ## ★StatefulSet 控制器 在使用 deployment 时,创建的 pod 名称是没有顺序的,是随机字符串,在用 statefulset 管理 pod 时要求 pod 名称必须是有序的,每一个 pod 不能被随意取代,pod 重建后 pod 名称还是一样的(pod ip 会变)。 Deployment 称为无状态应用,StatefulSet 称为有状态应用 statefulset statefulset 管理 pod 的启停顺序: |有序部署|部署 StatefulSet 时,如果有多个 Pod 副本,它们会被顺序地创建(从 0 到 N-1)并且在下一个 Pod 运行之前,前面的所有 Pod 都必须是 Running 和 Ready 状态| |---|---| |有序删除|当 Pod 被删除时,它们被终止的顺序是从 N-1 到 0| |有序扩展|当对 Pod 执行扩展操作时,与部署一样,它前面的 #与目标 pod 的 labels 相同 type: NodePort - port: 2680 # service ip 的 port # kubectl apply -f nginx-statefulset.yml #应用 deployment 












