Can't able to connect to pod deployed on Other Nodes

6/13/2019

I have a 2 node kubernetes cluster, a master and one worker nodes on AWS that I created with kubeadm (https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/) and I am using Calico Networking.

kubectl get nodes gives worker Node status as Ready.

I have created deployments(for some deployement use selector as workerNode label) from the master node and I can see that pods are created on the worker node for some of the deployments. But the issue is I can't access the pod ip(kubectl get ep) from the master or from the other node. So the pod ip is only accessible on the node where is pod is running.

Do I need to do any setting to access Pod of worker Node from Master Node?

One Observation is that enpoints deployed on masterNode are as 192.168.179.101,192.168.179.105 and for Worker Node are as 192.168.97.5,192.168.97.8

Thanks.

aquilak8suser@ip-172-31-6-149:~$ kubectl get nodes -o wide
NAME              STATUS   ROLES    AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION    CONTAINER-RUNTIME
ip-172-31-6-149   Ready    master   8d      v1.14.3   172.31.6.149   <none>        Ubuntu 18.04.2 LTS   4.15.0-1040-aws   docker://18.9.6
k8s-workernode1   Ready    <none>   2d14h   v1.14.3   172.31.11.87   <none>        Ubuntu 18.04.2 LTS   4.15.0-1040-aws   docker://18.9.6


aquilak8suser@ip-172-31-6-149:~$ kubectl get --all-namespaces pods -o wide
    NAMESPACE     NAME                                          READY   STATUS    RESTARTS   AGE     IP               NODE              NOMINATED NODE   READINESS GATES
    default       busybox                                       1/1     Running   2          14h     192.168.97.14    k8s-workernode1   <none>           <none>
    default       spring-boot-demo-action-767dc76c9c-jdrkz      1/1     Running   1          19h     192.168.97.17    k8s-workernode1   <none>           <none>
    default       spring-boot-demo-billing-74f7b6f64-6t2jz      1/1     Running   2          18h     192.168.97.15    k8s-workernode1   <none>           <none>
    default       spring-boot-demo-collector-67665bffc6-mhb59   1/1     Running   1          18h     192.168.97.16    k8s-workernode1   <none>           <none>
    default       spring-boot-demo-model-6d96bc89c8-llmh7       1/1     Running   1          18h     192.168.97.18    k8s-workernode1   <none>           <none>
    default       spring-boot-demo-web-7c945ddcdc-9g2tj         1/1     Running   1          19h     192.168.179.67   ip-172-31-6-149   <none>           <none>
    kube-system   calico-kube-controllers-5f454f49dd-75r5w      1/1     Running   5          8d      192.168.179.66   ip-172-31-6-149   <none>           <none>
    kube-system   calico-node-298r4                             0/1     Running   5          8d      172.31.6.149     ip-172-31-6-149   <none>           <none>
    kube-system   calico-node-7vndt                             0/1     Running   2          2d14h   172.31.11.87     k8s-workernode1   <none>           <none>
    kube-system   coredns-fb8b8dccf-6qrl7                       1/1     Running   2          2d14h   192.168.179.70   ip-172-31-6-149   <none>           <none>
    kube-system   coredns-fb8b8dccf-txdz8                       1/1     Running   2          2d14h   192.168.179.71   ip-172-31-6-149   <none>           <none>
    kube-system   etcd-ip-172-31-6-149                          1/1     Running   2          2d14h   172.31.6.149     ip-172-31-6-149   <none>           <none>
    kube-system   kube-apiserver-ip-172-31-6-149                1/1     Running   2          2d14h   172.31.6.149     ip-172-31-6-149   <none>           <none>
    kube-system   kube-controller-manager-ip-172-31-6-149       1/1     Running   2          2d14h   172.31.6.149     ip-172-31-6-149   <none>           <none>
    kube-system   kube-proxy-f2rdm                              1/1     Running   2          2d14h   172.31.6.149     ip-172-31-6-149   <none>           <none>
    kube-system   kube-proxy-flfgg                              1/1     Running   2          2d14h   172.31.11.87     k8s-workernode1   <none>           <none>
    kube-system   kube-scheduler-ip-172-31-6-149                1/1     Running   2          2d14h   172.31.6.149     ip-172-31-6-149   <none>           <none>

DNS pod json

