kubernetes权威指南-version4-第五章 核心组件运行机制-- Scheduler、Kublet、Kube-Proxy

Scheduler

Kubernetes Scheduler负责接收Controller Manager创建的新Pod,为其安排Node,之后由kubelet服务进程接管Pod的后续工作。

Kubernetes Scheduler将待调度的Pod按调度算法和调度策略绑定到Node上。

预选策略:

NoDiskConflict避免磁盘冲突、

PodFitsResources内存和cpu资源满足Pod需求、

PodSelectorMatches标签选择、

PodFitsHost节点名称选择、

CheckNodeLabelPresence节点的标签列表选择、

CheckServiceAffinity、

PodFitsPorts。

优选策略:LeastRequestedPriority资源消耗最小、CalculateNodeLabelPriority、BalancedResourceAllocation各项资源使用率最均衡。

Kubelet

每个node上都会启动一个kublet服务进程,处理master下发到本节点的任务,管理Pod和Pod里的容器。kublet在API server上注册节点信息,定期向master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。

Kublet是联系master和各Node之间的桥梁。

LivenessProbe探针判断容器状态是否健康并反馈给kubelet,ReadinessProbe探针判断容器是否启动成功。

cAdvisor是一个开源的分析容器资源使用率和性能特性的代理工具。cAdvisor查找并采集Node上的CPU、内存、文件系统、网络使用的统计信息。UI端口4194。1.10开始弃用。

新的Kubernetes中,Metrics Server用于提供Core Metrics(核心指标),包括Node和Pod的CPU和内存使用数据。其他Custom Metrics(自定义指标)由第三方组件(如Prometheus)采集存储。

kube-proxy

每个Node都会运行一个kube-proxy服务进程,是service的透明代理和负载均衡器,将对service的请求转发到后段的多个pod实例上。kube-proxy在运行过程中动态创建与Service相关的iptables规则,从而将访问service(Cluster Ip或NodePort)的请求负载分发到后端pod。

通过API Server的Watch接口实时跟踪Service与Endpoint的变更信息,并更新对应的iptables规则,Client的请求流量则通过iptables的NAT机制直接路由到目标Pod。

1.8以后使用IPVS(IP Virtual Server)模式。iptables模式为防火墙设计,IPVS专门用于高性能负载均衡,并使用更高效的数据结构(Hash表),允许几乎无限的规模扩张。

ipset使用带索引的数据结构,当规则很多时,也可以高效地查找和匹配。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值