【发布时间】:2018-11-17 19:59:52
【问题描述】:
我们之前基于 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 资源
将在我完成整个过程时更新。
【问题讨论】:
标签: azure kubernetes continuous-integration gitlab azure-aks