Есть ли способ настроить плагин coredns kubernetes с помощью kubeconfig в токене?

У меня coredns в кластере k8s - v1.3.1, и я хочу настроить его для посещения kube-apiserver со статическим токеном. Например, мой токен - "token4K8sSecure". Я не пробовал config coredns kubenernetes plugin с конфигурацией ниже, но он не работает.

apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           **endpoint https://100.6.0.20:6443
           kubeconfig token token4K8sSecure**
           pods insecure
           upstream
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2019-11-19T08:55:08Z"
  name: coredns
  namespace: kube-system
  resourceVersion: "452688"
  selfLink: /api/v1/namespaces/kube-system/configmaps/coredns
  uid: 449a38b9-1678-4c66-b1e8-96b5c273ad3d

Вывод: [root @ a2 Matrix-V500R002B01D001] # kubectl logs coredns-7c4665f97b-nh2wj -n kube-system plugin / kubernetes: stat token: нет такого файла или каталога


person Miro    schedule 21.11.2019    source источник


Ответы (1)


добро пожаловать в StackOverflow.

Вы можете - вместо использования токена Kubernetes - вы можете использовать клиентские сертификаты следующим образом:

tls <PATH_TO_CERT> <PATH_TO_KEY> <PATH_TO_CACERT>

Если вы не хотите использовать сертификаты TLS, вы можете указать файл как kubeconfig, в версии 1.2.2 CoreDNS появилась возможность использовать файл, из которого CoreDNS загружает контекст:

kubeconfig /path/to/token token

Установите токен в контейнер и добавьте путь в конфигурацию, и он должен работать.

person Emanuel Bennici    schedule 21.11.2019
comment
** Спасибо за ваш ответ! ** у coredns есть токен, который уже установлен на модуле, я пробовал использовать его с config: kubeconfig /var/run/secrets/kubernetes.io/serviceaccount/token token, но не удалось записать в журнал: Ошибка при загрузке файла конфигурации /var/run/secrets/kubernetes.io/serviceaccount/token: не удалось получить версию / вид; .Потому что файл токена представляет собой чистую строку, а не структуру json. И я не хочу менять coredns ямл. - person Miro; 21.11.2019
comment
Без изменения развертывания CoreDNS вы не сможете делать то, что хотите. В CoreDNS нет опции, в которой вы можете определить токен как открытый текст. - person Emanuel Bennici; 21.11.2019
comment
@Miro, не могли бы вы пометить ответ как правильный ответ, чтобы другие люди, которые ищут ту же проблему, могли найти его напрямую, или у вас есть другие вопросы / проблемы со мной? - person Emanuel Bennici; 21.11.2019