k8suser@ip-172-31-6-149:~$ kubectl -n kube-system get -o yaml pod calico-node-298r4
apiVersion: v1
kind: Pod
metadata:
  annotations:
    scheduler.alpha.kubernetes.io/critical-pod: ""
  creationTimestamp: "2019-06-06T04:20:16Z"
  generateName: calico-node-
  labels:
    controller-revision-hash: 5b9bbb5cf5
    k8s-app: calico-node
    pod-template-generation: "1"
  name: calico-node-298r4
  namespace: kube-system
  ownerReferences:
  - apiVersion: apps/v1
    blockOwnerDeletion: true
    controller: true
    kind: DaemonSet
    name: calico-node
    uid: 62b222b1-8812-11e9-bccc-029ff954c4b8
  resourceVersion: "468710"
  selfLink: /api/v1/namespaces/kube-system/pods/calico-node-298r4
  uid: 634ee54d-8812-11e9-bccc-029ff954c4b8
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchFields:
          - key: metadata.name
            operator: In
            values:
            - ip-172-31-6-149
  containers:
  - env:
    - name: DATASTORE_TYPE
      value: kubernetes
    - name: WAIT_FOR_DATASTORE
      value: "true"
    - name: NODENAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: spec.nodeName
    - name: CALICO_NETWORKING_BACKEND
      valueFrom:
        configMapKeyRef:
          key: calico_backend
          name: calico-config
    - name: CLUSTER_TYPE
      value: k8s,bgp
    - name: IP
      value: autodetect
    - name: CALICO_IPV4POOL_IPIP
      value: Always
    - name: FELIX_IPINIPMTU
      valueFrom:
        configMapKeyRef:
          key: veth_mtu
          name: calico-config
    - name: CALICO_IPV4POOL_CIDR
      value: 192.168.0.0/16
    - name: CALICO_DISABLE_FILE_LOGGING
      value: "true"
    - name: FELIX_DEFAULTENDPOINTTOHOSTACTION
      value: ACCEPT
    - name: FELIX_IPV6SUPPORT
      value: "false"
    - name: FELIX_LOGSEVERITYSCREEN
      value: info
    - name: FELIX_HEALTHENABLED
      value: "true"
    image: calico/node:v3.7.2
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 6
      httpGet:
        host: localhost
        path: /liveness
        port: 9099
        scheme: HTTP
      initialDelaySeconds: 10
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 1
    name: calico-node
    readinessProbe:
      exec:
        command:
        - /bin/calico-node
        - -bird-ready
        - -felix-ready
      failureThreshold: 3
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 1
    resources:
      requests:
        cpu: 250m
    securityContext:
      privileged: true
      procMount: Default
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /lib/modules
      name: lib-modules
      readOnly: true
    - mountPath: /run/xtables.lock
      name: xtables-lock
    - mountPath: /var/run/calico
      name: var-run-calico
    - mountPath: /var/lib/calico
      name: var-lib-calico
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: calico-node-token-6xvr5
      readOnly: true
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  hostNetwork: true
  initContainers:
  - command:
    - /opt/cni/bin/calico-ipam
    - -upgrade
    env:
    - name: KUBERNETES_NODE_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: spec.nodeName
    - name: CALICO_NETWORKING_BACKEND
      valueFrom:
        configMapKeyRef:
          key: calico_backend
          name: calico-config
    image: calico/cni:v3.7.2
    imagePullPolicy: IfNotPresent
    name: upgrade-ipam
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/lib/cni/networks
      name: host-local-net-dir
    - mountPath: /host/opt/cni/bin
      name: cni-bin-dir
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: calico-node-token-6xvr5
      readOnly: true
  - command:
    - /install-cni.sh
    env:
    - name: CNI_CONF_NAME
      value: 10-calico.conflist
    - name: CNI_NETWORK_CONFIG
      valueFrom:
        configMapKeyRef:
          key: cni_network_config
          name: calico-config
    - name: KUBERNETES_NODE_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: spec.nodeName
    - name: CNI_MTU
      valueFrom:
        configMapKeyRef:
          key: veth_mtu
          name: calico-config
    - name: SLEEP
      value: "false"
    image: calico/cni:v3.7.2
    imagePullPolicy: IfNotPresent
    name: install-cni
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /host/opt/cni/bin
      name: cni-bin-dir
    - mountPath: /host/etc/cni/net.d
      name: cni-net-dir
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: calico-node-token-6xvr5
      readOnly: true
  nodeName: ip-172-31-6-149
  nodeSelector:
    beta.kubernetes.io/os: linux
  priority: 0
  restartPolicy: Always
  schedulerName: default-scheduler
  securityContext: {}
  serviceAccount: calico-node
  serviceAccountName: calico-node
  terminationGracePeriodSeconds: 0
  tolerations:
  - effect: NoSchedule
    operator: Exists
  - key: CriticalAddonsOnly
    operator: Exists
  - effect: NoExecute
    operator: Exists
  - effect: NoExecute
    key: node.kubernetes.io/not-ready
    operator: Exists
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    operator: Exists
  - effect: NoSchedule
    key: node.kubernetes.io/disk-pressure
    operator: Exists
  - effect: NoSchedule
    key: node.kubernetes.io/memory-pressure
    operator: Exists
  - effect: NoSchedule
    key: node.kubernetes.io/unschedulable
    operator: Exists
  - effect: NoSchedule
    key: node.kubernetes.io/network-unavailable
    operator: Exists
  volumes:
  - hostPath:
      path: /lib/modules
      type: ""
    name: lib-modules
  - hostPath:
      path: /var/run/calico
      type: ""
    name: var-run-calico
  - hostPath:
      path: /var/lib/calico
      type: ""
    name: var-lib-calico
  - hostPath:
      path: /run/xtables.lock
      type: FileOrCreate
    name: xtables-lock
  - hostPath:
      path: /opt/cni/bin
      type: ""
    name: cni-bin-dir
  - hostPath:
      path: /etc/cni/net.d
      type: ""
    name: cni-net-dir
  - hostPath:
      path: /var/lib/cni/networks
      type: ""
    name: host-local-net-dir
  - name: calico-node-token-6xvr5
    secret:
      defaultMode: 420
      secretName: calico-node-token-6xvr5
