课程名称:2.3.2 Deploy TiDB in Kubernetes(在 Kubernetes 上部署 TiDB 集群)
学习时长:60分钟
课程收获:了解kubernetes及tidb operator
课程内容:
讲师:张海龙
1、 kubernetes基础
是能自动化的部署,扩缩容和管理容器应用的开源系统。
容器化所需技术:控制cgroups;隔离 namespace;rootfs
Kubernetes通过声明式的配置,来完成各种自动化的操作。服务发现、负载均衡等
Kubernetes架构:
Kubernetes control plane
Kube-controller Manager:node controller;deployment controller;statefulset controller;service controller等
Kube-api-server
Kube-scheduler
Etcd:一致的和高可用的key values存储
Kubernetes nodes
Kubelet:保证容器运行在pod中
Kube-proxy:维护nodes的网络规则
Pod
Service:clusterIP;nodeport;loadbalance;externalname;
PVC/PV
Workload
Deployment;statefulset;daemonset;jobs;cronjob
Controller
2、 TiDB Operator原理
使TiDB部署和管理更简单,更安全和自动化
通过CRD来定义和管理TiDB集群
方便部署
滚动升级
多租户支持
自动故障恢复
监控
TiDB operator架构
自定义资源custom resources
TiDB Pods
TiDB operator
Tidb-controller-manager
Tidb-scheduler
Tidb-admission-webhook
Kube-scheduler,kube-apiserver,kube-controller-manager
3、 在kubernetes上部署TiDB集群
安装CRD
Kubectl apply -f 地址
Kubectl get crd |grep tidbclusters
获取values.yaml文件
安装TiDB-operator
Helm install pingcap/tidb-operator –name=tidb-operator –namespace=tidb-admin –version=v1.1.6 -f ${HOME}/tidb-operator/values.yaml
验证
Kubectl get po =n tidb-admin
升级
Kubectl apply -f 地址
Helm upgrade tidb-operator pingcap/tidb-operator –version=v1.1.7 -f ${HOME}/tidb-operator/values.yaml
部署TiDB集群
配置CRD
配置TiDB cluster CR
应用CR
Kubectl get svc 查看service状态