【问题标题】:Kubernetes " Windows pods " not able to communicate with each other | “could not resolve host” | "failed to connect Network unreachable"Kubernetes“Windows pods”无法相互通信 | “无法解析主机” | “无法连接网络无法访问”
【发布时间】:2020-03-20 21:54:46
【问题描述】:

我为 kubernetes windows pod 部署了三个后端服务,以确保它们相互通信。但是,我发现尽管容器、服务、dns 和端点都可用并且正在运行,但是当我尝试从一个容器访问任何服务(内部或外部)到另一个容器时,它仍然无法解析 dns 并收到“可以无法解析主机”或“无法连接网络无法访问”

在尝试通过 (Resources-service) 访问人员配备或聚合器服务时,收到以下错误:

C:\WINDOWS\system32>kubectl exec -it resources-deployment-6b98d47b5b-ts674 cmd

Microsoft Windows [版本 10.0.17763.864] (c) 2018 年微软公司。保留所有权利。

C:\app\resources>卷曲http://172.20.101.110:8081/swagger/index.html curl: (7) 连接172.20.101.110 8081端口失败:网络不可达

C:\app\resources>卷曲http://aggregator-service:8081/swagger/index.html curl:(6)无法解析主机:聚合器服务

C:\app\resources>卷曲http://staffing-service:8080/swagger/index.html curl:(6)无法解析主机:staffing-service

C:\app\resources>卷曲http://172.20.5.156:8080/swagger/index.html curl: (7) 连接172.20.5.156 8080端口失败:网络不可达

C:\app\resources>ping 10.91.24.250

使用 32 字节数据 Ping 10.91.24.250: PING:传输失败。一般失败。

代码很简单,这里是完整的细节。

它是一个混合环境,有两个 windows 节点和两个 linux 节点。但是,目前的要求是仅在 windows 节点上部署以下应用程序。基础设施部署在 AWS 提供的 EKS(弹性 Kubernetes 服务)上。

三个后端(aspnet)服务是:-

  1. LoadBalancer 类型的 Staffing.yaml 文件。

  2. Resources.Yaml 类型为 NodePort

  3. Aggregator.Yaml 具有 NodePort 类型

要求 Resources API 应该能够连接到 Aggregator 和 Staffing 服务。而且 Staffing API 也可以连接到任何服务(资源和聚合器)

部署和服务 YAML 文件是:- 人员配备.yaml 文件

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: staffing-deployment
      #namespace: staffing-kube-system
      labels:
        app: staffing-app
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: staffing-app
      template:
        metadata:
          labels:
            app: staffing-app
        spec:
          nodeSelector:
           beta.kubernetes.io/os: windows
           #failure-domain.beta.kubernetes.io/zone: us-east-1a
          containers:
          - name: staffing-app
            ports:
             - name: http
               containerPort: 8080
            image: test/staffing:v1
    ##########################
    #Staffing.service.yaml file
    --- 
    apiVersion: v1
    kind: Service
    metadata: 
      labels: 
        app: staffing-app
      name: staffing-service
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
    spec: 
      ports: 
        - 
          name: http
          #nodePort: 30475
          port: 8080
          protocol: TCP
          targetPort: 8080
        - 
          name: https
          #nodePort: 30476
          port: 443
          protocol: TCP
          targetPort: 44346
      selector: 
        app: staffing-app
      type: LoadBalancer

resources.service.deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: resources-deployment
  #namespace: staffing-kube-system
  labels:
    app: resources-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: resources-app
  template:
    metadata:
      labels:
        app: resources-app
    spec:
      nodeSelector:
       beta.kubernetes.io/os: windows
       #failure-domain.beta.kubernetes.io/zone: us-east-1a
      containers:
      - name: resources-app
        ports:
         - name: http
           containerPort: 8001
        image: test/resources:v1
################
#resources.service.yaml
apiVersion: v1
kind: Service
metadata: 
  labels: 
    app: resources-app
  name: resources-service
 spec: 
  ports: 
    - 
      name: http
      #nodePort: 30475
      port: 8001
      protocol: TCP
      targetPort: 8001
    - 
      name: https
      #nodePort: 30476
      port: 443
      protocol: TCP
      targetPort: 44345
  selector: 
    app: resources-app
  type: NodePort

aggregator.service.deplpoyment.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: aggegator-deployment
      #namespace: staffing-kube-system
      labels:
        app: aggegator-app
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: aggregator-app
      template:
        metadata:
          labels:
            app: aggregator-app
        spec:
          nodeSelector:
           beta.kubernetes.io/os: windows
           #failure-domain.beta.kubernetes.io/zone: us-east-1a
          containers:
          - name: aggregator-app
            ports:
             - name: http
               containerPort: 8001
            image: test/aggregator:v1
 ################
    #aggregator.service.yaml
        apiVersion: v1
        kind: Service
        metadata: 
          labels: 
            app: resources-app
          name: resources-service
         spec: 
          ports: 
            - 
              name: http
              #nodePort: 30475
              port: 8001
              protocol: TCP
              targetPort: 8001
            - 
              name: https
              #nodePort: 30476
              port: 443
              protocol: TCP
              targetPort: 44345
          selector: 
            app: resources-app
          type: NodePort

