Итак, я развертываю свой стек приложений на kubernetes sing helt charts, и теперь мне нужно добавить некоторые зависимые ip и hostname сервера в мой файл pods / etc / hosts, поэтому нужна помощь в этом сценарии

1
Satyashil Deshpande 31 Май 2019 в 10:01

2 ответа

Лучший ответ

Как указано в документации, вы можете добавить дополнительные хосты в 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"
1
Jakub Bujny 31 Май 2019 в 07:05

Kubernetes предоставляет службу DNS, которую могут использовать все модули. , В свою очередь, вы можете определить службу ExternalName, которая просто определяет DNS запись. Как только вы это сделаете, ваши модули могут общаться с этим сервисом так же, как они общались с любым другим сервисом Kubernetes, и достигать любого сервера.

Вы можете развернуть набор служб ExternalName по всему миру. Вы можете сделать это в таблице Хелма тоже, если хотите, что-то вроде

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

Практика, которую я изучил, состоит в том, что вы должны избегать использования /etc/hosts, если это возможно

1
David Maze 31 Май 2019 в 11:30