K8S的组件梳理

K8S:

master组件:

1. apiserver: 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;发往集群的所有rest操作命令的接入点,并负责接收、校验并响应所有的rest请求,是整个集群的网关。

 

2.controller manager:负责维护集群的状态,控制器完成的功能主要包括生命周期功能和api业务逻辑,具体如下:

  生命周期功能:包括namespace创建和生命周期、event垃圾回收、pod终止相关的垃圾回收、级联垃圾回收及node垃圾回收等

  api业务逻辑:例如,由replicaset执行的pod扩展等。

3.scheduler:负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上

4.etcd(cluster state store):提供分布式键值数据存储,保存了整个集群的状态;可用于服务发现、共享配置以及一致性保障。

node组件:

1.kubelet :kubelet是运行于工作节点之上的守护进程,是node的核心代理程序,它从apiserver接收关于pod对象的配置信息并确保它们处于期望的状态(desired state,也是目标状态)。kubelet会在apiserver上注册当前工作节点,定期向master汇报节点资源使用情况,并通过cadvisor监控容器和节点的资源占用状况。

2. container runtime(docker,rkt):每个node都要提供一个容器运行时环境,它负责下载镜像并运行容器。

3.kube-proxy:负责为 Service 提供 cluster 内部的服务发现和负载均衡;它能够按需为service资源对象生成iptables或ipvs规则,从而捕获访问当前service的clusterip的流量并将其转发至正确的后端pod对象。

 

额外插件add-ons:

1.kubedns:在k8s集群中调度运行提供dns服务的pod,同一集群中的其他pod可使用此dns服务器解决主机名

2.dashboard:kubernetes集群的全部功能都要基于web的UI来管理集群中的应用甚至是集群自身。

3.prometheus: 新版本的k8s中,其功能会逐渐由prometheus结合其他组件所取代。

4.ingress controller(nginx,envoy,haproxy):  service是一种工作于传统层的负载均衡器,而ingress是在应用层实现的http(s)负载均衡机制。

 

一些额外的知识:

1.资源清单yaml的定义:

   kind:Endpoints,deployment,service, deployment  ,StatefullSet, Job 等  https://blog.csdn.net/zhou164200/article/details/84590720

2.容器仓库,容器的打包与下载

3.网络模式:4种网络模式(bridge,host,none,container)  ,集群内部的路由SVC( service)

4.存储:PV(分布式储存nfs),PVC,本地储存

posted on 2021-03-10 11:37  老吃鸡  阅读(2018)  评论(0编辑  收藏  举报

导航