k8s组件详解

k8s组件

master节点组件

kube-APIserver: k8s的中心,各个组件信息交互都要通过它,也是k8s管理集群的入口。

Controller-Manager:集群的状态管理器,保证Pod或其他资源达到期望值,也是需要和APIServer进行通信,在需要的时候创建、更新或删除它所管理的资源。

Scheduler:k8s 集群的调度器,选择工作pod节点,预选 > 优选。

Etcd:键值数据库,用于保存k8s集群信息,网络信息,网络信息。

Master第三方组件

Flannel:网络插件,能够实现不同pod之间互相通信,还能够解决ip地址冲突的问题。

Coredns:附加组件,这是一个kubernetes集群内部的DNS。

Dashboard:附加组件,通过浏览器的形式访问你的资源 。

Metric-server:附加组件,计算Dashboard上资源的。

node节点

Worker、node节点、minion节点

**Kubelet:**负责监听节点和pod状态的,(监听状态发送 Kebu-APIserver 信息推送给 Etcd)

Kube-proxy:负责Pod之间的通信和负载均衡,将指定的流量分发到后端正确的机器上。

查看Kube-proxy工作模式:curl 127.0.0.1:10249/proxyMode

  • Ipvs:监听Master节点增加和删除service以及endpoint的消息,调用Netlink接口创建相应的IPVS规则。通过IPVS规则,将流量转发至相应的Pod上。
  • Iptables:监听Master节点增加和删除service以及endpoint的消息,对于每一个Service,他都会场景一个iptables规则,将service的clusterIP代理到后端对应的Pod。
node第三方节点

Docker:容器引擎,负责对容器的管理。

Calico:符合CNI标准的网络插件,给每个Pod生成一个唯一的IP地址,并且把每个节点当做一个路由器。Cilium

CoreDNS:用于Kubernetes集群内部Service的解析,可以让Pod把Service名称解析成IP地址,然后通过Service的IP地址进行连接到对应的应用上。

创建pod流程

用户要创建一个 Pod,先把请求发送给 kube-APIserver ,kube-APIserver 收到后会把请求写到 Etcd,之后 kube-APIserver 告诉给Scheduler,来启动pod,Scheduler就来选节点 ,选好节点后节点信息发送给 kube-APIserver,kube-APIserver 写到 Etcd ,再告诉 Kubelet,节点信息去运行 Pod, Kubelet 调用 docker 运行,docker 启动完成后,告诉 Kubelet,然后 Kubelet告诉 kube-APIserver 节点启动好了 ,kube-APIserver 再次会把信息写到 Etcd 里,代表Pod 启动完成。

Pod (里面运行的是容器)

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值