栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《Kubernetes in Action》第11章 理解Kubernetes的内部

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Kubernetes in Action》第11章 理解Kubernetes的内部

理解Kubernetes的内部 1 碎知识点

查看组件的状态 kubectl get componentstatusesController Panel := {etcd, API Server, Scheduler, Controller Manager}Worker node := {kubelet, kube-proxy, Controller Runtime}API Server和Conponents之间的通信多数时是Components发起的,少数kubectl log、kubectl attach时是API Server发起的。etcd、API Server可以同时启动多个、并行运行,Scheduler同时启动多个时也无法并行运行。etcd支持分布式一致性Key-Value存储,基于raft协议,用来存储资源的状态和metadata。API Server向Components通知资源更新事件。Sheduler通过更新资源的状态实现调度。Kubelet干什么?在API Server中创建Node对象;监听API Server,根据传来的事件,通知Container Runtime创建更新删除Pod资源;运行探针,管理Pods;将Pods的状态信息传给API Server;根据pod manifest来创建pod。userspace proxy 轮转, iptable proxy (kernel space proxy) 随机转发. 通过修改iptalbes实现通信拦截与转发。kube-proxy如何使用iptables发包?当Service被创建时,它的虚拟IP/port通过API Server传达给nodes,nodes会在iptables中添加记录:该服务的IP/port->提供该服务的pods的IP/port列表。当一个pod向该服务发包时,目的地址会被修改,由Service IP改为提供服务的pods的IP。Kubernetes自身如何保证高可用?API Server是(几乎,除了缓存)无状态应用,方便横向扩展;etcd是分布式数据存储;Controller和Sheduler可用通过leader elect的方式保证存在一个leader。 2 知识回顾


1 Kubernetes集群中包含Controller Panel: Etcd、API Server、Controller Manager、Scheduler; Workder: kubelet, kube-proxy, controller runtime。
2 i node内部的pods如何通信?一个node中的pods通过虚拟以太网接口对I(veth pair)连接到相同的桥上bridge,veth pair由pod中的eth0和node中的vethXXXX组成。pod中的eth0被分配一个IP,这个IP在网桥的范围内。

ii 不同nodes中的containers如何通信?使用SDN(软件定义网络)技术使得不同节点好像连接在同一个网络交换机上。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785916.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号