minikube 部署的 k8s 集群准备 kubeconfig 文件
CSDN 中文章不一定能及时更新,欢迎点击前往我的博客查看最新版本:许盛的博客题外话最近大出血,换了 m1pro,黑苹果就暂时没啥用了,本来准备装个 ubuntu 用来部署 kubesphere 玩玩的,不过在尝试了 ubuntu 官方的 multipass 虚拟机管理工具后,体验实在太好了。同时又逛了逛 k8s 官网,比早两年要好太多了,正好就用虚拟机再过一遍 k8s 官方文档好了。本文写的内容
CSDN 中文章不一定能及时更新,欢迎点击前往我的博客查看最新版本:许盛的博客
题外话
最近大出血,换了 m1pro
,黑苹果就暂时没啥用了,本来准备装个 ubuntu
用来部署 kubesphere
玩玩的,不过在尝试了 ubuntu
官方的 multipass
虚拟机管理工具后,体验实在太好了。
同时又逛了逛 k8s
官网,比早两年要好太多了,正好就用虚拟机再过一遍 k8s
官方文档好了。
本文写的内容其实属于很简单的基础内容,其实是没必要写的,但是为了避免时间长了自己忘掉,还是记一记好了。
准备 kubeconfig 文件
k8s
官方文档上的一些操作是使用 minikube
部署的集群,入乡随俗,我也在虚拟机里用 minikube
部署了一个集群。
但是虚拟机里面没有装 zsh
等一些提升使用体验的插件,也不太想在虚拟机里折腾,这时候就需要在虚拟机外部操作内部的集群了。
找到虚拟机内部的 ~/.kube/config
文件,可以看到内容如下:
apiVersion: v1
clusters:
- cluster:
certificate-authority: /home/ubuntu/.minikube/ca.crt
extensions:
- extension:
last-update: Thu, 16 Dec 2021 20:23:25 CST
provider: minikube.sigs.k8s.io
version: v1.24.0
name: cluster_info
server: https://192.168.64.2:8443
name: minikube
contexts:
- context:
cluster: minikube
extensions:
- extension:
last-update: Thu, 16 Dec 2021 20:23:25 CST
provider: minikube.sigs.k8s.io
version: v1.24.0
name: context_info
namespace: default
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /home/ubuntu/.minikube/profiles/minikube/client.crt
client-key: /home/ubuntu/.minikube/profiles/minikube/client.key
如果直接将这个文件复制到外部是无法使用的,可以看到文件中部分证书文件路径,在其他机器上是没有的。
准备证书数据
kubeconfg
文件除了使用证书文件的路径外,其实也可以将证书内容经过 base64
编码后直接写入文件。
首先将文件中的 certificate-authority: /home/ubuntu/.minikube/ca.crt
改为 insecure-skip-tls-verify: true
。
将 client-certificate
改为 client-certificate-data
。
将 client-key
改为 client-key-data
。
然后使用命令读取证书内容并输出 base64
字符串,再替换 kubeconfig
文件中内容即可:
# 对应 client-certificate-data 的值
cat ~/.minikube/profiles/minikube/client.crt | base64 -w 0
# 对应 client-key-data 的值
cat ~/.minikube/profiles/minikube/client.key | base64 -w 0
kubeconfig
文件内容准备好后,在希望使用 kubectl
命令的机器上,创建 ~/.kube/config
文件,并将上面准备的内容写入即可。
更多推荐
所有评论(0)