kubernetes 如何在不进入Pod的情况下自动更新运行Pod中的/etc/hosts文件条目

cczfrluj  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(1)|浏览(119)

我们如何在运行Pod的/etc/hosts文件中自动更新(* 删除,创建,更改 *)条目,而不实际进入Pod?
我们致力于 SAP 应用服务器的容器化,到目前为止,我们已经成功地使用 Kubernetes 实现了这一目标。

apiVersion: v1
kind: Pod
spec:
  hostNetwork: true

字符串
由于我们使用的是主机网络方法,因此每当创建新pod时,VM /etc/hosts文件的所有条目都会被复制。
但是,一旦pod创建并处于运行状态,对VM /etc/hosts文件的任何更改都不会传输到已经运行的pod。
我们希望实现我们的项目要求。

uyhoqukh

uyhoqukh1#

Kubernetes确实有几种不同的方式来影响名称解析,您的请求最类似于here和相关页面。
这是一个摘录,强调我的。
当DNS和其他选项不适用时,向Pod的/etc/hosts文件添加条目可提供Pod级别的主机名解析覆盖。在1.7中,用户可以使用PodSpec中的HostAliases字段添加这些自定义条目。

不建议不使用HostAliases进行修改,因为该文件由Kubelet管理,并且在Pod创建/重新启动期间可能会被覆盖。

使用HostAliases的Pod规范示例如下:

apiVersion: v1
kind: Pod
metadata:
  name: hostaliases-pod
spec:
  restartPolicy: Never
  hostAliases:
  - ip: "127.0.0.1"
    hostnames:
    - "foo.local"
    - "bar.local"
  - ip: "10.1.2.3"
    hostnames:
    - "foo.remote"
    - "bar.remote"
  containers:
  - name: cat-hosts
    image: busybox
    command:
    - cat
    args:
    - "/etc/hosts"

字符串
这里的一个问题是,如果您的网络IP发生变化,您将需要更新并使用一组新的HostAliases重新启动Pod。这可能会导致系统停机。
您确定需要此机制而不是指向外部终结点的服务吗?

相关问题