TypechoJoeTheme

院长技术

统计
登录
用户名
密码
/
注册
用户名
邮箱

Kubernetes的一些组件概念

2021-01-19
/
0 评论
/
84 阅读
/
正在检测是否收录...
01/19

Kubectl:客户端命令行工具,作为整个系统的操作入口。
kube-apiserver:以REST API服务形式提供接口,作为整个系统的控制入口。
kube-controller-manager:控制器管理器,用来检测控制器健康状态,检查pod的健康状态,比如故障检测,自动扩展,滚动更新,包括节点状态状况、Pod个数、Pods和Service的关联等。
kube-scheduler:负责节点资源管理,接收来自kube-apiserver创建Pods任务,并分配到某个节点。
etcd:是一个key/value形式的键值存储,保存整个k8s集群状态,在k8s中使用etcd时,需要对etcd做备份,保证高可用,整个k8s系统中一共有两个服务需要 用到etcd用来协同和存储配置
分别是:
1.网络插件calico,对于其他网络插件也需要用到etcd存储网络的配置信息
2.k8s本身,包括各种对象的状态和元信息配置
注意:网络插件操作etcd使用的是v2的API,而k8s操作etcd使用的v3的API,所以在下面我们执行etcdctl的时候需要设置ETCDCTL_API环境变量,该变量默认值为2,表示使用v2版本的etcd api,v3表示使用v3的版本etcd api
kube-proxy:运行在每个计算节点上,负责Pod网络代理。定时从etcd获取到service信息来做相应的策略。
Kubelet:运行在每个计算节点上,作为agent,接收分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver。
Fluentd:主要负责日志收集、存储与查询。
Calico:是一个纯三层的网络插件,calico的bgp模式类似flannel的host-gw,calico在kubernetes中可提供网络功能和网络策略
三种网络模式:
Flannel 常见采取 UDP Overlay 方案,VxLAN 性能比 TUN 强一点,一个是内核态一个是用户态
Calico 是一个纯三层的方案,不需要 Overlay,基于 Etcd 维护网络准确性,也基于 Iptables 增加了策略配置
Cilium 就厉害了,基于 eBPF 和 XDP 的方案,eBPF/XDP 处理数据包的速度可以和 DPDK 媲美,零拷贝直接内核态处理,缺点就是用户不太容易进行配置,而 cilium 解决了这个问题,毕竟 yaml 开发工程师都会写 yaml。。。可以支持 L3/L4/L7 的策略
Coredns:k8s1.11之前使用的是kube dns,1.11之后才有coredns是一个DNS服务器,能够为kubernetes services提供DNS记录

朗读
赞 · 1
赞赏
感谢您的支持,我会继续努力哒!

三合一收款

下面三种方式都支持哦

微信
QQ
支付宝
打开支付宝/微信/QQ扫一扫,即可进行扫码打赏哦
版权属于:

院长技术

本文链接:

https://myit.icu/index.php/archives/1019/(转载时请注明本文出处及文章链接)

评论 (0)