我前段时间使用kube-up建立了一个kubernetes集群(我想,我不是很确定,因为它确实是不久前)并且最近我使用coreOS及其工具设置了另一个kubernetes集群。他们都生成了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
vs certificate-authority
,还有一个是字符串,另一个是.pem文件的相对路径。
我想知道 -
1>密钥的名称是否可互换,ex-certificate-authority-data可以是证书授权,反之亦然
2>是否预先定义了值的类型?我的意思是,如果我复制.pem文件的内容并粘贴它,比如certificate-authority,kubectl能够授权吗?
如果我能对此有所了解,那就太棒了。如果我的问题有任何混淆,我很抱歉。如果是这样,请问我,我会尽可能地说清楚。
提前致谢
------------------编辑----------------
我做了一些实验,我明白它们是不可互换的。我现在有一个不同的问题。哪个更直接 -
这两者中的哪一个是kubeconfig文件的standard
或latest
版本?
答案 0 :(得分:1)
*-data
字段内嵌引用文件的内容,base64编码。这允许kubeconfig文件是自包含的,并且能够移动/复制/分发,而无需在磁盘上携带引用的文件。这两种格式都有效,具体取决于您的使用情况。