一   externalTrafficPolicy 属性再探

一次网络不通”争吵”引发的思考

K8s中的external-traffic-policy是什么?

说明阿里云的 'EDAS 和ACK'的默认行为'不一样'

Kubernetes(二十三)Service(二)会话保持和获取客户端的ip

访问 externalTrafficPolicy 为 Local 的 Service 对应 LB 有时超时

k8s svc的externalTrafficPolicy属性 跨node不通 保留客户端源IP

kubernetes svc设置externalTrafficPolicy无法访问题

访问'没有'Endpoint节点的NodePort,'不能通'

原因: 因为节点上'没有'相关的'ipvs转发规则',所以'无法'进行dnat,访问会'失败'

说明常见有'两种'行为

备注:

 1、当externalTrafficPolicy取值为'Local'时

 2、通过'节点IP:服务端口'的请求只会转发给'本节点上的Pod',如果节点'没有Pod'话请求会'挂起'

观察点: '没有' endpoint的节点的 'SLB IP' 的IPVS 的'规则'  --> SLB的'规则'后端节点

现象: 通过k8s的'svc提供的域名',竟然'时通时不通' --> '两个实例'

kubernetes - "externalTrafficPolicy"设置为 "Local"时无响应

集群内无法访问Service的说明

抓包分析当svc externalTrafficPolicy=Local 时,进入容器中的包是否进行源地址转换

①  Local值和Cluster值的差异性

kubectl explain svc.spec.externalTrafficPolicy

   1、集群级别 'Cluster'  --> "默认","不会保留源ip"

   2、节点级别 'Local'  
  
外部策略为'Local/Cluster',所有集群节点创建'ipvs规则'是有'区别'的

ServiceInternalTrafficPolicy特性在'1.22'的K8s中'默认'开启

Service'选择一个Pod'转发到该Pod,但Service选择的Pod'不一定在接收请求的节点上'

思考1: 'Local'可以获取客户端ip的'原因?'

思考2: 在集群内'没有对应endpoint'的'节点上或pod内'通过'svc ip'访问,为什么'时通时不通'?

原因curl svc_ip:port 时,由于是'Local','ep有两个实例',但是'接收'流量的节点上没有pod

注意:  访问 svc 'Local' 的服务时,一定要注意'访问节点ip上'面要有svc关联 Pod 调度

k8s中的'实例'通常称之为'endpoint'

首先在'Cluster'模式下,ipvs模式下,流量到达'非pod 所在的节点'时,会再做一次'FULL-NAT'

细节:

 1、 Kube-proxy在做'转发'时候,会做一次'SNAT' (source network address translation)

 2、 所以'源IP'变成了'首先接收请求'的'节点' ip地址

②  k8s ipvs模式常用命令

需求查询某个 '虚拟ip' 地址的详细信息

ipvsadmn -ln -t vip:port

-g: --gatewaying, 指定LVS工作模式为'Direct-routing 直接路由'方式,是'LVS'默认工作模式

-i: --ipip, 指定LVS的工作模式为'隧道封装'模式

-m:--masquerading, 指定LVS的工作模式为'MAT'模式 --> 'NAT'和'Full-Nat'模式

conntrack -L | grep 'ip'

误区: pod服务'启动'有这个端口,但是没有通过任何形式'暴露'端口,所以'除了该pod内'都无法访问

 ③  ACK云产品的Service 

说明: 以下讲解ACK 的'flannel' 网络插件

Service异常问题排查

一个pod里面'/etc/resolv.conf' 会'添加'一个东西: ns.svc.cluster.ip

集群内无法访问SLB

使用Service对外暴露应用

阿里负载均衡'SLB'服务'现在叫CLB'

通过使用自动创建SLB的服务公开应用

Service的负载均衡配置注意事项

遗留: kubectl explain svc.spec.sessionAffinity

原文地址:https://blog.csdn.net/wzj_110/article/details/134743610

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_23208.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注