如何从我的本地机器访问 minikube(安装在远程 VM 上)?

How to access minikube (installed on a remote VM) from my local machine?

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

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

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

您会发现您需要在本地计算机的 ~/.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. 在用户下添加此用户
- name: minikube
  user:
    client-certificate-data: <base64 of client.crt file>
    client-key-data: <base64 of client.key file>