无法从部署在工作节点上的 Pod 执行 ping 操作

Can't to able to ping from pod deployed on worker node

我有一个主节点和一个工作节点

在工作节点上,我只是 运行 2 个命令

a)kubeadm reset
b)kubeadm join ......... ..... ..... ....

那么我是否需要像我在主节点上所做的那样做任何事情?

a)kubeadm init
b)kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

因为我还没有完成 kubeadm init 因为我认为它会成为主节点, 无论如何,我无法使用任何命令,如 kubectl get nodes、kubectl get pods.

我的主节点和工作节点状态都准备好了

我在主节点上部署了一个 pod,我可以 ping www.google.com

但是当我使用

部署一个 pod 时
spec:
     nodeSelector :
       nodeName : nodeName

所以我使用标签在 Worker 节点上成功部署了 pod

但我无法在 pod 内 ping

主节点的命令输出:-

aquilak8suser@ip-172-31-6-149:/$ kubectl get nodes
NAME              STATUS   ROLES    AGE     VERSION
ip-172-31-11-87   Ready    <none>   4h35m   v1.13.3
ip-172-31-6-149   Ready    master   11h     v1.13.3




aquilak8suser@ip-172-31-6-149:/$ kubectl get pods -n kube-system -o wide
NAME                                       READY   STATUS    RESTARTS   AGE     IP               NODE              NOMINATED NODE   READINESS GATES
calico-kube-controllers-5f454f49dd-75r5w   1/1     Running   0          11h     192.168.179.67   ip-172-31-6-149   <none>           <none>
calico-node-298r4                          0/1     Running   0          11h     172.31.6.149     ip-172-31-6-149   <none>           <none>
calico-node-5979v                          0/1     Running   0          4h37m   172.31.11.87     ip-172-31-11-87   <none>           <none>
coredns-86c58d9df4-6rzt2                   1/1     Running   0          11h     192.168.179.65   ip-172-31-6-149   <none>           <none>
coredns-86c58d9df4-722tb                   1/1     Running   0          11h     192.168.179.66   ip-172-31-6-149   <none>           <none>
etcd-ip-172-31-6-149                       1/1     Running   0          11h     172.31.6.149     ip-172-31-6-149   <none>           <none>
kube-apiserver-ip-172-31-6-149             1/1     Running   0          11h     172.31.6.149     ip-172-31-6-149   <none>           <none>
kube-controller-manager-ip-172-31-6-149    1/1     Running   0          11h     172.31.6.149     ip-172-31-6-149   <none>           <none>
kube-proxy-496gh                           1/1     Running   0          4h37m   172.31.11.87     ip-172-31-11-87   <none>           <none>
kube-proxy-7684r                           1/1     Running   0          11h     172.31.6.149     ip-172-31-6-149   <none>           <none>
kube-scheduler-ip-172-31-6-149             1/1     Running   0          11h     172.31.6.149     ip-172-31-6-149   <none>           <none>

aquilak8suser@ip-172-31-6-149:/$ kubectl logs coredns-86c58d9df4-6rzt2 --tail=200 -n kube-system
.:53
2019-06-06T04:20:31.271Z [INFO] CoreDNS-1.2.6
2019-06-06T04:20:31.271Z [INFO] linux/amd64, go1.11.2, 756749c
CoreDNS-1.2.6
linux/amd64, go1.11.2, 756749c
 [INFO] plugin/reload: Running configuration MD5 = f65c4821c8a9b7b5eb30fa4fbc167769


root@spring-boot-demo-pricing-66f668cbb4-q5dc2:/# cat /etc/resolv.conf
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local us-east-2.compute.internal
options ndots:5
root@spring-boot-demo-pricing-66f668cbb4-q5dc2:/#
  1. 不,您不需要在工作节点中 运行 kubeadm initkubectl apply -f "https://cloud.weave......Check

  2. 要从工作节点使用 kubectl 命令,您需要将 /etc/kubernetes/admin.conf 文件传输到工作节点并将其放入 /{username}/.kube/config

scp /etc/kubernetes/admin.conf {workerNoderUser}@{workerNoderIP}:/{username}/.kube/config

传输配置后,您也可以 运行 工作节点中的 kubectl 命令。

  1. 无法从工作节点的 pod ping 通的原因有很多。首先检查您的工作节点本身是否可以 ping 到 google.com。如果可行,则检查您的集群 dns,它是 kube-dns 或 coredns,检查它们的日志以及它们是否健康。您也可以尝试删除 /etc/resolv.conf 并添加 public dns 服务器,如 google 的 (8.8.8.8)。最后大家可以关注this