Pod 和服务的输出

C:\WINDOWS\system32>kubectl get pods -o wide
NAME                                    READY   STATUS    RESTARTS   AGE     IP             NODE                           NOMINATED NODE   READINESS GATES
aggegator-deployment-64497699d-792dd    1/1     Running   0          2d12h   10.91.25.210   ip-10-91-25-125.ec2.internal   <none>           <none>
aggegator-deployment-64497699d-tfsww    1/1     Running   0          2d12h   10.91.24.250   ip-10-91-24-148.ec2.internal   <none>           <none>
resources-deployment-6b98d47b5b-7x8fv   1/1     Running   0          2d13h   10.91.25.197   ip-10-91-25-125.ec2.internal   <none>           <none>
resources-deployment-6b98d47b5b-ts674   1/1     Running   0          2d13h   10.91.24.122   ip-10-91-24-148.ec2.internal   <none>           <none>
staffing-deployment-797464966d-4j4nc    1/1     Running   0          2d16h   10.91.24.224   ip-10-91-24-148.ec2.internal   <none>           <none>
staffing-deployment-797464966d-mrw7x    1/1     Running   0          2d17h   10.91.24.113   ip-10-91-24-148.ec2.internal   <none>           <none>




C:\WINDOWS\system32>kubectl get services -o wide
NAME                         TYPE           CLUSTER-IP       EXTERNAL-IP                                                                        PORT(S)                        AGE     SELECTOR
aggregator-service           NodePort       172.20.101.110   <none>                                                                             8081:32246/TCP,443:30240/TCP   2d12h   app=aggregator-app
kubernetes                   ClusterIP      172.20.0.1       <none>                                                                             443/TCP                        21d     <none>
resources-service            NodePort       172.20.228.37    <none>                                                                             8001:31365/TCP,443:31686/TCP   2d13h   app=resources-app
staffing-service             LoadBalancer   172.20.5.156     internal-af561cd570d0d11eab0c00a891642f9b-874414568.us-east-1.elb.amazonaws.com    8080:30010/TCP,443:31327/TCP   2d17h   app=staffing-app



C:\WINDOWS\system32>kubectl get pods --selector="app=resources-app"
NAME                                    READY   STATUS    RESTARTS   AGE
resources-deployment-6b98d47b5b-7x8fv   1/1     Running   0          2d21h
resources-deployment-6b98d47b5b-ts674   1/1     Running   0          2d21h

C:\WINDOWS\system32>kubectl get pods --selector="app=aggregator-app"
NAME                                   READY   STATUS    RESTARTS   AGE
aggegator-deployment-64497699d-792dd   1/1     Running   0          2d20h
aggegator-deployment-64497699d-tfsww   1/1     Running   0          2d20h

C:\WINDOWS\system32>kubectl get pods --selector="app=staffing-app"
NAME                                   READY   STATUS    RESTARTS   AGE
staffing-deployment-797464966d-4j4nc   1/1     Running   0          3d
staffing-deployment-797464966d-mrw7x   1/1     Running   0          3d1h


C:\WINDOWS\system32>kubectl get endpoints
NAME                         ENDPOINTS                                                             AGE
aggregator-service           10.91.24.250:8081,10.91.25.210:8081,10.91.24.250:44347 + 1 more...    2d20h
kubernetes                   10.91.24.167:443,10.91.25.120:443                                     22d
resources-service            10.91.24.122:8001,10.91.25.197:8001,10.91.24.122:44345 + 1 more...    2d21h
staffing-service             10.91.24.113:44346,10.91.24.224:44346,10.91.24.113:8080 + 1 more...   3d2h

> Kubectl logs

C:\WINDOWS\system32>kubectl get pods --namespace=kube-system -l k8s-app=kube-dns
NAME                       READY   STATUS    RESTARTS   AGE
coredns-8455f84f99-d6v75   1/1     Running   0          21d
coredns-8455f84f99-jf7tz   1/1     Running   0          21d

