【问题标题】:How to deploy to a VM running a microk8s cluster with kubectl?如何使用 kubectl 部署到运行 microk8s 集群的 VM?
【发布时间】:2021-07-28 03:29:03
【问题描述】:

我有一台运行 Hyper-V 虚拟机的 Windows 10 机器和 Ubuntu 来宾。 在 Ubuntu 上,我的单​​节点 Kubernetes 集群安装了 Microk8s。

我不知道如何在 Win10 上设置我的 kubectl 以允许在 vm 中的 microk8s 集群上进行部署。

Atm,从外部,我可以 ssh 进入 vm,并且可以访问 microk8s 的仪表板代理(在本例中为本地 https://ubuntuk8s:10443)。

如何配置 kubectl on my windows 以部署到 vm 内的 microk8s

【问题讨论】:

    标签: ubuntu kubernetes virtual-machine kubectl microk8s


    【解决方案1】:

    简而言之,您可以将文件从kubectl 正在使用的microk8s 实例(kubeconfig) 复制到Windows 机器,以便连接到您的microk8s 实例。


    由于您已经在 Windows 机器和配置了 microk8s 的 Ubuntu 之间建立了完全连接,因此您需要:

    • 在 Windows 机器上安装 kubectl
    • 复制并修改 Windows 计算机上的 kubeconfig 文件
    • 测试连接

    安装kubectl

    您可以通过以下链接参考有关该问题的官方文档:


    复制并修改 Windows 机器上的 kubeconfig 文件

    重要!

    经过一番研究,我找到了更简单的方法。

    您需要在您的 microk8s 主机上运行 microk8s.config 命令。它将为您提供连接到您的实例所需的配置,您无需编辑任何字段。您只需在 Windows 机器上将其与 kubectl 一起使用。

    我在下面部分给出了如何检查配置文件所在位置的选项之一

    这将取决于您使用的工具,但其主要思想是登录到您的 Ubuntu 机器,检查 kubeconfig 的位置,将其复制到 Windows 机器并编辑它以指向 IP 地址你的microk8s 实例(不是127.0.0.1)。

    如果您可以将SSH 转换为VM,您可以运行以下命令来检查配置文件的位置(我认为这更像是一种变通解决方案):

    • microk8s kubectl get pods -v=6
    I0506 09:10:14.285917  104183 loader.go:379] Config loaded from file:  /var/snap/microk8s/2143/credentials/client.config
    I0506 09:10:14.294968  104183 round_trippers.go:445] GET https://127.0.0.1:16443/api/v1/namespaces/default/pods?limit=500 200 OK in 5 milliseconds
    No resources found in default namespace.
    

    正如您在此示例中所见,文件位于(在您的设置中可能有所不同):

    • /var/snap/microk8s/2143/credentials/client.config

    您需要通过scp 或其他方式将此文件复制到您的Windows 机器上。

    复制后,您需要编辑此文件以更改负责指定kubectl 应连接到何处的字段:

    • 之前:
      • server: https://127.0.0.1:16443
    • 之后:
      • server: https://ubuntuk8s:16443

    测试连接

    检查您是否可以从 Windows 机器连接到 microk8s 实例的方法之一如下:

    PS C:\Users\XYZ\Desktop> kubectl --kubeconfig=client.config get nodes -o wide
    NAME     STATUS   ROLES    AGE    VERSION                     INTERNAL-IP     EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION     CONTAINER-RUNTIME
    ubuntu   Ready    <none>   101m   v1.20.6-34+e4abae43f6acde   192.168.0.116   <none>        Ubuntu 20.04.2 LTS   5.4.0-65-generic   containerd://1.3.7
    

    地点:

    • --kubeconfig=client.config 指定您下载的文件

    其他资源:

    【讨论】:

    • 谢谢大卫!这有很大帮助!唯一不起作用的是将 IP 更改为机器名称。这给了我以下错误:“加载配置文件时出错“C:\Users\joern/.kube/config”:v1.Config.Contexts:[]v1.NamedContext:集群:[]v1.NamedCluster:v1.NamedCluster。名称:集群:v1.Cluster.Server:CertificateAuthorityData:解码 base64:输入字节 107 处的非法 base64 数据,在 ...|VUF\u003e","server":|... 的 #10 字节中发现错误,更大的上下文...|QVBOaDNsaEd5eWhJTUEwR0NTcUdTSWIzRFFFQkN3VUF\u003e","server":"ubuntuk8s:16443"},"name":"micro|..."
    • 实际上,基本访问是使用复制到我的 kubectl 配置文件的 microc8s.config 命令的输出。还有一个IP地址,我不能在不破坏东西的情况下更改为机器名称
    猜你喜欢
    • 2018-11-07
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 2017-05-31
    • 2011-01-07
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多