本章主要让咱们初步了解到Kubernetes的主要组件有哪些,以及其协做关系是怎么样的。前端
包括kube-apiserver、kube-scheduler、kube-controller-manager和etcd四个组件。node
kube-apiserver: 是一个将Kubernetes控制平面中的API暴露出来的API服务,这服务是Kubernetes控制平面的前端。 用户能够运行多个kube-apiserver组件的实例,用于平衡实例的请求流量。 kube-scheduler: 用于watch监听apiserver的资源变更(增删改查),并调度合适的后端node节点来建立Pod资源。 kube-controller-manager: 每一个控制器都是独立的二进制进程,包括:Node Controller、Replication Controller、Endpoints Controller和Service Account & Token Controllers。 etcd: 高可用、KV结构的kubernetes的后端数据存储组件。 备份方案:https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster 官方文档:https://etcd.io/docs/v3.4.0/
包括kubelet、kube-proxy和Container Runtime三个组件。
kubelet: 运行在集群每一个节点的客户端,须要确保相关容器运行在pod中; 经过PodSpecs标签,描述容器的运行状态; 最后,kubelet无论理,没有经过kubernetes建立的容器。 kube-proxy: 是一个运行在集群每一个节点的网络代理组件。 Container Runtime: 支持运行容器底层环境的软件; 支持: Docker, containerd, cri-o, rktlet and any implementation of the Kubernetes CRI (Container Runtime Interface)。
使用Kubernetes resources (DaemonSet, Deployment, etc)增长集群功能; 其中附加组件的namespace属于kube-system。 可用Addons文档:https://kubernetes.io/docs/concepts/cluster-administration/addons/
DNS: 将Service资源的A记录,实时且自动的添加进来。 Web UI (Dashboard)、Container Resource Monitoring和Cluster-level Logging
2.流程概述: git
Master: github
用户经过(API、WebUI、CLI)向APIserver发送请求,Scheduler组件watch APIserver的资源变更,同时从Node中选取最合适的Node节点开始调度,并把结果保存到Etcd中。
Node:docker
kubelet也会watch APIserver的资源变更,并在符合的Node上,会经过kuberlet调用相关的docker引擎进行后续构建操做。
本文原址位于个人Github,我会陆续将全部专题更新过来,其中包括docker、k8s、ceph、istio和prometheus,旨在分享云原生中大而全的技术知识点和实操过程,若是对你有用,请follow、star个人github,这也是我更新、分享下去的动力,谢谢~api