我觉得我缺少有关如何正确标记docker映像和使用k8s提取映像的基本知识。
我的情况: 我有一个质量检查,阶段和生产环境。我正在使用Jenkins生成映像并将其推送到Azure容器注册表(ACR)。对于每个环境,我都有一个Azure Kubernetes服务群集,并且具有从ACR提取映像的部署。我们或多或少使用GitFlow作为我们的分支策略。将功能分支合并到开发中后,我们要构建并标记新的质量检查图像。在上演舞台时,我们切下一个发布分支,然后从发布分支手动启动Jenkins舞台图像的构建/标记/推送。然后,在完成阶段测试之后,我们希望将阶段图像重新标记为prod并进行推送。
我已经读了很多书,而且似乎大多数人建议使用git commit哈希作为标签,以便image标签是唯一的,并且易于了解您的环境中正在运行什么。另一种选择是只使用qa,stage,prod标签并使用相同的标签推送新图像。这种选择似乎不被接受。
我的问题: 我如何使用唯一标签(git commit hash或其他方式),仍然能够在我的k8s清单中使用正确的标签提取图像。在不为每个环境使用静态标签的情况下,我的部署如何在提取映像时知道要寻找的标签?
广为人知,但是如何使标签唯一?
containers:
- name: container-name
image: repository/imagename:qa
imagePullPolicy: Always