前提
掌握容器技术:Docker,Containerd等
K8S优势
- 使用简单,少量人/小团队可以轻松维护大型分布式系统
- 全面拥抱微服务架构,快速迭代,快速部署
- 移植性高,随时可以将系统搬迁到公有云
- 弹性扩容,轻松应对突发流量
- K8S超强的横扩能力,增加自身竞争力
K8S资源
- Pod:k8s的基本资源,由一个或者多个容器组成(sidecar)
- Label:附加到某个资源,方便管理与查询,可进行资源的绑定
- Deployment:最常见的控制器,用于管理Pod(StatefulSet,DaemonSet,Job,CronJob)
- Service:为Pod提供负载,提供对外访问
- Namespace:隔离资源,权限控制
K8S的核心组件与工作原理
Master节点
- apiserver:集群的管理者与协调者,提供rest api可以对资源进行管理
- etcd:存储集群数据
- kube-controller-manager:管理集群中的控制器。当发现某种资源的状态发生变化时,Controller会尝试将其调整到期望状态。比如NodeController,发现某个Node宕机,就会及时发现故障,并启动修复
- kube-scheduler:根据算法,为pod选择一个合适的node。起到承上起下的作用,承上接受ConrollerManager创建的新Pod的任务,为其找到对应的Node,启下指的是跟通知Node的kubelet,让其接管Pod的创建工作
Node节点
- kubelet:管理Node上的Pod,创建,删除等
- kube-proxy:Pod的网络代理,设置网络转发规则