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

Kubernetes 如何在不进入Pod的情况下自动更新运行Pod中的/etc/hosts文件条目,kubernetes,sap,Kubernetes,Sap,如何在不实际进入Pod的情况下自动更新(删除、创建、更改)运行Pod的/etc/hosts文件中的条目 我们致力于SAP应用服务器的容器化,目前为止,我们已经成功地使用Kubernetes实现了这一点 由于我们使用主机网络方法,每当创建新pod时,我们的VMs/etc/hosts文件的所有条目都会被复制 但是,一旦pod创建并处于运行状态,对VMs/etc/hosts文件的任何更改都不会传输到已经运行的pod 我们希望为我们的项目需求实现这一点。Kubernetes确实有几种不同的方式影响名称解

如何在不实际进入Pod的情况下自动更新(删除、创建、更改)运行Pod的
/etc/hosts
文件中的条目

我们致力于SAP应用服务器的容器化,目前为止,我们已经成功地使用Kubernetes实现了这一点

由于我们使用主机网络方法,每当创建新pod时,我们的VMs
/etc/hosts
文件的所有条目都会被复制

但是,一旦pod创建并处于运行状态,对VMs
/etc/hosts
文件的任何更改都不会传输到已经运行的pod


我们希望为我们的项目需求实现这一点。

Kubernetes确实有几种不同的方式影响名称解析,您的请求与相关页面最为相似

这是我的摘录

当DNS和其他选项不适用时,向Pod的/etc/hosts文件添加条目可提供Pod级别的主机名解析覆盖。在1.7中,用户可以使用PodSpec中的hostAlias字段添加这些自定义条目

不建议不使用主机别名进行修改,因为该文件由Kubelet管理,在Pod创建/重新启动期间可以在上覆盖。

使用主机别名的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发生变化,您需要使用一组新的
主机别名更新并重新启动POD。这可能会导致系统停机


你确定你需要这个机制而不是吗?

你好,Jayesh,欢迎来到StackOverflow!你会看到,我们中的一些人一直在编辑你的问题,使之更好地融入网站的风格。多了解一下您的项目需求会很有用,这样主题专家就可以提供相关建议,而无需猜测您想要实现的目标。
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"