kubernetes,kubeconfig文件结构
kubernetes, kubeconfig file structure
我前段时间使用 kube-up 设置了一个 kubernetes 集群(我想,我不太确定,因为它真的是前一段时间),最近我使用 coreOS 设置了另一个 kubernetes 集群及其工具。它们都生成了 kubeconfig 文件,并且这些文件分别对它们中的每一个都完美地工作。虽然,存在一些差异,这就是为什么 post。我想正确地理解这些差异。
这是两个文件 -
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 可以是 certificate-authority,反之亦然
2.> 是否预先定义了值的类型?我的意思是,如果我复制 .pem 文件的内容并将其粘贴到证书颁发机构,kubectl 是否能够授权?
如果我能对 this.I 有所了解那就太好了,如果我的问题有任何混淆,我深表歉意。如果是这样,请问我,我会尽量说清楚。
提前致谢
----------------编辑----------------
我做了一些实验,我知道它们是不可互换的。我现在有一个不同的问题。哪个更直接 -
这两个中哪个是 standard
或 latest
版本的 kubeconfig 文件?
*-data
字段内联引用文件的内容,base64 编码。这允许 kubeconfig 文件是独立的,并且能够 moved/copied/distributed 而无需在磁盘上携带引用文件。两种格式均有效,具体取决于您的用例。
我前段时间使用 kube-up 设置了一个 kubernetes 集群(我想,我不太确定,因为它真的是前一段时间),最近我使用 coreOS 设置了另一个 kubernetes 集群及其工具。它们都生成了 kubeconfig 文件,并且这些文件分别对它们中的每一个都完美地工作。虽然,存在一些差异,这就是为什么 post。我想正确地理解这些差异。 这是两个文件 -
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 可以是 certificate-authority,反之亦然
2.> 是否预先定义了值的类型?我的意思是,如果我复制 .pem 文件的内容并将其粘贴到证书颁发机构,kubectl 是否能够授权?
如果我能对 this.I 有所了解那就太好了,如果我的问题有任何混淆,我深表歉意。如果是这样,请问我,我会尽量说清楚。
提前致谢
----------------编辑----------------
我做了一些实验,我知道它们是不可互换的。我现在有一个不同的问题。哪个更直接 -
这两个中哪个是 standard
或 latest
版本的 kubeconfig 文件?
*-data
字段内联引用文件的内容,base64 编码。这允许 kubeconfig 文件是独立的,并且能够 moved/copied/distributed 而无需在磁盘上携带引用文件。两种格式均有效,具体取决于您的用例。