0
点赞
收藏
分享

微信扫一扫

k8s学习-基础组件

Master组件

Master组件是集群的控制平台

  • master负责进群中的全局决策(调度)
  • master组件探测并响应集群使劲按,例如,当Deployment的实际Pod副本数量未达到replicas字段的规定的时候,启动一个新的pod

master组件可以运行于集群的任何机器上,但是为了简洁性,通常在同一台机器上运行所有的master组件,且不在此机器上运行用户的容器。

kube-apiserver

此组件提供k8s API,这是kubernetes控制平台的前端,可以水平扩展,通过部署更多的实例达到性能要求。kubectl/kubernetes dashboard /kuboard等k8s管理工具就是通过api实现对集群的管理。

etcd

支持一致性和高可用的键值对存储组件,集群的所有配置都存储在etcd中。

kube-scheduler

此组件监控所有的新创建尚未的分配到节点上的Pod,并且自动为pod选择一个核实的节点区运行。

影响调度的因素有:

  • 单个或者多个pod资源要求
  • 硬件、软件、策略的限制
  • 亲和与反亲和的预定
  • 数据本地化的要求
  • 工作负载间的相互作用


kube-controller-manager

此组件运行了所有的控制器。

逻辑上来说,每一个控制器都是一个独立的进程,但是为了降低复杂度,这些控制器都被合并运行到一个进程里面。

其中包含的控制器有;

  • 节点控制器:负责监听节点停机的事件并作出对应响应
  • 副本控制器,负责为集群中的每一个副本控制器对象(Replication Conroller Object)维护期望的POD副本数
  • 端点(Endpoints)控制器,负责为端点对象(Endponts Object,连接service和pod)赋值
  • Service Account & Token 控制器:负责为新的名称空间创建default Service Account以及API Access Token

cloud-controller-manager

 此组件中运行了与具体云基础设施供应商互动的控制器,它只运行特定于云基础设施供应商的控制器,默认k8s集群不安装cloud-controller-manager

Node组件

node组件运行在每一个节点上,包括master和worker节点,负责运维运行中pod并负责提供k8s运行环境。

kubelet

此组件是运行在每一个集群节点上的代理程序,它确保pod 中的容器处于运行状态。kubelet通过多种途径获取PodSpec定义,并确保PodSpec定义中所描述的容器处于运行和监控的状态。


kube-proxy

kube-proxy 是一个网络代理程序,运行在集群的每一个节点上,是实现kubernets Service概念的重要部分。

kube-proxy在节点上维护网络规则,这些规则可以在集群内外正确的于Pod进行网络通信。如果操作系统中存在packet filtering layer,kube-porxy将使用这一特性,(iptabes代理模式),否则,kube-proxy将自行转发网络请求(User space代理模式)

容器引擎

容器引擎负责运行容器,支持多种容器,包括docker,containderd,cri-o,rktlet以及任何实现的k8s容器引擎接口的容器引擎。


Addons

Addons使用k8s资源( DaemonSet,Deployment等)实现进群的功能特性。由于提供集群级别的功能特性,addons使用到的kubernetes 资源都放在kube-system名称空间下。

以下为常用的Addons

DNS

除了DNS Addon以外,其他的addon都不是必须的,所有的kubernetes 集群都应该有Cluster DNS

Cluster DNS 是一个 DNS 服务器,是对您已有环境中其他 DNS 服务器的一个补充,存放了 Kubernetes Service 的 DNS 记录。

Kubernetes 启动容器时,自动将该 DNS 服务器加入到容器的 DNS 搜索列表中。


Web UI (Dashboard)


Dashboard (opens new window)是一个Kubernetes集群的 Web 管理界面。用户可以通过该界面管理集群。












举报

相关推荐

0 条评论