microk8s 中的简单 ubuntu pod 无法 ping 外部服务器
Simple ubuntu pod in microk8s fail to ping external servers
microk8s 中的简单 ubuntu pod 无法 ping 外部服务器。以下是部署清单。
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: myapp
name: valet-pod
spec:
selector:
matchLabels:
app: valet-pod
replicas: 1
template:
metadata:
labels:
app: valet-pod
tenantid: softwareag
spec:
containers:
- name: valet-pod
image: ubuntu
command: ["/bin/bash", "-c"]
args:
- apt-get update -y;
apt-get install -y curl traceroute net-tools iputils-ping;
echo "Sleeping for 5000";
sleep 5000;
但是,docker 容器通过 ping 任何外部服务器。
这发生在笔记本电脑的 ubuntu 18 中。以下是网络设置。
ufw allow in on cbr0
ufw default allow FORWARD
sysctl net.ipv4.ip_forward=1
可以使用什么工具来解决此类情况?
在microk8s 1.16版本中,网络接口是cni0,之前是 microk8s低版本中的cbr0。
因此,解决方法是允许接口 cni0(而不是 cbr0)上的传入数据包。
ufw allow in on cni0
这解决了问题。
microk8s 中的简单 ubuntu pod 无法 ping 外部服务器。以下是部署清单。
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: myapp
name: valet-pod
spec:
selector:
matchLabels:
app: valet-pod
replicas: 1
template:
metadata:
labels:
app: valet-pod
tenantid: softwareag
spec:
containers:
- name: valet-pod
image: ubuntu
command: ["/bin/bash", "-c"]
args:
- apt-get update -y;
apt-get install -y curl traceroute net-tools iputils-ping;
echo "Sleeping for 5000";
sleep 5000;
但是,docker 容器通过 ping 任何外部服务器。
这发生在笔记本电脑的 ubuntu 18 中。以下是网络设置。
ufw allow in on cbr0
ufw default allow FORWARD
sysctl net.ipv4.ip_forward=1
可以使用什么工具来解决此类情况?
在microk8s 1.16版本中,网络接口是cni0,之前是 microk8s低版本中的cbr0。
因此,解决方法是允许接口 cni0(而不是 cbr0)上的传入数据包。
ufw allow in on cni0
这解决了问题。