kubernets NodePort 无法访问

启动redis, 并以 NodePort 的方式对外暴露服务:

1
2
kubectl run redis --image='redis:alpine'
kubectl expose deploy/redis --port=6379 --protocol=TCP --target-port=6379 --name=redis-server-nodeport --type=NodePort

问题

外部访问:31572 和:31572 时均出现失败,只有通过:31572 才可正常访问

原因

为了安全起见, docker 在 1.13 版本之后,将系统iptables 中 FORWARD 链的默认策略设置为 DROP,并为连接到 docker0 网桥的容器添加了放行规则

解决

1
iptables -P FORWARD ACCEPT