0

不久前,我使用 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-datavscertificate-authority一个是字符串,另一个是 .pem 文件的相对路径。

我想知道 -

1.> 密钥的名称是否可互换,例如 - certificate-authority-data 可以是 certificate-authority,反之亦然

2.> 值的类型是预先定义的吗?我的意思是,如果我复制 .pem 文件的内容并将其粘贴到证书颁发机构,kubectl 是否能够授权?

如果我能对此有所了解,那就太好了。如果我的问题有任何混淆,我很抱歉。如果是这样,请问我,我会尽量说清楚。

提前致谢

- - - - - - - - - 编辑 - - - - - - - -

我做了一些实验,我知道它们是不可互换的。我现在有一个不同的问题。哪个更直接 -

这两个中的哪个是kubeconfig 文件 standard或版本?latest

4

1 回答 1

1

这些*-data字段内联引用文件的内容,采用 base64 编码。这允许 kubeconfig 文件是自包含的,并且能够移动/复制/分发,而无需在磁盘上携带引用的文件。任何一种格式都有效,具体取决于您的用例。

于 2016-11-22T16:36:52.683 回答