Curl 库伯内特斯网络问题

Curl 库伯内特斯网络问题,curl,networking,kubernetes,kube-proxy,coredns,Curl,Networking,Kubernetes,Kube Proxy,Coredns,我在Ubuntu 16.04机器上设置Kubernetes群集时遇到问题,我已正确设置: 主节点(机器IP:10.10.1.122) 工作节点(机器IP:10.10.1.38) 使用以下信息进入群集: NAME READY STATUS RESTARTS AGE pod/coredns-86c58d9df4-78lnp 1/1 Running 0

我在Ubuntu 16.04机器上设置Kubernetes群集时遇到问题,我已正确设置:

  • 主节点(机器IP:10.10.1.122)
  • 工作节点(机器IP:10.10.1.38)
  • 使用以下信息进入群集:

        NAME                                        READY   STATUS    RESTARTS   AGE
    pod/coredns-86c58d9df4-78lnp                1/1     Running   0          80m
    pod/coredns-86c58d9df4-lw7vl                1/1     Running   0          80m
    pod/etcd-di-linux-host                      1/1     Running   0          111m
    pod/kube-apiserver-di-linux-host            1/1     Running   0          110m
    pod/kube-controller-manager-di-linux-host   1/1     Running   0          111m
    pod/kube-flannel-ds-amd64-6wvkh             1/1     Running   0          109m
    pod/kube-flannel-ds-amd64-p7ftb             1/1     Running   0          110m
    pod/kube-proxy-rbfvz                        1/1     Running   0          109m
    pod/kube-proxy-zwr7b                        1/1     Running   0          111m
    pod/kube-scheduler-di-linux-host            1/1     Running   0          111m
    pod/kubernetes-dashboard-79ff88449c-9f8qw   1/1     Running   0          89m
    
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)         AGE
    service/kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP   111m
    service/kubernetes-dashboard   ClusterIP   10.98.188.215   <none>        443/TCP         89m
    
    NAME                                     DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                     AGE
    daemonset.apps/kube-flannel-ds-amd64     2         2         2       2            2           beta.kubernetes.io/arch=amd64     110m
    daemonset.apps/kube-flannel-ds-arm       0         0         0       0            0           beta.kubernetes.io/arch=arm       110m
    daemonset.apps/kube-flannel-ds-arm64     0         0         0       0            0           beta.kubernetes.io/arch=arm64     110m
    daemonset.apps/kube-flannel-ds-ppc64le   0         0         0       0            0           beta.kubernetes.io/arch=ppc64le   110m
    daemonset.apps/kube-flannel-ds-s390x     0         0         0       0            0           beta.kubernetes.io/arch=s390x     110m
    daemonset.apps/kube-proxy                2         2         2       2            2           <none>                            111m
    
    NAME                                   READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/coredns                2/2     2            2           111m
    deployment.apps/kubernetes-dashboard   1/1     1            1           89m
    
    NAME                                              DESIRED   CURRENT   READY   AGE
    replicaset.apps/coredns-86c58d9df4                2         2         2       111m
    replicaset.apps/kubernetes-dashboard-79ff88449c   1         1         1       89m
    
    我的豆荚

    NAME                     READY   STATUS    RESTARTS   AGE
    guids-68898f7dc9-c65nv   1/1     Running   0          102m
    Name:               guids-68898f7dc9-c65nv
    Namespace:          default
    Priority:           0
    PriorityClassName:  <none>
    Node:               gmf.com/10.10.1.38
    Start Time:         Sun, 16 Dec 2018 15:43:41 +0200
    Labels:             pod-template-hash=68898f7dc9
                        run=guids
    Annotations:        <none>
    Status:             Running
    IP:                 10.244.1.15
    Controlled By:      ReplicaSet/guids-68898f7dc9
    Containers:
      guids:
        Container ID:   docker://125ceccad4e572b514538292aaeaa55e22050c5e9129f834de8e01dfd452c6c1
        Image:          alexellis2/guid-service:latest
        Image ID:       docker-pullable://alexellis2/guid-service@sha256:17207f799760ccdccd0fa1e7f37838af5df915a33f9f27e97951a6eeee8c3a6f
        Port:           9000/TCP
        Host Port:      0/TCP
        State:          Running
          Started:      Sun, 16 Dec 2018 15:43:46 +0200
        Ready:          True
        Restart Count:  0
        Environment:    <none>
        Mounts:
          /var/run/secrets/kubernetes.io/serviceaccount from default-token-hnwtc (ro)
    Conditions:
      Type              Status
      Initialized       True 
      Ready             True 
      ContainersReady   True 
      PodScheduled      True 
    Volumes:
      default-token-hnwtc:
        Type:        Secret (a volume populated by a Secret)
        SecretName:  default-token-hnwtc
        Optional:    false
    QoS Class:       BestEffort
    Node-Selectors:  <none>
    Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                     node.kubernetes.io/unreachable:NoExecute for 300s
    Events:          <none>
    
    名称就绪状态重新启动
    guids-68898f7dc9-c65nv 1/1运行0 102m
    名称:guids-68898f7dc9-c65nv
    名称空间:默认值
    优先级:0
    PriorityClassName:
    节点:gmf.com/10.10.1.38
    开始时间:2018年12月16日星期日15:43:41+0200
    标签:pod模板哈希=68898f7dc9
    run=guids
    注释:
    状态:正在运行
    IP:10.244.1.15
    控制人:ReplicaSet/guids-68898f7dc9
    容器:
    指南:
    容器ID:docker://125ceccad4e572b514538292aaeaa55e22050c5e9129f834de8e01dfd452c6c1
    图像:alexellis2/guid服务:最新
    图像ID:docker-pullable://alexellis2/guid-service@sha256:17207F799760CCDCCD0FA1E7F37838AF5DF915A33F9F27E97951A6EE8C3A6F
    端口:9000/TCP
    主机端口:0/TCP
    状态:正在运行
    开始时间:2018年12月16日星期日15:43:46+0200
    准备好了吗
    重新启动计数:0
    环境:
    挂载:
    /来自默认令牌hnwtc(ro)的var/run/secrets/kubernetes.io/serviceCount
    条件:
    类型状态
    初始化为True
    准备好了吗
    集装箱准备好了吗
    播客预定为真
    卷数:
    默认令牌hnwtc:
    类型:Secret(由Secret填充的卷)
    SecretName:默认令牌hnwtc
    可选:false
    QoS等级:最佳努力
    节点选择器:
    容差:node.kubernetes.io/未就绪:不执行300秒
    node.kubernetes.io/不可访问:不执行300秒
    活动:
    
    我在这里面临的问题是,每当我想从主节点卷曲服务或pod IP时,它永远不会命中,同时从工作节点卷曲服务/pod很好,我是Kubernetes的新手,但我找不到任何线索如何诊断这个问题,任何帮助都将不胜感激

    当我尝试卷曲公开的服务时,即使我从主服务器得到了以下结果:

    NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
    guids        ClusterIP   10.97.160.160   <none>        9000/TCP   92m
    kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP    139m
    ubuntu@master:/$ curl http://10.97.160.160:9000/guid
    curl: (7) Failed to connect to 10.97.160.160 port 9000: Connection timed out
    
    名称类型群集IP外部IP端口
    GUID群集IP 10.97.160.160 9000/TCP 92m
    kubernetes ClusterIP 10.96.0.1 443/TCP 139m
    ubuntu@master:/$curlhttp://10.97.160.160:9000/guid
    curl:(7)未能连接到10.97.160.160端口9000:连接超时
    
    可从其他节点访问的pod IP和可从kubernetes群集中的pod访问的clusterIP

    服务的ClusterIP不是pod的IP地址,它是一个虚拟地址,根据服务中定义的规则映射到pod的IP地址,并由kubernetes集群中的
    kube proxy
    守护程序管理

    ClusterIP特别适用于集群内的通信,以访问服务背后的pod,而无需考虑pod的副本数量或存在于哪个节点pod上,并且ClusterIP与pod的IP不同,是静态的

    如果可以,请阅读服务IP在中的工作原理

    我希望您遵循一些调试步骤:

    您可以使用以下方法检查您的服务名称是否从pod内部解析为ClusterIP:

    kubectl exec -it <pod_name> bash
    nslookup  <svc_name>.<namespace>.svc.cluster.local
    
    kubectl exec-it bash
    nslookup..svc.cluster.local
    
    上面的命令将为您提供服务的clusterIP


    检查工作节点是否可以从主节点ping,如果不是,则表示覆盖网络存在问题,在您的情况下,它是法兰绒的。

    同意Prafull Ladha的回答。此外,如果要卷曲公开的服务,可以使用NodPort()。只需更新服务并使用该节点端口即可访问该服务。谢谢,@Prafull,为了在pod内运行命令,我尝试运行上述命令,但出现了kubectl exec-it guids-68898f7dc9-vlrsn bash错误来自服务器:错误拨号后端:拨号tcp 10.10.1.38:10250:i/o超时从主节点ping工作节点一切正常ubuntu@master:~$ping 10.10.1.38 ping 10.10.1.38(10.10.1.38)56(84)字节的数据。来自10.10.1.38的64字节:icmp_seq=1 ttl=64 time=0.267 ms@HansikaMadushanWeerasena我也尝试从主节点(不是外部)卷曲POD IP,但没有成功。请检查kubelet日志,它是否一次又一次地重新启动?kubelet日志怎么说,10250是kubelet港口。使用:`journalctl-xfe-u kubelet`@PrafullLadha
    master kubelet[7433]:I1216 15:28:39.205823 7433服务器检查kubelet日志。go:137]开始在0.0.0.0:10250
    上侦听之前,coredns出现了一个问题,它正在执行CrashLoopBackoff,但我作为一种解决方法解决了这个问题,它自己从worker nodekubelet日志中正确运行的pod是巨大的,你必须得到更多的东西,你能在一个文件中获取一些kubelet日志并附加在问题本身中吗。
    kubectl exec -it <pod_name> bash
    nslookup  <svc_name>.<namespace>.svc.cluster.local