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 быть автономным, и его можно перемещать / копировать / распространять, не перевозя при этом ссылочные файлы на диске. Любой формат действителен, в зависимости от вашего варианта использования.