kubernetes 无法从pod连接internet/google.com,Docker和k8能够提取图像

ni65a41a  于 2022-11-21  发布在  Kubernetes
关注(0)|答案(2)|浏览(149)

我在学Kubernetes
使用以下步骤在Oracle云上创建单节点Kubernetes集群here

cat /etc/resolv.conf
>> nameserver 169.254.169.254

kubectl run busybox --rm -it --image=busybox --restart=Never -- sh
cat /etc/resolv.conf
>> nameserver 10.33.0.10

nslookup google.com
>>Server:         10.33.0.10
Address:        10.33.0.10:53

;; connection timed out; no servers could be reached

ping 10.33.0.10
>>PING 10.33.0.10 (10.33.0.10): 56 data bytes

kubectl get svc  -n kube-system -o wide
>> CLUSTER-IP - 10.33.0.10

kubectl logs --namespace=kube-system -l k8s-app=kube-dns
>>[ERROR] plugin/errors: 2 google.com. A: read udp 10.32.0.9:57385->169.254.169.254:53: i/o timeout

无法确定这是coredns还是pod networking错误。任何方向都将非常有用

sdnqo3pr

sdnqo3pr1#

  • Kubernetes 在 v1.20 之后 已 弃 用 Docker 作为 容器 运行 时 。
  • Kubernetes 开发 决定 弃 用 Docker 作为 底层 运行 时 , 而 使用 为 Kubernetes 创建 的 容器 运行 时 接口 ( CRI ) 。
  • 为了 支持 这 一 点 , Mirantis 和 Docker 同意 合作 维护 独立 的 shim 代码 。

更多 详情 herehere

sudo systemctl enable docker
# -- Installin cri-dockerd
VER=$(curl -s https://api.github.com/repos/Mirantis/cri-dockerd/releases/latest|grep tag_name | cut -d '"' -f 4)
echo $VER
wget https://github.com/Mirantis/cri-dockerd/releases/download/${VER}/cri-dockerd-${VER}-linux-arm64.tar.gz
tar xvf cri-dockerd-${VER}-linux-arm64.tar.gz
install -o root -g root -m 0755 cri-dockerd /usr/bin/cri-dockerd
cp cri-dockerd /usr/bin/
# -- Verification
cri-dockerd --version
# -- Configure systemd units for cri-dockerd
wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service
wget https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.socket
sudo cp cri-docker.socket cri-docker.service /etc/systemd/system/ 
sudo cp cri-docker.socket cri-docker.service /usr/lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable cri-docker.service
sudo systemctl enable --now cri-docker.socket
# -- Using cri-dockerd on new Kubernetes cluster
systemctl status docker | grep Active

中 的 每 一 个

bxpogfeg

bxpogfeg2#

我遇到了与上述情况几乎相同的类似问题。公认的解决方案https://stackoverflow.com/a/72104194/1119570是错误的。此问题是一个纯粹的网络问题,与任何EKS升级都没有任何关系。我们问题的根本原因是我们的安全部门正在加强工作节点AWS EKS Linux 1.21 AMI,这将关闭此文件/etc/sysctl.conf中的以下设置:
net.ipv4.ip_forward = 0将此设置切换为以下内容后:net.ipv4.ip_forward = 1并重新启动EC2节点,一切都开始正常工作。希望这能有所帮助!

相关问题