我是K8S的新手,我正在尝试理解在集群中的每个节点上运行的kube-proxy的确切角色。文档中提到"kube-proxy反映了每个节点上Kubernetes API中定义的服务,并且可以跨一组后端执行简单的TCP、UDP和SCTP流转发或循环调度TCP、UDP和SCTP转发“。为了实现这一点,每个kube-proxy将需要具有关于在集群中运行的所有服务的完整信息,因为它是kube-proxy的责任,以提供对pod (在相应节点上)上运行的应用所要求的任何服务的访问。那么,这是否意味着K8S集群中的所有kube-proxies (在每个节点上运行)都是镜像?如果是这样,为什么每个节点上都有kube-proxy,而不是整个集群的集中式代理?
有关代理的K8S文档的链接:https://kubernetes.io/docs/concepts/cluster-administration/proxies/
发布于 2019-12-29 04:24:43
那么,这是否意味着K8S集群中的所有kube-proxies (在每个节点上运行)都是镜像?
是的,它们是相同图像的实例。
如果是这样的话,为什么每个节点上都有kube-proxy,而不是整个集群的集中式代理?
kube-proxy使用操作系统包过滤层(如果有),并且它是可用的,例如IPtable、IPVS。否则,kube-proxy会自行转发流量。kube-proxy
Kube-是一个k8s控制器代理本身,它监视集群的所需状态(服务和端点),并在节点上进行更改,因为它管理IPtabels (在使用iptable模式)
要实现这一点,每个kube-proxy都需要有关于集群中运行的所有服务的完整信息.....
有以下标志用于设置kube-proxy的行为
--iptables-min-sync-period duration
The minimum interval of how often the iptables rules can be refreshed as endpoints and services change (e.g. '5s', '1m', '2h22m').
--iptables-sync-period duration Default: 30s
The maximum interval of how often iptables rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0.在IMO中,节点上pods之间的连接(转发、接受)应该由节点组件决定,而不是由中央平面组件决定。此外,K8s控制平面(api-server等)保留了集群的期望状态和当前状态,因此所有控制器都可以根据其设置的行为进行协调。
https://stackoverflow.com/questions/59513928
复制相似问题