kubernetes, структура файла kubeconfig

Я недавно настроил кластер kubernetes, используя kube-up (думаю, я не совсем уверен, как это было на самом деле давно), и совсем недавно я создал другой кластер kubernetes, используя coreOS и его инструменты. Они оба сгенерировали файлы kubeconfig, и эти файлы отлично работают для каждого из них соответственно. Хотя есть некоторые отличия, и поэтому этот пост. Я хочу правильно понять эти различия. Вот два файла -

1.> Один генерировать раньше (скорее всего, с использованием kube-up)

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: CERTIFICATE_AUTH_DATA
    server: https://our.kube.server.1
  name: aws_kubernetes
contexts:
- context:
    cluster: aws_kubernetes
    user: aws_kubernetes
  name: aws_kubernetes
current-context: aws_kubernetes
kind: Config
preferences: {}
users:
- name: aws_kubernetes
  user:
    client-certificate-data: SECRET_CERTIFICATE
    client-key-data: SECRET_CLIENT_KEY
    token: SECRET_TOKEN
- name: aws_kubernetes-basic-auth
  user:
    password: PASSWORD
    username: USERNAME

2.> Второй генерируется позже с помощью инструментов coreOS

apiVersion: v1
kind: Config
clusters:
- cluster:
    certificate-authority: path/to/ca.pem
    server: https://our.kube-server.2
  name: kube-aws-cluster-cluster
contexts:
- context:
    cluster: kube-aws-cluster-cluster
    namespace: default
    user: kube-aws-
cluster-admin
  name: kube-aws-cluster-context
users:
- name: kube-aws-cluster-admin
  user:
    client-certificate: path/to/admin.pem
    client-key: path/to/admin-key.pem
current-context: kube-aws-cluster-context

Как видите, между этими двумя версиями существует разница имен ключей и их значений; например - certificate-authority-data против certificate-authority а также один является строкой, а другой - относительным путем к файлу.pem.

Я размышлял -

1.> Являются ли имена ключей взаимозаменяемыми, например, сертификатные данные могут быть сертификатными или наоборот?

2.> Типы значений предварительно определены? Я имею в виду, что если я скопирую содержимое файла.pem и вставлю его, скажем, в центр сертификации, сможет ли kubectl авторизоваться?

Было бы здорово, если бы у меня была идея по этому поводу. Извините, если в моем вопросе есть какая-то путаница. Если это так, пожалуйста, спросите меня, и я постараюсь прояснить как можно больше.

заранее спасибо

------------------ РЕДАКТИРОВАТЬ ----------------

Я как бы провел несколько экспериментов и понимаю, что они не являются взаимозаменяемыми. У меня сейчас другой вопрос. Что является более прямым -

Который среди этих двух standard или же latest версия файла kubeconfig?

1 ответ

Решение

*-data Поля встраивают содержимое ссылочных файлов, закодированных в base64. Это позволяет файлу kubeconfig быть автономным, и его можно перемещать / копировать / распространять, не перевозя при этом ссылочные файлы на диске. Любой формат действителен, в зависимости от вашего варианта использования.

Другие вопросы по тегам