如何更新部署到 Kubernetes (EKS) 的应用程序代码?

How to update application code which is deployed to Kubernetes (EKS)?

我已经使用 EKS 配置了 guestbook-go 应用程序的集群 https://github.com/kubernetes/examples/tree/master/guestbook-go

并遵循官方教程 https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html

假设我要修改 public/index.html 文件。在 Docker 文件中,我可以看到该文件已复制到容器中:

COPY ./public/index.html public/index.html

guestbook-controller.json 我可以看到它被使用的图像: "image":"k8s.gcr.io/guestbook:v3",

修改 index.html 和部署这个新版本的正确方法是什么? 我需要重建这个图像吗?那么上传到哪里比较合适,如何在AWS上使用kubernetes工具部署呢?

非常感谢,作为 Kubernetes 的新手,正在寻找学习它的好步骤

以下是使用新图像设置新应用程序的高级步骤。

  1. Do a git clone of the repository.

  2. Modify the public/index.html locally.

  3. Do a Docker build using docker build ....

  4. Push the image to a registry (https://hub.docker.com/ or https://cloud.google.com/container-registry/ or some where else). The command depends on the registry. Also, make sure that the image is public.

  5. Update the image appropriately in guestbook-controller.json.

  6. Follow the steps as mentioned in the README.md.

如果您想要更新现有 K8S 应用程序中的映像 运行,则必须按上述方式进行滚动更新 here

仅供参考.....在不创建图像的情况下,index.html 也可以通过将新的 index.html 复制到所有 运行 Pods 来修改,如前所述.

仅供参考.....该示例使用 ReplicationController which is outdated (mentioned in guestbook-controller.json), a Deployment 是推荐的方式。