curl不通 k8s_解决k8s无法通过svc访问其他节点pod的问题

本文档描述了一个在Kubernetes(k8s)环境中遇到的问题,即通过svc无法稳定地访问到不同节点上的pod。问题原因是由于使用VirtualBox虚拟机并采用双网卡方案,flannel默认使用了NAT地址转换的网卡,导致跨节点通信失败。解决方案是通过编辑flannel的daemonset配置,手动指定--iface参数使用Host-only网卡进行通信,从而修复了问题。
摘要由CSDN通过智能技术生成

问题描述

有两个(或多个)运行在不同节点上的pod,通过一个svc提供服务,如下:

root@master1:~# kubectl get pod -o wide

NAME READY STATUS RESTARTS AGE IP NODE

kubia-nwjcc 1/1 Running 0 33m 10.244.1.27 worker1

kubia-zcpbb 1/1 Running 0 33m 10.244.2.11 worker2

root@master1:~# kubectl get svc kubia

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubia ClusterIP 10.98.41.49 80/TCP 34m

当透过其他pod访问该svc时(使用命令k exec kubia-nwjcc -- curl http://10.98.41.49),出现了只能访问到和自己同处于一个节点的pod的问题,访问到其他节点上的pod时会出现command terminated with exit code 7的问题,如下:

正常访问到相同节点的pod

root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 23 0 23 0 0 8543 0 --:--:-- --:--:-- --:--:-- 11500

You've hit kubia-nwjcc

无法访问其他节点的pod

root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0

curl: (7) Failed to connect to 10.98.41.49 port 80: No route to host

command terminated with exit code 7

本问题随机发生,如下:

root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49

You've hit kubia-nwjcc

root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49

command terminated with exit code 7

root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49

command terminated

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值