首页 > 解决方案 > 如何从我的本地机器访问 minikube(安装在远程 VM 上)?

问题描述

我有一个 CentOS 7 虚拟机,它的 minikube 运行--vm-driver=none. 在 VM 本身上,我可以运行 kubectl 命令与 minikube 集群进行交互。

由于我是 k8s 的新手,我不确定如何生成所有必要的值以放入~/.kube/config文件中。我的最终目标是通过在本地机器上使用 kubectl 与 minikube 集群进行交互,就像我的其他 AWS EKS 集群一样。

标签: kuberneteskubectlminikubekubeconfig

解决方案


要了解您在本地计算机~/.kube/config文件中需要什么,请检查~/.kube/config远程 VM 本身上的文件。

您会发现您需要在本地机器的~/.kube/config文件中添加这 3 项:

  1. 簇下的簇
  2. 语境下的语境
  3. 用户下的用户

要添加这 3 个项目,首先需要将这 3 个文件从远程 VM 复制到本地计算机:

  1. ca.crt(通常位于~/.minikube/profiles/minikube/ca.crt
  2. client.crt(通常位于~/.minikube/profiles/minikube/client.crt
  3. client.key(通常位于~/.minikube/profiles/minikube/client.key

现在,您需要对这 3 个文件进行 base64 编码。例如,如果您使用的是 macOS,则可以使用以下命令:

base64 -i <input_file> -o <output_file>

现在您已准备好更新本地计算机的~/.kube/config文件。

  1. 在集群下添加这个集群:
- cluster:
    certificate-authority-data: <base64 of ca.crt file>
    server: <same ip as remote VM's kubeconfig file, since you've used vm-driver=none>
  name: minikube
  1. 在上下文下添加此上下文(与远程 VM 的值相同)
- context:
    cluster: minikube
    user: minikube
  name: minikube
  1. 在 users 下添加此用户
- name: minikube
  user:
    client-certificate-data: <base64 of client.crt file>
    client-key-data: <base64 of client.key file>

推荐阅读