Je déploie donc ma pile d'applications sur les graphiques de barre de chant kubernetes et je dois maintenant ajouter des adresses IP et des noms d'hôte de serveur dépendants dans mon fichier pods / etc / hosts, j'ai donc besoin d'aide sur ce scénario
3 Réponses :
Comme dans la documentation, vous pouvez ajouter des hôtes supplémentaires au POD en utilisant alias d'hôte fonctionnalité
Exemple tiré de la documentation:
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 fournit un service DNS que tous les pods utiliser. À son tour, vous pouvez définir un service ExternalName qui définit simplement un Enregistrement DNS. Une fois que vous avez fait cela, vos pods peuvent parler à ce service de la même manière qu'ils parleraient à n'importe quel autre service Kubernetes, et atteindre n'importe quel serveur.
Vous pouvez déployer un ensemble de services ExternalName à l'échelle mondiale. Vous pouvez également le faire dans un graphique Helm, si vous le souhaitez, quelque chose comme
apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }}-{{ .Chart.Name }}-foo spec: type: ExternalName externalName: {{ .Values.fooHostname }}
La pratique que j'ai apprise est que vous devriez éviter d'utiliser / etc / hosts
si possible.
Une solution basée sur un modèle à la question d'origine. J'ai testé ceci avec helm 3.
hostAliases: - ip: "10.0.0.1" hostnames: - "host.domain.com"
Pour des valeurs telles que:
apiVersion: apps/v1 kind: Deployment spec: template: spec: {{- with .Values.hostAliases }} hostAliases: {{ toYaml . | indent 8 }} {{- end }}
Si hostAliases est omis ou commenté dans les valeurs, la section hostAliases est omise lors du rendu du modèle.