Ошибка разрешения DNS зоны coredns helm chart и minio

Вопрос или проблема

У меня работает minio в пространстве имен minio:

➜ kgsvcn minio
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
minio           ClusterIP   172.20.182.115   <none>        9000/TCP   25m
minio-console   ClusterIP   172.20.103.127   <none>        9001/TCP   25m

Мне нужно перенаправить все запросы *.minio.minio.svc.cluster.local на поды за svc minio.minio

Однако я получаю следующие ошибки:

bash-5.1# nslookup tekton-logs.minio.minio
Server:     172.20.0.10
Address:    172.20.0.10#53

*** Не удается найти tekton-logs.minio.minio.svc.cluster.local: Нет ответа

конфигурационная карта cordns

apiVersion: v1
data:
  Corefile: |-
    .:53 {
        errors
        health {
            lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
            pods insecure
            fallthrough in-addr.arpa ip6.arpa
            ttl 30
        }
        prometheus 0.0.0.0:9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
    minio.svc.cluster.local:53 {
        log
        whoami
        errors
        kubernetes minio.svc.cluster.local {
            pods insecure
            fallthrough
            ttl 30
        }
        cache 30
        reload
    }
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/instance: coredns
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: coredns
    argocd.argoproj.io/instance: coredns
    eks.amazonaws.com/component: coredns
    helm.sh/chart: coredns-1.31.0
    k8s-app: kube-dns
    kubernetes.io/cluster-service: "true"
    kubernetes.io/name: CoreDNS
  name: coredns
  namespace: kube-system

значения helm для coredns

servers:
  - zones:
      - zone: .
    port: 53
    plugins:
      - name: errors
      - name: health
        configBlock: |-
          lameduck 5s
      - name: ready
      - name: kubernetes
        parameters: cluster.local in-addr.arpa ip6.arpa
        configBlock: |-
          pods insecure
          fallthrough in-addr.arpa ip6.arpa
          ttl 30
      - name: prometheus
        parameters: 0.0.0.0:9153
      - name: forward
        parameters: . /etc/resolv.conf
      - name: cache
        parameters: 30
      - name: loop
      - name: reload
      - name: loadbalance
  - zones:
      - zone: minio.svc.cluster.local
    port: 53
    plugins:
      - name: log
      - name: whoami
      - name: errors
      - name: kubernetes
        parameters: minio.svc.cluster.local
        configBlock: |-
          pods insecure
          fallthrough
          ttl 30
      - name: cache
        parameters: 30
      - name: reload

журналы


➜ klo -l app.kubernetes.io/name=coredns -n kube-system
[INFO] 10.120.142.100:42080 - 55062 "A IN tekton-logs.minio.svc.cluster.local. udp 53 false 512" NOERROR qr,aa,rd 163 0.000243657s
[INFO] 10.120.142.100:39235 - 64661 "AAAA IN tekton-logs.minio.svc.cluster.local. udp 53 false 512" NOERROR qr,aa,rd 163 0.000297776s
[INFO] 10.120.142.100:39235 - 64401 "A IN tekton-logs.minio.svc.cluster.local. udp 53 false 512" NOERROR qr,aa,rd 163 0.000155817s
[INFO] 10.120.142.100:38826 - 37249 "A IN tekton-logs.minio.svc.cluster.local. udp 53 false 512" NOERROR qr,aa,rd 163 0.00018647s
[INFO] 10.120.142.100:38826 - 37718 "AAAA IN tekton-logs.minio.svc.cluster.local. udp 53 false 512" NOERROR qr,aa,rd 163 0.00085907s

Что я пропустил или сделал неправильно?

Ответ или решение

Проблема, с которой вы столкнулись, связана с настройкой CoreDNS и разрешением DNS для MinIO в вашем кластере Kubernetes. Вы пытаетесь разрешать DNS-запросы для *.minio.minio.svc.cluster.local, но получаете ошибку, из-за которой разрешение домена не работает должным образом.

Причина проблемы:

  1. Конфигурация CoreDNS: Ваша текущая конфигурация CoreDNS может не обрабатывать DNS-запросы для minio.svc.cluster.local должным образом.
  2. Зона DNS: Необходимо убедиться, что зона minio.svc.cluster.local правильно настроена и отвечает на запросы.

Шаги по устранению проблемы:

  1. Проверьте конфигурацию CoreDNS: Убедитесь, что ваши записи в ConfigMap для CoreDNS правильно настроены:

    minio.svc.cluster.local:53 {
       log
       whoami
       errors
       kubernetes minio.svc.cluster.local {
           pods insecure
           fallthrough
           ttl 30
       }
       cache 30
       reload
    }

    Это означает, что CoreDNS должен обрабатывать запросы для зоны minio.svc.cluster.local. В случае, если MinIO Service и Pods находятся в одном неймспейсе (minio), убедитесь, что записи ресурсов существуют.

  2. Проверка наличия подов: Убедитесь, что в неймспейсе minio существуют поды и сервисы, которые отвечают соответствующим образом. Вы можете использовать следующую команду для проверки состояния подов:

    kubectl get pods -n minio

    Убедитесь, что поды запущены и находятся в состоянии Running.

  3. Перезапуск CoreDNS: Иногда изменения в конфигурации требуют перезапуска CoreDNS для их применения. Вы можете перезапустить CoreDNS, выполнив следующее:

    kubectl rollout restart deployment coredns -n kube-system
  4. Проверка логов CoreDNS: Используйте команды для проверки логов CoreDNS, чтобы убедиться, что запрашиваемое имя действительно обрабатывается:

    kubectl logs -l app.kubernetes.io/name=coredns -n kube-system

    Обратите внимание на наличие ошибок или предупреждений, которые могут указывать на проблему с разрешением имен.

  5. Проверьте записи в Kubernetes: Вы можете вручную проверить, как Kubernetes обрабатывает службы и поды:

    kubectl get svc -n minio
    kubectl get ep minio -n minio

    Убедитесь, что сервис minio имеет связанные эндпоинты, при этом убедитесь, что все поды находятся в одном состоянии.

Пример запроса:

Попробуйте выполнить запрос на разрешение от имени пода:

kubectl exec -it <имя-пода> -n minio -- nslookup tekton-logs.minio.minio.svc.cluster.local

Заключение:

Если после выполнения всех вышеуказанных шагов проблема все еще сохраняется, возможно, потребуется проверить общую конфигурацию вашего кластера Kubernetes, а также сетевые настройки. Проверьте, что другие DNS-запросы функционируют корректно, чтобы исключить общие проблемы с сетевой инфраструктурой.

Удачи в решении вашей проблемы, и если возникнут дополнительные вопросы, не стесняйтесь их задавать!

Оцените материал
Добавить комментарий

Капча загружается...