status:
  conditions:
  - lastProbeTime: null
    lastTransitionTime: "2019-06-14T05:21:15Z"
    status: "True"
    type: Initialized
  - lastProbeTime: null
    lastTransitionTime: "2019-06-11T14:42:00Z"
    message: 'containers with unready status: [calico-node]'
    reason: ContainersNotReady
    status: "False"
    type: Ready
  - lastProbeTime: null
    lastTransitionTime: "2019-06-11T14:42:00Z"
    message: 'containers with unready status: [calico-node]'
    reason: ContainersNotReady
    status: "False"
    type: ContainersReady
  - lastProbeTime: null
    lastTransitionTime: "2019-06-06T04:20:16Z"
    status: "True"
    type: PodScheduled
  containerStatuses:
  - containerID: docker://a3f683c4143b1cc0da11e2fd715b65e07a75108a459cb160c3a81754875a2eab
    image: calico/node:v3.7.2
    imageID: docker-pullable://calico/node@sha256:8b565422f4cabd9652e0e912f3ea8707734cbc69f5835642f094d1ed0a087d5b
    lastState:
      terminated:
        containerID: docker://4665eed7b1e8ad2e43d4c29cd74172933da8f743c7afb7ee4b6697a6565e9e65
        exitCode: 0
        finishedAt: "2019-06-14T15:44:50Z"
        reason: Completed
        startedAt: "2019-06-14T05:21:15Z"
    name: calico-node
    ready: false
    restartCount: 6
    state:
      running:
        startedAt: "2019-06-15T05:47:06Z"
  hostIP: 172.31.6.149
  initContainerStatuses:
  - containerID: docker://d722b7e3e7157462acb49da14cc32422f3f67189ff3c3074d821563a46998640
    image: calico/cni:v3.7.2
    imageID: docker-pullable://calico/cni@sha256:9853acbb98f2225572a9374d9de5726dd93ae02ab397ca8b4ad24f953adf465c
    lastState: {}
    name: upgrade-ipam
    ready: true
    restartCount: 3
    state:
      terminated:
        containerID: docker://d722b7e3e7157462acb49da14cc32422f3f67189ff3c3074d821563a46998640
        exitCode: 0
        finishedAt: "2019-06-15T05:46:41Z"
        reason: Completed
        startedAt: "2019-06-15T05:46:41Z"
  - containerID: docker://d23fb5d8ddee775fd183cd4c552a376a3e49105e4f2472335ab9cc67cd883c8f
    image: calico/cni:v3.7.2
    imageID: docker-pullable://calico/cni@sha256:9853acbb98f2225572a9374d9de5726dd93ae02ab397ca8b4ad24f953adf465c
    lastState: {}
    name: install-cni
    ready: true
    restartCount: 0
    state:
      terminated:
        containerID: docker://d23fb5d8ddee775fd183cd4c552a376a3e49105e4f2472335ab9cc67cd883c8f
        exitCode: 0
        finishedAt: "2019-06-15T05:47:05Z"
        reason: Completed
        startedAt: "2019-06-15T05:47:05Z"
  phase: Running
  podIP: 172.31.6.149
  qosClass: Burstable
  startTime: "2019-06-06T04:20:16Z"

Supicious DNS logs :-

Calico node started successfully
bird: Unable to open configuration file /etc/calico/confd/config/bird6.cfg: No such file or directory
bird: Unable to open configuration file /etc/calico/confd/config/bird.cfg: No such file or directory
2019-06-15 05:47:08.005 [INFO][55] logutils.go 82: Early screen log level set to info
2019-06-15 05:47:08.005 [INFO][55] daemon.go 139: Felix starting up GOMAXPROCS=8 buildDate="" gitCommit="8ed6333006e4b04a744398c6eca9fde31e08b6d8" version="v3.7.2"
2019-06-15 05:47:08.005 [INFO][55] daemon.go 157: Loading configuration...
2019-06-15 05:47:08.006 [INFO][56] config.go 105: Skipping confd config file.
2019-06-15 05:47:08.006 [INFO][56] run.go 17: Starting calico-confd
2019-06-15 05:47:08.007 [INFO][56] k8s.go 228: Using Calico IPAM
2019-06-15 05:47:08.006 [INFO][55] env_var_loader.go 40: Found felix environment variable: "ipv6support"="false"

2019-06-15 05:47:08.010 [INFO][55] config_params.go 320: Parsing value for Ipv6Support: false (from environment variable)
2019-06-15 05:47:08.010 [INFO][55] config_params.go 356: Parsed value for Ipv6Support: false (from environment variable)

2019-06-15 05:47:08.016 [INFO][56] watchersyncer.go 89: Start called
2019-06-15 05:47:08.017 [INFO][56] client.go 183: CALICO_ADVERTISE_CLUSTER_IPS not specified, no cluster ips will be advertised
--
calico
kubernetes
kubernetes-pod

0 Answers