首页 > 解决方案 > 如何更新 kubernetes/docker 上的文件?

问题描述

我是 Docker/Kubernetes 的新手,继承了一个应用程序,我希望升级 pod 上的 JAR 文件。

这是吊舱:

Name:           app-name-7c7fddfc7c-vthhr
Namespace:      default
Node:           ip-ip-address-goes-here.us-east-2.compute.internal/ip.address.goes.here
Start Time:     Sat, 06 Jul 2019 19:19:37 +0000
Labels:         app=app-name
                pod-template-hash=3739889737
Annotations:    kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"app-name-7c7fddfc7c","uid":"d771243c-9992-11e8-ac11-0298f3...
Status:         Running
IP:             other.ip.address.here
Created By:     ReplicaSet/app-name-7c7fddfc7c
Controlled By:  ReplicaSet/app-name-7c7fddfc7c
Containers:
  app-name:
    Container ID:   docker://fefd826441f2d672c3e622727f6f3c26b9ece4e60c624b6dc96de6f8e97e336f
    Image:          remoteserver.com/app-name:1.24.237
    Image ID:       docker-pullable://remoteserver.com/app-name@sha256:5ffc7926e0437f89e7308b09514ec17cf0679fb20dbf97d78b307d7ee4fb13e2
    Port:           8080/TCP
    State:          Running
      Started:      Sat, 06 Jul 2019 19:19:52 +0000
    Ready:          True
    Restart Count:  0
    Limits:
      memory:  1200Mi
    Requests:
      cpu:     200m
      memory:  900Mi
    Environment:
      ...
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-nvwhs (ro)
Conditions:
  Type           Status
  Initialized    True
  Ready          True
  PodScheduled   True
Volumes:
  default-token-nvwhs:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-nvwhs
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.alpha.kubernetes.io/notReady:NoExecute for 300s
                 node.alpha.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>

据我所知,ReplicaSet 正在复制服务器和挂载卷,它们是 Amazon 快照。

我是否只是..将文件上传到 pod 并且由于它是一个已安装的卷(我的假设) - 它将永远更新?我是否理解这是如何准确工作的?

如果我缺少任何让专家了解我的用例的信息,我很乐意将其包含在内。我只是不完全知道我还不知道什么。

标签: dockerkubernetes

解决方案


Pod 是短暂的。你知道,“牛对宠物”。他们被屠宰,没有被带到兽医那里。

当您想添加新代码/新依赖项时,您可以构建一个新的 Docker 映像并将其部署到集群中。

在您的代码/CI 管道中的某处,有一个 Dockerfile 文件,它定义了将什么/如何添加到 Docker 映像中的依赖项。从那里开始,然后继续使用现有的 CI / CD 管道来部署到集群。它可能像调用 kubeclt 以将映像应用到集群的脚本一样简单。


推荐阅读