C:\WINDOWS\system32>kubectl logs coredns-8455f84f99-jf7tz  -n kube-system
.:53
2019-11-03T14:27:30.347Z [INFO] CoreDNS-1.3.1
2019-11-03T14:27:30.347Z [INFO] linux/amd64, go1.10.8, 6b56a9c9
CoreDNS-1.3.1
linux/amd64, go1.10.8, 6b56a9c9
2019-11-03T14:27:30.347Z [INFO] plugin/reload: Running configuration MD5 = 86a350d0c3832da65c10531b445c45d5
[INFO] Reloading
2019-11-25T07:00:09.649Z [INFO] plugin/reload: Running configuration MD5 = ebe4e401326d5dac294cde91064e2e76
[INFO] Reloading complete
2019-11-25T11:38:44.107Z [INFO] 10.91.24.148:57354 - 8232 "A IN . udp 17 false 512" NOERROR qr,rd,ra 92 0.000084547s
2019-11-25T11:38:44.113Z [INFO] 10.91.24.148:57364 - 33842 "A IN . udp 17 false 512" NOERROR qr,rd,ra 92 0.000059248s
2019-11-25T11:39:15.287Z [INFO] 10.91.24.148:57366 - 23694 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.003154278s
2019-11-25T11:39:15.331Z [INFO] 10.91.24.148:57366 - 23694 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.069842673s
2019-11-25T11:39:15.615Z [INFO] 10.91.25.125:61221 - 24722 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.000102425s
2019-11-25T11:39:17.575Z [INFO] 10.91.25.125:61223 - 8379 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.000096859s
2019-11-25T11:39:18.925Z [INFO] 10.91.25.125:61239 - 49217 "A IN settings-win.data.microsoft.com. udp 49 false 512" NOERROR qr,rd,ra 176 0.030653295s
2019-11-25T11:39:19.006Z [INFO] 10.91.25.125:61239 - 49217 "A IN settings-win.data.microsoft.com. udp 49 false 512" NOERROR qr,rd,ra 176 0.142995164s
2019-11-25T11:39:19.205Z [INFO] 10.91.25.125:61241 - 25186 "A IN settings-win.data.microsoft.com. udp 49 false 512" NOERROR qr,rd,ra 176 0.000088335s
2019-11-25T11:39:43.422Z [INFO] 10.91.25.125:61257 - 26043 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.013510742s
2019-11-25T11:39:44.129Z [INFO] 10.91.24.148:57368 - 382 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.013958603s
2019-11-25T11:39:44.270Z [INFO] 10.91.25.125:61261 - 53992 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.014368787s
2019-11-25T11:39:44.981Z [INFO] 10.91.24.148:57370 - 41136 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.014143535s
2019-11-25T11:40:15.649Z [INFO] 10.91.25.125:61231 - 53428 "A IN ctldl.windowsupdate.com. udp 41 false 512" NOERROR qr,rd,ra 355 0.013625947s
2019-11-25T11:40:45.838Z [INFO] 10.91.24.148:57372 - 36065 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.013761424s
2019-11-25T11:40:46.688Z [INFO] 10.91.24.148:57382 - 26755 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.01357897s
2019-11-25T11:40:51.896Z [INFO] 10.91.24.148:57388 - 607 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.033610722s
2019-11-25T11:40:52.006Z [INFO] 10.91.24.148:57388 - 607 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.11348618s
2019-11-25T11:41:46.839Z [INFO] 10.91.25.125:61227 - 9202 "A IN . udp 17 false 512" SERVFAIL qr,rd,ra 17 0.013585559s
2019-11-25T11:41:47.553Z [INFO] 10.91.24.148:57339 - 12070 "A IN . udp 17 false 512" NOERROR qr,rd,ra 92 0.001922224s
2019-11-25T11:41:48.403Z [INFO] 10.91.24.148:57341 - 52311 "A IN . udp 17 false 512" NOERROR qr,rd,ra 92 0.000091287s
2019-11-25T11:42:04.827Z [INFO] 10.91.24.148:57343 - 23836 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.028061963s
2019-11-25T11:42:04.827Z [INFO] 10.91.24.148:57343 - 23836 "A IN v10.events.data.microsoft.com. udp 47 false 512" NOERROR qr,rd,ra 284 0.004729734s
2019-11-25T11:42:13.855Z [hINFO] 10.91.24.148:57344 - 62298 "A IN ctldl.windowsupdate.com. udp 41 false 512" NOERROR qr,rd,ra 540 0.012435227s

对此的任何帮助将不胜感激。谢谢

【问题讨论】:

  • 您在尝试访问该服务的 pod 所在的同一命名空间中是否有一个名为 aggregator-service 的服务?
  • 描述每个服务以检查每个 pod 的端点是否被映射
  • @suren 是的,它们都在同一个 default 命名空间中。 [NAMESPACE NAME default aggregator-service-ip default kubernetes default resources-service default resources-service-ip default staffing-service default windows-server-iis-service kube-system kube-controller-manager kube-system kube-dns kube-system kube-scheduler kube-system vpc-admission-webhook ]
  • @paltaa 是的,每个服务都映射到一个 pod,请在上面提供的 pod 和服务的输出中查看相同的内容。
    C:\WINDOWS\system32&gt;kubectl get pods --selector="app=aggregator-app" NAME READY STATUS RESTARTS AGE aggegator-deployment-64497699d-792dd 1/1 Running 0 2d20h aggegator-deployment-64497699d-tfsww 1/1 Running 0 2d20h
  • 如果你 kubectl exec -ti bash,然后 telnet 端口,对于你试图达到的集群 ip 是否有效?你确定每个 pod 都打开了相关的 pod 吗?

标签: kubernetes kubernetes-ingress kubernetes-pod amazon-eks windows-container


【解决方案1】:

问题出在服务定义中,其中 Kubernetes 文件中定义的端口与代码中定义的端口冲突。

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 2019-10-30
    • 1970-01-01
    • 2018-12-16
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多