k8s入门-集群组件介绍

k8s是谷歌以borg为前身,基于谷歌15年生产环境经验的基础上开源的一个项目。

k8s致力于提供跨主机集群的自动部署、扩展、高可用以及运行应用程序容器的平台。

k8s集群包含master节点和node节点,是一个主从架构,通常我们会用3台服务器已高可用的形式作为主节点,不进行业务部署(可以设置要不要在主节点上部署应用);从节点作为工作节点。

以下为集群组件及功能:

master节点:集群的控制中枢

kube-apiserver:集群的控制中枢,各模块间信息交互需要经过kube-apiserver,同时它也是集群管理、资源配置、集群安全机制的入口。

controller-manager:集群的状态管理器,保证pod等资源始终达到一个期望的效果,需要和apiserver进行通信,在需要的时候创建、更新或删除所管理的资源。

scheduler:集群的调度中心,他会根据指定的一系列条件选择最佳节点部署pod;就是说如果我们有5个node节点,当我们创建一个pod时候,是由scheduler决定这个pod部署在哪个节点上。

etcd cluster:键值数据库,存放集群信息;生产环境中最好etcd与集群分离,建议3个以上节点(奇数),使用ssd硬盘安装。

node节点:工作节点,也叫worker节点

kubelet:负责监听节点上pod状态,同时负责上报节点与节点上pod状态,负责与master节点通信,并管理pod。

kube-proxy:负责pod之间的通信和负载均衡,将指定的流量分发到后端机器上。
查看kube-proxy工作模式:

curl 127.0.0.1:10249/proxymode

我使用的是ipvs。

ipvs:监听master节点增加和删除service以及endpoint的消息,调用netlink接口创建相应对的ipvs规则。通过ipvs规则,将流量转发至相应的pod上。
iptables:监听master节点增加和删除service以及endpoint的消息,对于每一个service,他都会创建一个iptables规则,并将service的clusterip代理到后端相应的pod。

kube-system命名空间:系统组件pod

calico:符合cni标准的网络插件,给每个pod生成一个唯一额ip地址,并且将每个节点当做一个路由器(实现或节点通信)。

coredns:用于k8s集群内部service解析,可以让pod把service名称解析为ip地址,然后通过service的ip地址进行连接到对应应用上。

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

metrics-server:查看pod占用资源情况

以上就是k8s入门-集群组件介绍的详细内容,更多关于k8s入门-集群组件介绍的资料请关注www.887551.com其它相关文章!

(0)
上一篇 2022年3月23日
下一篇 2022年3月23日

相关推荐