如何将证书添加到 Kube 配置文件

yat*_*tta 6 kubernetes

我有一个本地 Kubernetes 环境,我基本上将.kube/config文件复制到本地,并将“ context ”、“ users ”和“ cluster ”信息添加到我当前的“ .kube/config ”文件中。没关系,我可以连接到本地文件。

但我想用命令将这些信息添加到我的本地配置文件中。

因此,对于此页面,我可以使用“ certificate-authority-data ”作为参数,如下所示: ---> https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters /

PS C:\Users\user\.kube> kubectl config --kubeconfig=config set-cluster local-kubernetes --server=https://10.10.10.10:6443 --certificate-authority-data=LS0tLSAASDASDADAXXXSDETRDFDJHFJWEtGCmx0YVR2SE45Rm9IVjAvQkdwRUM2bnFNTjg0akd2a3R4VUpabQotLS0tLUVORCBDADADADDAADS0tXXXCg==
Error: unknown flag: --certificate-authority-data
See 'kubectl config set-cluster --help' for usage.
PS C:\Users\user\.kube>
Run Code Online (Sandbox Code Playgroud)

但它会抛出像上面这样的错误。我正在使用 kubernetes 最新版本。

如何使用 kubectl config 命令将这些信息添加到本地文件中?

谢谢!

aci*_*uji 17

--flatten可能的解决方案是将标志与配置命令一起使用:

\n
\xe2\x9e\x9c  ~ kubectl config view --flatten=true  \n
Run Code Online (Sandbox Code Playgroud)\n
\n

将生成的 kubeconfig 文件压平为自包含输出\n(对于创建可移植的 kubeconfig 文件很有用)

\n
\n

也可以导出到文件(便携式配置):

\n
\xe2\x9e\x9c  ~ kubectl config view --flatten=true  \n
Run Code Online (Sandbox Code Playgroud)\n

您可以在掌握 KUBECONFIG 文件文档中阅读有关 kube config 的更多信息。

\n

一旦您在存在适当证书的服务器上运行此命令,您将收到 Base64 编码的密钥:certificate-authority-dataclient-certificate-dataclient-key-data

\n

然后就可以使用官方配置文档中提供的命令:

\n
\xe2\x9e\x9c  ~ kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64 -i -)\n
Run Code Online (Sandbox Code Playgroud)\n

然后您必须替换(echo "cert_data_here" | base64 -i -)为展平配置文件中的数据。

\n

值得一提的是,此信息也可用于-help flagkubectl 配置:

\n
kubectl config set --help   \nSets an individual value in a kubeconfig file\n\n PROPERTY_VALUE is the new value you wish to set. Binary fields such as \'certificate-authority-data\'\nexpect a base64 encoded string unless the --set-raw-bytes flag is used.\n\n Specifying a attribute name that already exists will merge new fields on top of existing values.\n\nExamples:\n  # Set certificate-authority-data field on the my-cluster cluster.\n  kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64\n-i -)\n
Run Code Online (Sandbox Code Playgroud)\n