Kubernetes详解

Kubernetes是谷歌以Borg为前身,谷歌一直再用容器的管理平台,容器的编排。基于谷歌15年的生产环境经验的基础上开源的一个项目(kubernetes),kubernetes致力于提供跨主机群集的自动部署、扩展、高可用以及运行应用程序容器的平台。

有很多人会说Kubernetes是系统,因为kubernetes运行各种容器,容器又运行各种服务。

Kubernetes组件

Kube-APIServer:集群的控制中枢,各个模块之间通信都需要经过Kube-APIServer,同时也是集群管理、资源配置、整个集群安全机制的入口。(核心组件)

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

pod是kubernetes中的最小调度单元、最小管理单元。Kubernetes管理pod,容器在pod里。

controller-manager负责管理资源状态

Scheduler:集群的调度中心,根据指定的一系列条件,选择一个或一批最佳的节点,然后部署pod

以上三个组件安装在master节点,不需要安装在node节点

附加组件:

Etcd:键值数据库,保存一些集群的信息,一般生产环境中建议部署三个以上节点(奇数个)

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

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

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

Metric-server 附加组件, 用于计算资源

node节点组件:

Kubelet:负责监听每个节点上的pod状态,同时负责上报节点和节点上面的pod状态,负责与master节点通信,并且管理节点上的pod。(管理指创建、删除、更新)是真正的执行者。  

主节点不用安装kubelet。

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。

从性能方面ipvs相对IPtables较好,因为pod多时iptables的规则自然而然就多啦!

其他组件:

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

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

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

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值