Назад | Перейти на главную страницу

NFS в Google Cloud Container Engine не может разрешить имя хоста сервера

Что у меня есть:

Развертывание Kubernetes в кластере с ОС, оптимизированной для контейнеров, в качестве ОС узла

Результат cat /etc/*-release

Далее файл deployment.yaml

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: eu.gcr.io/my-project/my-app
          ports:
          - containerPort: 8013

          volumeMounts:
          - mountPath: /my/cache/
            name: cache

       volumes:
       - name: cache
         nfs:
           server: cache
           path: /cache/my-app/
           readOnly: false

Проблема в том, что nfs-mount работает, когда я явно ввожу IP-адрес, но по какой-либо причине невозможно разрешить имя хоста.

volumes:
   - name: cache
     nfs:
       server: 192.168.1.1 # this example would work
       path: /cache/my-app/
       readOnly: false

Однако с введенным именем хоста mount.nfs завершается с

Ошибка монтирования: статус выхода 32 ... Вывод: mount.nfs: Не удалось разрешить кеш сервера

Однако я могу пинговать сервер по имени хоста из Node. Это также работает, когда я использую обычную виртуальную машину-контейнер, указывая, что это может быть проблема с ОС Googles, оптимизированной для контейнеров ...

Как я могу сказать Kubernetes разрешить сервер nfs-mount по имени хоста?

Кажется, это известная проблема, отслеживаемая на github [1] [2]. В качестве обходного пути вы можете «скопировать /etc/resolv.conf из виртуальной машины GCE (он будет включать путь поиска GCP, DNS-преобразователь метаданных) в каталог chroot env (/ home / kubernetes / containerized_mounter / rootfs)» и использовать NFS Полное доменное имя, например: имя-сервера.svc.cluster.local в качестве имени хоста.

К тому же, Вот это [3] запрос на вытягивание (PR) на github для настройки DNS-сервера в контейнерном пути монтирования для разрешения имени хоста.

[1] https://github.com/kubernetes/kubernetes/issues/48212

[2] https://github.com/kubernetes/kubernetes/pull/42376

[3] https://github.com/kubernetes/kubernetes/pull/51645