kubernetes kube-proxy原理
来源:互联网 发布:双色球科学预测软件 编辑:程序博客网 时间:2024/05/20 18:51
时隔多年,又开始玩csdn。
k8s中的service是个虚拟概念,完全靠kube-proxy实现
每创建一个service,需要定义三个变量:clusterIP port targetPort nodePort
其中:
clusterIP + port是内部pod访问service用的,随即分配
targetPort是容器的port
nodePort是外部访问service对应的后端pod用的,任何以节点的nodePort都可以访问到;
Userspace模式:
创建服务时:
1)api-server创建service对象,与service绑定的pod地址:称之为endpoints
2)每个节点上的kube-proxy从 api-server中获取到service,创建一个tcpsocketserver_for_serviceA,该服务使用随即端口
3)tcpsocketserver_for_serviceA,实时从apiservice中,获取endpoint的更新,任何对该服务的访问,都会被转发到后端pod中;
访问服务时:
内部pod访问cluster时: 自动被kube-proxy自动创建好的iptables规则,重定向到 tcpsocketserver_for_serviceA,该服务通过round算法转发到后端pod上
外部访问nodeIP+ nodePort时:自动被kube-proxy自动创建好的iptables规则,重定向到 tcpsocketserver_for_serviceA,该服务通过round算法转发到后端pod上
$ sudo iptables -S -t nat...-A KUBE-NODEPORT-CONTAINER -p tcp -m comment --comment "default/ssh-service1:" -m tcp --dport 30239 -j REDIRECT --to-ports 36463-A KUBE-NODEPORT-HOST -p tcp -m comment --comment "default/ssh-service1:" -m tcp --dport 30239 -j DNAT --to-destination 10.0.0.5:36463-A KUBE-PORTALS-CONTAINER -d 10.254.132.107/32 -p tcp -m comment --comment "default/ssh-service1:" -m tcp --dport 2222 -j REDIRECT --to-ports 36463-A KUBE-PORTALS-HOST -d 10.254.132.107/32 -p tcp -m comment --comment "default/ssh-service1:" -m tcp --dport 2222 -j DNAT --to-destination 10.0.0.5:36463
iptables模式:
创建服务时:
kuberpeoxy会在每个节点上创建好iptables规则
访问服务时:
直接被iptables规则重定向;(iptables probability可以实现负责均衡)
阅读全文
0 0
- kubernetes kube-proxy原理
- kubernetes源码分析 -- kube-proxy
- kube-proxy工作原理
- kube-proxy工作原理
- kubernetes之kube-proxy源码分析
- 【Kubernetes】最佳实践1:kube-proxy与服务发现
- kubernetes中port、target port、node port的对比分析,以及kube-proxy代理
- kubernetes中port、target port、node port的对比分析,以及kube-proxy代理
- kube-proxy源码分析
- [k8s]kube-proxy浅析
- kube-proxy细节分析
- kubernetes 安装配置 kube-ui
- Kubernetes kube-ui 安装部署
- kubernetes之kube-policy-controller
- kube-controller原理解析
- kubernetes集群中部署kube-ui
- kubernetes调度组件kube-scheduler源码分析
- kubernetes的kube-apiserver组件源码分析
- 统计一个数出现的次数
- 分布式系统的架构思路
- 访问标识符和Static关键字
- Navmeshagent与飞行(2)
- Python学习笔记——字符串
- kubernetes kube-proxy原理
- 骨牌铺方格
- 重要的数据结构——栈
- Binary Tree Level Order Traversal LeetCode
- 前端基础--html基础标签
- 远程连接工具
- JQuery的html和DOM的innerHTML代码(参考)
- Java反射
- [生而为人-思考] Knowledge Cooking -3rd 分享会记录