我们之前基于 GitLab 的 CI/CD 使用对特定 REST API 端点的经过身份验证的 curl 请求来触发将更新的容器重新部署到我们的服务,如果您对基于 Kubernetes 的部署使用类似的东西,这个问题适合您。
更多背景
我们在 Azure AKS 群集上运行生产站点/应用程序(基于 Ghost 博客)。现在,我们手动将更新的容器推送到私有 ACR(Azure 容器注册表),然后使用 Kubectl 从命令行进行更新。
话虽如此,我们之前使用 Docker Cloud 进行编排,并使用 GitLab-Ci 完全集成重新部署我们的生产/登台服务。
GitLab-Ci 集成是目标,也是这个问题背后的“为什么”。
我的问题
由于我们之前使用过 Docker Cloud(哦,应该从一开始就使用 K8s),我们应该如何处理 GitLab-Ci 能够利用 Secrets 创建 Docker Cloud CLI 然后使用 Docker Cloud API 进行身份验证以触发操作的事实在我们的节点上(即使用新容器重新部署等)。
虽然我相信我们可以构建一个包含 Kubectl 和 Azure CLI 的容器(供我们的 GitLab-Ci 运行程序使用),但我知道 Kubernetes 也有一个类似的(与 docker cloud)Rest API 可以在这里找到(https ://kubernetes.io/docs/tasks/access-application-cluster/access-cluster)——特别是关于在没有 Kubectl 的情况下进行连接的部分似乎是相关的(关于 HTTP REST API 的部分也是如此)。
我对连接到 Azure(或可能的其他托管 Kubernetes 服务)的任何人的问题:
您的 Ci/CD 服务器如何通过 Kubernetes 服务提供商的管理服务器进行身份验证,然后您当前如何触发更新/重新部署更新的容器/服务?
如果您使用 Kubernetes HTTP Rest API 重新部署服务,您的想法将特别有价值!
我正在审查的 Kubernetes 资源
将在我完成整个过程时更新。