【问题标题】:Kubernetes with a fixed hostname for pods具有固定主机名的 Kubernetes
【发布时间】:2021-02-18 00:38:07
【问题描述】:

我们需要外部客户端通过在 Kubernetes 容器/会话上运行的静态主机名连接到 POD。问题是,每当我们重新启动会话时,我们都会为该容器生成一个新的主机名。有没有办法为 pod 获取一个固定的主机名,这样每次重启时它都不会改变??

$ kubectl get pods
NAME                                                              READY   STATUS             RESTARTS   AGE
anaconda-app-0072b5a97aad4bc5ba708a405609ad2e-74757d95fd-4cfms    2/2     Running            521        18d
anaconda-app-048b92d480d34da3a6602eace5f4c1c4-84d5669674-drx2c    1/2     CrashLoopBackOff   5086       77d
anaconda-app-0a529b10874e4c79a361050897bf3a00-64fdf8967f-ctc9z    2/2     Running            521        18d
anaconda-app-128b6866e59a408d937768835c04666c-5b774b8977-rhbp7    1/2     CrashLoopBackOff   5087       18d

如果我们可以在会话重新启动时为 pod 获取一个静态名称,那将是非常棒的,这样我们就可以为客户端提供一个静态 IP/主机名?

【问题讨论】:

  • 您应该在 Pod 前面有一个 Service,并且该 Service 的名称将是稳定的。
  • 您在一个问题中提出了两个不同的问题,它们的答案大相径庭:(a)“可以为 pod 获取固定的主机名”,通过设置 spec: hostname:(b)“连接到通过静态主机名的 POD”更像是 David 所说的,让外部世界可靠地连接到 一个 Pod 需要大量的工作,因为这不是 k8s 对世界的看法
  • @DavidMaze 当我运行 $ kubectl get serviceaccounts 时,它确实表明我确实有 serviceaccount,“anaconda-enterprise”,但我的 PODS 总是生成类似“anaconda-app-0072b5a97aad4bc5ba708a405609ad2e-74757d95fd-4cfms”的内容并且每次会话重新启动时都不同
  • 服务,而不是 ServiceAccount。是的,您的 Deployment 的每个副本都有不同的 pod 名称,并且每次您更改 Deployment 的任何部分时都会更改。
  • 请阅读有关Service 的文档。有你需要知道的一切。如果您认为这不适合您(我的意思是服务,而不是阅读)结帐StatefulSet。如果那时您仍然不知道该怎么做,请回来并用以前获得的知识提出更详细的问题。

标签: python kubernetes anaconda tabpy anaconda-cluster


【解决方案1】:

考虑使用一个副本运行有状态集。 statefulset 的主机名保持不变

【讨论】:

  • 谢谢。是否可以让混合工作负载和其他类似部署一起运行?
  • 能否详细说明
猜你喜欢
  • 1970-01-01
  • 2013-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-05-19
相关资源
最近更新 更多