Kubernetes.default nslookup не может разрешить из разных пространств имен - PullRequest
0 голосов
/ 08 февраля 2019

Я сталкиваюсь с проблемой разрешения kubernetes.default.svc.cluster.local извне default пространства имен

Я запускаю два busybox: 1.30 стручков в каждом пространстве имен, и имя успешно разрешается только из default пространства имен

    [admin@devsvr3 ~]$ kubectl exec -n default -ti busybox -- nslookup kubernetes
    Server:    10.96.0.10
    Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
    Name:      kubernetes
    Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
    [admin@devsvr3 ~]$ kubectl exec -n namespace-dev -ti busybox -- nslookup kubernetes
    Server:         10.96.0.10
    Address:        10.96.0.10:53
    ** server can't find kubernetes.namespace-dev.svc.cluster.local: NXDOMAIN
    *** Can't find kubernetes.svc.cluster.local: No answer
    *** Can't find kubernetes.cluster.local: No answer
    *** Can't find kubernetes.namespace-dev.svc.cluster.local: No answer
    *** Can't find kubernetes.svc.cluster.local: No answer
    *** Can't find kubernetes.cluster.local: No answer
    [admin@devsvr3 ~]$ 

Я использую кластер CentOS 7 kubernetes в среде с воздушным зазором и использую дополнение weave net CNI, и это моя конфигурация CoreDNS

    apiVersion: v1
    data:
      Corefile: |
        .:53 {
            log
            errors
            health
            kubernetes cluster.local in-addr.arpa ip6.arpa {
              pods insecure
              upstream
              fallthrough in-addr.arpa ip6.arpa
            }
            prometheus :9153
            proxy . /etc/resolv.conf
            cache 30
            reload
            loadbalance
        }
    kind: ConfigMap
    metadata:
      creationTimestamp: "2019-01-28T10:59:25Z"
      name: coredns
      namespace: kube-system
      resourceVersion: "1177652"
      selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
      uid: c6b5ddae-22eb-11e9-8689-0017a4770068

1 Ответ

0 голосов
/ 03 апреля 2019

Следуя вашим шагам, я действительно подошел к той же проблеме.Но если вы создаете модуль, используя этот yaml, он работает правильно.Изменение образа busybox, похоже, в конечном итоге приводит к описанной вами ошибке.Постараюсь выяснить почему.Но пока это решение.

apiVersion: v1 kind: Pod metadata: name: busybox namespace: namespace-dev spec: containers: - name: busybox image: busybox:1.28 command: - sleep - "3600" imagePullPolicy: IfNotPresent restartPolicy: Always

, а затем: kubectl exec -ti -n=namespace-dev busybox -- nslookup kubernetes.default все работает как задумано и объяснено здесь .

/ # nslookup kubernetes
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

nslookup: can't resolve 'kubernetes'
/ # nslookup kubernetes.default
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes.default
Address 1: 10.96.0.1 kubernetes.default.svc.cluster.local
...