【问题标题】:How to update application code which is deployed to Kubernetes (EKS)?如何更新部署到 Kubernetes (EKS) 的应用程序代码?
【发布时间】:2018-10-11 09:17:50
【问题描述】:

我已经使用 EKS https://github.com/kubernetes/examples/tree/master/guestbook-go 为 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 的新手,正在寻找学习它的好步骤

【问题讨论】:

    标签: docker kubernetes amazon-eks


    【解决方案1】:

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

    1. 对存储库进行 git 克隆。

    2. 在本地修改public/index.html。

    3. 使用 docker build .... 进行 Docker 构建

    4. 将图像推送到注册表(https://hub.docker.com/https://cloud.google.com/container-registry/ 或其他地方)。该命令取决于注册表。另外,请确保图像是公开的。

    5. 在 guestbook-controller.json 中适当更新图像。

    6. 按照 README.md 中提到的步骤进行操作。

    如果您想更新已在运行的现有 K8S 应用程序中的映像,则必须按照 here 所述进行滚动更新。

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

    仅供参考.....示例使用过时的ReplicationController(在guestbook-controller.json 中提到),推荐使用Deployment

    【讨论】:

    • 谢谢,这很有用。是的,我已经运行了配置成功的 Web 应用程序。我可以忽略我拥有 ReplicationController(不是最佳实践)并进行滚动更新以快速获胜的事实吗?此命令是否会更新 guestbook-controller.json 中的 "image" 参数,并使用我在该命令中使用的新映像版本?
    • 我可以回答我自己的问题。 kubectl rolling-update guestbook --image=docker.io/<your account>/<your repository>:<your tag name> 将内部 Kubernetes 配置完全更新到新版本,因此应该成功部署新代码。我使用了hub.docker.com Docker 镜像注册表。
    猜你喜欢
    • 2020-02-21
    • 2012-09-25
    • 1970-01-01
    • 2017-01-06
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多