Kubernetes 如何在头盔图表中添加额外的主机条目
因此,我正在kubernetes sing helm charts上部署我的应用程序堆栈,现在我需要在我的pods/etc/hosts文件中添加一些依赖的服务器ip和主机名,因此需要有关此场景的帮助。作为长期文档,您可以使用此功能向POD添加额外的主机 文档中的示例: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
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}