【问题标题】:SSH to Azure's Kubernetes managed master nodeSSH 到 Azure 的 Kubernetes 托管主节点
【发布时间】:2017-11-22 07:49:58
【问题描述】:

我刚刚使用 Azure 容器服务部署了一个托管 Kubernetes 集群。我的部署包括托管集群上的单个代理计算机和附加到它的 Azure 磁盘以进行持久存储。

我面临的问题是我不知道如何 ssh 这个代理服务器。我读到您应该能够 ssh 主节点并从那里连接到代理,但是由于我使用的是托管 Kubernetes 主节点,所以我找不到这样做的方法。

有什么想法吗?提前谢谢你。

【问题讨论】:

    标签: azure docker service kubernetes containers


    【解决方案1】:

    我面临的问题是我不知道如何 ssh 这个代理 服务器。

    你的意思是你创建了 AKS 却找不到主 VM?

    如果我理解正确,这是一种设计行为,AKS提供对集群的直接访问(例如使用 SSH)。

    如果您想通过 SSH 连接到代理节点,作为一种变通方法,我们可以创建公共 IP 地址并将此公共 IP 地址关联到代理的 NIC,然后我们可以通过 SSH 连接到这个代理。

    这是我的步骤:

    1.通过 Azure 门户创建公共 IP 地址:

    2.将公共 IP 地址关联到代理 VM 的 NIC:

    3.SSH 使用此公共 IP 地址连接到此 VM:

    注意:

    默认情况下,我们可以在尝试创建 AKS 时找到 ssh 密钥,如下所示:

    【讨论】:

    • 这就是我所期待的。感谢您的演练:)
    【解决方案2】:

    基本上,您甚至不必为该节点创建公共 IP。只需使用 Azure CLI 将公共 ssh 密钥添加到所需节点:

    az vm user update --resource-group <NODE_RG> --name <NODE_NAME> --username azureuser --ssh-key-value ~/.ssh/id_rsa.pub
    

    然后运行临时 pod(不要忘记在 kubernetes 配置中切换到所需的命名空间):

    kubectl run -it --rm aks-ssh --image=debian
    

    将私有 ssh 密钥复制到该 pod:

    kubectl cp ~/.ssh/id_rsa <POD_NAME>:/id_rsa
    

    最后,从 pod 到私有 IP 连接到 AKS 节点:

    ssh -i id_rsa azureuser@<NODE_PRIVATE_IP>
    

    这样,您不必为公共 IP 付费,另外,从安全角度来看,这也很好。

    【讨论】:

      【解决方案3】:

      最简单的方法是使用下面的方法,这将在节点上创建一个微型 priv pod 并使用 nsenter 访问该节点。

      https://github.com/mohatb/kubectl-wls

      【讨论】:

        猜你喜欢
        • 2021-12-11
        • 2019-04-24
        • 1970-01-01
        • 2020-09-27
        • 2019-07-28
        • 2022-06-06
        • 1970-01-01
        • 2020-05-07
        • 2019-08-09
        相关资源
        最近更新 更多