【TiDB 4.0 PCTA 学习笔记】 2.3.2 Deploy TiDB in Kubernetes(在 Kubernetes 上部署 TiDB 集群)@1班 李元月

课程名称:

201 2.3.2 Deploy TiDB in Kubernetes(在 Kubernetes 上部署 TiDB 集群)

学习时长:

30min

课程收获:

初步了解 Kubernets,以及 TiDB 在 Kubernets 上的安装部署

课程内容:

1. Kubernetes 基础概念

1. 什么是 Kubernetes?

1. 什么是 Kubernetes?

Kubernetes 是一个自动部署、扩缩容、管理容器化应用的开源系统

传统部署 VS 虚拟化部署 VS 容器部署

容器用到的技术有 Cgroups、Namespace 和 Rootfs,Cgroups 用来做资源分配,Namespace 用来做资源隔离,Rootfs 是容器启动的根目录

2. 为什么需要 Kubernetes?

docker 只能在单机上对容器进行管理,默认不同主机上的容器不能通信,Kubernetes 可以管理集群中的容器(编排)

3. Kubernetes 的优点

  • 可移植、可扩展、开源、管理容器化负载和服务
  • 配置和自动化
  • 服务发现和负载均衡
  • 存储编排
  • 自动发布及回滚
  • 自动打包
  • 自我修复
  • 加密(Secret)及配置管理(ConfigMap)
  • 容器编排系统

2. Kubernetes 架构

Kubernetes 架构分为 Control Plane 和 Node 两部分

其中,Control Plane 中的组件可分为:

  • kube-api-server:暴露 Kubernetes API
  • etcd:一致性高可用的 kv 存储
  • kube-scheduler:调度器,为 pod 选择合适 node 节点运行
  • kube-controller-manager:实现用户声明式的部署,包含一组 controller,包括 Node controller,Deployment controller 等

其中,Node 中的组件可分为:

  • kubelet:保证容器在 pod 当中运行
  • kube-proxy:维护 node 网络规则
  • container runtime like docker:负责节点上容器管理

3. Kubernetes 基本概念

1. Pod

Kubernetes 集群调度的基本单位,是一组容器的集合

2. Service

为 Pod 提供负载均衡的功能,Service Type 种类包括:

  • NodePort
  • LoadBalancer
  • ExternalName
  • LoadBalancer

3. PV & PVC

PV:对底层存储的抽象

PVC:可以理解为 storage request

4. Workload

  • Deployment:无状态服务
  • StatefulSets:有状态服务
  • DaemonSet:每个节点上都起一个实例
  • Jobs:一次性动作
  • CronJob:周期性动作
5. Controllers

Controllers 的基本工作原理是通过观察当前状态值,不断把状态逼近为设置的状态值,包括一系列的 Controllers

2. TiDB Operator 原理

1. 为什么需要 TiDB Operator

  • 使 TiDB 在 Kubernetes 上的部署更简单、方便和安全
  • 需要 TiDB 相关知识进行运维

2. 特征

  • 方便部署
  • 水平扩缩容
  • 滚动更新
  • 多租户支持
  • 自动故障转移
  • 监控

3. 通过 CRD 来描述 TiDB 集群

  • 类似面向对象编程里的类和类的实例
  • image

4. TiDB Operator 架构

image

1. controller 工作原理

image

2. 工作过程

image

3. 在 TiDB 上部署 Kubernetes 集群

详见官网文档

学习过程中参考的其他资料