K8S核心组件与工作原理
k8s官方文档:https://kubernetes.io/zh/docs/home/
前提掌握容器技术:Docker,Containerd等
K8S优势-
使用简单,少量人/小团队可以轻松维护大型分布式系统
-
全面拥抱微服务架构,快速迭代,快速部署
-
移植性高,随时可以将系统搬迁到公有云
-
弹性扩容,轻松应对突发流量
-
K8S超强的横扩能力,增加自身竞争力
-
Pod:k8s的基本资源,由一个或者多个容器组成(sidecar)
-
Label:附加到某个资源,方便管理与查询,可进行资源的绑定
-
Deployment:最常见的控制器,用于管理Pod(StatefulSet,DaemonSet,Job,CronJob)
-
Service:为Pod提供负载,提供对外访问
-
Namespace:隔离资源,权限控制
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的网络代理,设置网络转发规则