SSH 进入 DC/OS 创建的 public 代理节点以部署 Docker 容器?
SSH into a DC/OS created public agent node to deploy a Docker container?
问:我希望通过 SSH 连接到 DC/OS public 代理以使用 Docker 凭据装载我的文件共享,这样我就可以通过 Marathon 部署 Docker。 我如何直接通过 ssh 连接到这个代理节点? 不通过主节点?
背景故事:我在 Azure 上进行了普通 DC/OS 安装。我配置了两个节点(一个主节点和一个代理节点)。我在master上安装了Marathon。
首先,我尝试通过 Marathon 从我在 Azure 容器注册表上创建的 image/repo 部署一个容器。由于 CPU 资源未得到满足而失败;这在一定程度上是可以理解的,因为 Marathon 似乎吸收了主节点的整个 CPU。但我不知道如何让 Marathon 注意到周围还有另一个节点 - public 代理节点。 public 代理节点 运行 什么都没有。
Second,我想我可以只使用 DC/OS 层本身提供的 "Service" 接口(我相信这只是一个 UI 马拉松或类似比赛的图层)。
这一次,它准确地识别了代理节点并且上面有可用的计算。但是为了让它从我的私有注册表中提取,我需要将我的 Docker 凭据放在这个节点上。这就是我卡住的地方。无法通过 SSH 连接到代理节点以安装共享存储(已安装在主节点上)。由于此节点是通过虚拟机规模集预配的,我真的无法找出正确的入站 NAT 规则和网络安全配置来映射到此节点并获得可靠的 FQDN 和端口,以允许我通过 SSH 进入和 运行 cifs
。老实说,DC/OS 应该为我解决这个问题,因为我正在做最标准的事情。
我试过了,但它不是 sufficient/correct(即使它创建了规则):
az network lb inbound-nat-rule create --resource-group production --lb-name <lb-name> --name NATRule --protocol TCP --frontend-port 2200 --backend-port 22
(Microsoft 的所有精心制作的 VMSS 视频都是针对旧界面的,以及端口范围映射的想法,我似乎无法从 CLI 中弄清楚。另外,门户网站仍在进行中入站 NAT 规则)
我是 Azure 和 DC/OS 世界的新手(从 AWS 转移资源),因此非常感谢您的帮助。
UPDATE:Fwiw,事实证明我在 Azure 服务上尝试了预览中的 DC/OS,而不是 DC/OS on Azure Container Service,还是有点不稳定。通过主 DC/OS 上的 "Services" 界面启动容器,而不是在 Marathon 上。
I really can't figure out the right inbound NAT rules and network
security configuration to map to this node and get me a reliable FQDN
and port that will allow me to SSH in and run cifs.
目前,我们可以通过 CLI 2.0 将入站规则添加到 VMss 负载均衡器,但是我们不能使用 CLI 2.0 来分离目标 NIC,因此我们不能使用 NAT 来 ssh VMss 实例。
如果您在此 VMSS 中只有 一个 实例,我们可以添加一个 负载平衡器规则 来 ssh 它。添加端口 22 的探测,并添加 22 的负载均衡器规则,之后我们可以使用端口 22 ssh VMSS public IP 地址。
另一种方式,登录DCOS节点,我们可以通过master ssh到其他节点。例如,我们可以 ssh 到 master,然后 ssh 到 public agent。
这里有一个案例讲一下如何通过master登录DCOS agent,请参考。
之后,我们可以按照此 article 将 Azure 文件共享 装载到您的群集节点。
顺便说一句,我们可以通过DC/OSUI创建容器,请参考it。
你能描述一下你想要达到的目标吗?您确实描述了您所做的事情,而这一切似乎都相当。这里似乎有两件事:
1) 将 ACR 与 DC/OS - https://docs.microsoft.com/en-us/azure/container-service/container-service-dcos-acr
一起使用
2) 提供对 public 容器的访问权限 - 请参阅 https://docs.microsoft.com/en-us/azure/container-service/container-service-enable-public-access
如果这些不能满足您的需求,请编辑您的问题以描述您想要实现的目标。
问:我希望通过 SSH 连接到 DC/OS public 代理以使用 Docker 凭据装载我的文件共享,这样我就可以通过 Marathon 部署 Docker。 我如何直接通过 ssh 连接到这个代理节点? 不通过主节点?
背景故事:我在 Azure 上进行了普通 DC/OS 安装。我配置了两个节点(一个主节点和一个代理节点)。我在master上安装了Marathon。
首先,我尝试通过 Marathon 从我在 Azure 容器注册表上创建的 image/repo 部署一个容器。由于 CPU 资源未得到满足而失败;这在一定程度上是可以理解的,因为 Marathon 似乎吸收了主节点的整个 CPU。但我不知道如何让 Marathon 注意到周围还有另一个节点 - public 代理节点。 public 代理节点 运行 什么都没有。
Second,我想我可以只使用 DC/OS 层本身提供的 "Service" 接口(我相信这只是一个 UI 马拉松或类似比赛的图层)。
这一次,它准确地识别了代理节点并且上面有可用的计算。但是为了让它从我的私有注册表中提取,我需要将我的 Docker 凭据放在这个节点上。这就是我卡住的地方。无法通过 SSH 连接到代理节点以安装共享存储(已安装在主节点上)。由于此节点是通过虚拟机规模集预配的,我真的无法找出正确的入站 NAT 规则和网络安全配置来映射到此节点并获得可靠的 FQDN 和端口,以允许我通过 SSH 进入和 运行 cifs
。老实说,DC/OS 应该为我解决这个问题,因为我正在做最标准的事情。
我试过了,但它不是 sufficient/correct(即使它创建了规则):
az network lb inbound-nat-rule create --resource-group production --lb-name <lb-name> --name NATRule --protocol TCP --frontend-port 2200 --backend-port 22
(Microsoft 的所有精心制作的 VMSS 视频都是针对旧界面的,以及端口范围映射的想法,我似乎无法从 CLI 中弄清楚。另外,门户网站仍在进行中入站 NAT 规则)
我是 Azure 和 DC/OS 世界的新手(从 AWS 转移资源),因此非常感谢您的帮助。
UPDATE:Fwiw,事实证明我在 Azure 服务上尝试了预览中的 DC/OS,而不是 DC/OS on Azure Container Service,还是有点不稳定。通过主 DC/OS 上的 "Services" 界面启动容器,而不是在 Marathon 上。
I really can't figure out the right inbound NAT rules and network security configuration to map to this node and get me a reliable FQDN and port that will allow me to SSH in and run cifs.
目前,我们可以通过 CLI 2.0 将入站规则添加到 VMss 负载均衡器,但是我们不能使用 CLI 2.0 来分离目标 NIC,因此我们不能使用 NAT 来 ssh VMss 实例。
如果您在此 VMSS 中只有 一个 实例,我们可以添加一个 负载平衡器规则 来 ssh 它。添加端口 22 的探测,并添加 22 的负载均衡器规则,之后我们可以使用端口 22 ssh VMSS public IP 地址。
另一种方式,登录DCOS节点,我们可以通过master ssh到其他节点。例如,我们可以 ssh 到 master,然后 ssh 到 public agent。
之后,我们可以按照此 article 将 Azure 文件共享 装载到您的群集节点。
顺便说一句,我们可以通过DC/OSUI创建容器,请参考it。
你能描述一下你想要达到的目标吗?您确实描述了您所做的事情,而这一切似乎都相当。这里似乎有两件事:
1) 将 ACR 与 DC/OS - https://docs.microsoft.com/en-us/azure/container-service/container-service-dcos-acr
一起使用2) 提供对 public 容器的访问权限 - 请参阅 https://docs.microsoft.com/en-us/azure/container-service/container-service-enable-public-access
如果这些不能满足您的需求,请编辑您的问题以描述您想要实现的目标。