【问题标题】:Get a Shell to running container inside "Traefik" Pod on k8s在 k8s 上的“Traefik”Pod 中获取一个运行容器的 Shell
【发布时间】:2020-02-11 22:18:58
【问题描述】:

我们尝试使用以下命令将外壳附加到“Traefik”Pod 内的容器,但没有成功。仅供参考,我们使用 helm chart 在我们的 k8s 集群上安装 Traefik。

kubectl exec -it <traefik Pod name> -- /bin/sh

也尝试过,但没有成功 - kubectl exec -it <traefik Pod name> -- /bin/bash

在这方面的任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 您收到任何错误消息吗?
  • 你有什么特别的理由要进入traefik pod吗?也许你想要达到的结果可以通过其他措施来完成。
  • @DawidKruk,我们在 k8s 上部署了 PEGA CRM 平台。工作节点使用 GMT 时区,但需要在 pega 相关 JVM 上将时区更新为 CST。我们这样做了,当我们直接使用 Pod IP 启动门户时(它们目前是可路由的)它工作正常。但是当我们通过时。 Traefik(在集群中充当 Ingress 控制器),它采用 GMT 时区。所以我们只是想将一个 shell 附加到 traefik pod 以手动更改时区,然后看看它在报告中的反映..

标签: kubernetes traefik traefik-ingress


【解决方案1】:

Traefik 1.7 使用一个 FROM scratch 容器镜像,它只有 Traefik 可执行文件和一些支持文件。没有外壳。您必须切换到图像的-alpine 变体。对于 2.x,出于某种原因,它们似乎默认使用 Alpine。

【讨论】:

  • 感谢@coderanger。我会尝试 2.x 并让您知道结果。
  • 我尝试并收到以下错误 - “命令 traefik 错误:未找到字段,节点:压缩”
  • 尝试使用以下图像 traefik:v1.7.20-alpine,它对我们有用。我们能够将外壳附加到 traefik pod 中正在运行的容器。
  • 我应该补充一点,以交互方式更改时区文件可能没有任何效果,所以这一切都是徒劳的。如下所述,您可以使用 hostPath 挂载在容器中设置时区。
  • 我们希望 traefik 容器中的不同时区与运行该容器的主机(工作节点)相匹配。我找到了一个解决方案..那就是在 Traefil helm chart "Values.yaml" 文件中设置 env 变量.. 它工作得非常好..
【解决方案2】:

你可以通过挂载音量来改变时区

volumes:
- "/etc/timezone:/etc/timezone:ro"
- "/etc/localtime:/etc/localtime:ro"

参考:https://bobcares.com/blog/change-time-in-docker-container/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 2020-01-14
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多