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

tct7dpnv  于 12个月前  发布在  Kubernetes
关注(0)|答案(2)|浏览(186)

我有一个本地的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>

字符串
但是它会抛出如上所述的错误。我使用的是kubernetes最新版本。
如何使用kubectl config命令将这些信息添加到本地文件?
谢谢你,谢谢

qacovj5a

qacovj5a1#

可能的解决方案是在config命令中使用--flatten标志:

➜  ~ kubectl config view --flatten=true

字符串
将生成的kubeconfig文件扁平化为自包含的输出(用于创建可移植的kubeconfig文件)
也可以导出到文件(可移植配置):

kubectl config view --flatten > out.txt


您可以在Mastering the KUBECONFIG file文档中阅读更多关于kube config的信息。
一旦你在有相应证书的服务器上运行此命令,你将收到base64编码的密钥:certificate-authority-dataclient-certificate-dataclient-key-data
然后你可以使用官方配置文档中提供的命令:

➜  ~ kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64 -i -)


然后你必须用flatten config文件中的数据替换(echo "cert_data_here" | base64 -i -)
值得一提的是,-help flag的kubectl配置也提供了此信息:

kubectl config set --help   
Sets an individual value in a kubeconfig file

 PROPERTY_VALUE is the new value you wish to set. Binary fields such as 'certificate-authority-data'
expect a base64 encoded string unless the --set-raw-bytes flag is used.

 Specifying a attribute name that already exists will merge new fields on top of existing values.

Examples:
  # Set certificate-authority-data field on the my-cluster cluster.
  kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64
-i -)

hlswsv35

hlswsv352#

kubectl config set-cluster只接受--certificate-authority,它需要一个文件。
你可以简单地通过base64解码你的字符串来创建这个文件。

echo LS0tLSAASDASDADAXXXSDETRDFDJHFJWEtGCmx0YVR2SE45Rm9IVjAvQkdwRUM2bnFNTjg0akd2a3R4VUpabQotLS0tLUVORCBDADADADDAADS0tXXXCg== | base64 -d > cert.pem

kubectl config --kubeconfig=config set-cluster local-kubernetes --server=https://10.10.10.10:6443 --certificate-authority=cert.pem

字符串

相关问题