k8s内容器不可访问
来源:互联网 发布:闺蜜 礼物 知乎 编辑:程序博客网 时间:2024/05/16 05:55
k8s创建的容器从节点主机外部无法访问
我们生产环境上用的Docker还是1.12、k8s是1.5的。最近有空装了一套新版的Docker和k8s环境(ubuntu16.04+Docker17.03 + k8s 1.6.3)准备体验一下新特性的,却碰到一个坑记录一下:
问题现象:
在搭建好的k8s集群内创建的容器,只能在其所在的节点上curl可访问,但是在其他任何主机上无法访问容器占用的端口。
先是怀疑node上防火墙开着,查了一下ufw处于inactive状态,排除防火墙问题。
查了一下iptables,第二条规则先是“-P FORWARD DROP”,在底部看到我想暴露的tomcat都被ReJect了:
kube@xmk8s-node1:~$ sudo iptables -S-P INPUT ACCEPT-P FORWARD DROP-P OUTPUT ACCEPT-N DOCKER-N DOCKER-ISOLATION-N KUBE-FIREWALL-N KUBE-SERVICES-A INPUT -j KUBE-FIREWALL-A FORWARD -j DOCKER-ISOLATION-A FORWARD -o docker0 -j DOCKER-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i docker0 ! -o docker0 -j ACCEPT-A FORWARD -i docker0 -o docker0 -j ACCEPT-A OUTPUT -j KUBE-FIREWALL-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES-A DOCKER-ISOLATION -j RETURN-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP-A KUBE-SERVICES -p tcp -m comment --comment "kube-system/kubernetes-dashboard: has no endpoints" -m addrtype --dst-type LOCAL -m tcp --dport 30090 -j REJECT --reject-with icmp-port-unreachable-A KUBE-SERVICES -d 172.18.222.152/32 -p tcp -m comment --comment "kube-system/kubernetes-dashboard: has no endpoints" -m tcp --dport 9090 -j REJECT --reject-with icmp-port-unreachable-A KUBE-SERVICES -p tcp -m comment --comment "xmspace/tomcat8: has no endpoints" -m addrtype --dst-type LOCAL -m tcp --dport 30080 -j REJECT --reject-with icmp-port-unreachable-A KUBE-SERVICES -d 172.18.74.70/32 -p tcp -m comment --comment "xmspace/tomcat8: has no endpoints" -m tcp --dport 8080 -j REJECT --reject-with icmp-port-unreachable
github上有个issue《docker 1.13 container is not reachable after giving IP-address #211》
解决方案
原来安装1.13以上的Docker时把–ip-forward设成false了。
vim /etc/sysctl.conf找到这一行,放开注释# Uncomment the next line to enable packet forwarding for IPv4net.ipv4.ip_forward=1
重启主机,再查iptables -s ,第二行变成“-P FORWARD ACCEPT”,底部的几行拒绝的规则也没有了。再访问http://10.156.129.38:30080就可访问了,至此问题解决。
kube@xmk8s-node1:~$ sudo iptables -S-P INPUT ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPT-N DOCKER-N DOCKER-ISOLATION-N KUBE-FIREWALL-N KUBE-SERVICES-A INPUT -j KUBE-FIREWALL-A FORWARD -j DOCKER-ISOLATION-A FORWARD -o docker0 -j DOCKER-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A FORWARD -i docker0 ! -o docker0 -j ACCEPT-A FORWARD -i docker0 -o docker0 -j ACCEPT-A OUTPUT -j KUBE-FIREWALL-A OUTPUT -m comment --comment "kubernetes service portals" -j KUBE-SERVICES-A DOCKER-ISOLATION -j RETURN-A KUBE-FIREWALL -m comment --comment "kubernetes firewall for dropping marked packets" -m mark --mark 0x8000/0x8000 -j DROP
阅读全文
0 0
- k8s内容器不可访问
- k8s容器调度策略
- [容器]k8s常用命令
- [容器]k8s安装harbor
- [k8s]api访问初探
- [容器]kubeadm安装k8s 1.6
- DCOS之k8s的容器监测探针
- 【容器技术】k8s部署nginx集群
- 实现k8s容器的终端登录
- 容器平台选型:Docker、DC/OS、K8S ?
- 十一、容器集群的管理(k8S、Swarm)
- 外部访问JNDI容器内的JDBC数据源
- 11 :外网如何访问 docker 容器内的服务?
- IIS发布网站后,本机可访问局域网内其他机器不可访问
- k8s
- 测试PBWebForm时,IIS本机可以访问,而局域网内其他机器不可以
- CentOS7.2中使用Kubernetes(k8s)1.4.6源码搭建k8s容器集群环境
- 使用spring websocket实时读取k8s容器日志输出
- gdf
- JAVAWEB开发之redis学习(七)——key相关的通用操作
- jquery 如何获取鼠标当前位置?
- Oracle查询库中的所有表,表的字段等等操作
- python学习3——列表
- k8s内容器不可访问
- python 得到N年前或后的时间
- UVA 1597
- referred from timer.o
- 字符实体:在 HTML 中显示小于号 (<)
- final 与 static(转载)
- app基本测试流程
- android一键分享网页到朋友圈
- MySQL分布式XA事务