Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何在头盔图表中添加额外的主机条目_Kubernetes_Kubernetes Helm - Fatal编程技术网

Kubernetes 如何在头盔图表中添加额外的主机条目

Kubernetes 如何在头盔图表中添加额外的主机条目,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,因此,我正在kubernetes sing helm charts上部署我的应用程序堆栈,现在我需要在我的pods/etc/hosts文件中添加一些依赖的服务器ip和主机名,因此需要有关此场景的帮助。作为长期文档,您可以使用此功能向POD添加额外的主机 文档中的示例: apiVersion: v1 kind: Pod metadata: name: hostaliases-pod spec: restartPolicy: Never hostAliases: - ip: "127

因此,我正在kubernetes sing helm charts上部署我的应用程序堆栈,现在我需要在我的pods/etc/hosts文件中添加一些依赖的服务器ip和主机名,因此需要有关此场景的帮助。

作为长期文档,您可以使用此功能向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"
Kubernetes提供了一个所有吊舱都可以使用的平台。反过来,您可以定义仅定义DNS记录的。一旦你这样做了,你的吊舱就可以像与其他Kubernetes服务一样与该服务进行通信,并到达任何服务器

您可以全局部署一组ExternalName服务。如果你愿意的话,你也可以在舵图上这样做,比如

apiVersion: v1
kind: Service
metadata:
  name: {{ .Release.Name }}-{{ .Chart.Name }}-foo
spec:
  type: ExternalName
  externalName: {{ .Values.fooHostname }}

我学到的实践是,如果可能的话,应该避免使用
/etc/hosts

原始问题的helm模板解决方案。我用头盔3测试了这个

apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
    {{- with .Values.hostAliases }}
      hostAliases:
{{ toYaml . | indent 8 }}
    {{- end }}
对于以下值:

hostAliases:
  - ip: "10.0.0.1"
    hostnames:
    - "host.domain.com"

如果在值中省略或注释掉HostAlias,则在呈现模板时将省略HostAlias部分。

此解决方案将在列表的第一个元素中创建错误的格式。以下代码适用于我在helm v3.5.0<代码>主机别名:{{-.Values.hostaliasses | toYaml | nindent8}