我在azure上运行kubernetes集群,没有任何公共访问(不是AKS)。
我想使用kubernetes服务连接从azure devops运行kubctl命令。我用它导入证书并指向公共IP,部署工作正常。
但我想知道是否有可能在没有公共机器的情况下访问资源组的vm(可能使用vnet或网关)?
如果您运行的是Azure Kubernetes群集,那么在Azure DevOps中建立与AKS服务的服务连接非常容易。在该设置下,运行脚本将通过Microsoft数据中心内的Azure自动化安全地完成。
但是,由于您运行自己的Kubernetes集群,因此它基本上就像运行一组恰好位于Azure中的虚拟机。为了让Azure DevOps对您的群集执行命令,您需要提供它可以访问的IP地址,并且由于这些计算机位于不同的网络中,因此您需要在公共IP地址上公开您的群集。这确实感觉像是一个漏洞。
我可以想到两个选择:
有关构建代理的说明 - 它们不需要防火墙规则,因为它们与Azure DevOps进行出站通信。所有触发器和交互都发生在Azure DevOps网站上,但实际工作被委托给代理。