Ошибки извлечения изображений GKE для определенных общедоступных образов Docker Hub

Я использую GKE для развертывания некоторых общедоступных образов, таких как redis и postgres. Но я столкнулся с интересной проблемой, когда он не извлекает изображения, по-видимому, с определенными тегами. Я все время получаю следующую ошибку:

Не удалось получить изображение "postgres:alpine": ошибка rpc: code = Unknown desc = Ошибка, ответ от демона: получить https://registry-1.docker.io/v2/: net / http: запрос отменен во время ожидания подключения (Client.Timeout превышен при ожидании заголовков)

Я пытался найти закономерность в тех, которые работают, и в тех, которые не работают, кажется, что без тегов всегда работают; Некоторые примеры изображений, которые работали:

  • redis:alpine
  • postgres

И те, у которых нет:

  • postgres:alpine
  • postgres:12

Я подтвердил, что могу загрузить все эти изображения на свой локальный компьютер, используя docker pull.

Вот пример файла kube для развертывания, который я использовал:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
        - image: postgres:alpine
          name: postgres
          ports:
            - containerPort: 5432
              name: postgres

Надеюсь, я пропустил что-то очень очевидное. Ура.

1 ответ

Решение

Надеюсь, я пропустил что-то очень очевидное. Ура.

Я думаю, вы ничего не пропустили и наверняка все, что очевидно и может быть легко указано в вашей конфигурации.

Я искал некоторую информацию, связанную с этой проблемой, и оказалось, что она уже широко обсуждалась, например, здесь, и были предоставлены различные решения.

Об этом также сообщалось на GitHub:

  1. https://github.com/docker/for-win/issues/611
  2. https://github.com/moby/moby/issues/32270

А также на форумах докеров.

Подведем итоги:

  1. Похоже, что в некоторых случаях проблема может быть связана с использованием дополнительного брандмауэра или прокси. См. Также этот пост.
  2. Может быть связано с настройками DNS и настройкой8.8.8.8поскольку ваш основной DNS обычно решает проблему. Многие люди в разных темах на GitHub сообщили, что это решение сработало для них, например, здесь или здесь.

Или даже простой перезапуск докера может помочь;)

Вышеупомянутые проблемы могут быть более вероятными при локальной установке кубернетов.

Что касается GKE, похоже, о подобной проблеме тоже сообщалось. Комментарии к этому общедоступному выпуску могут указывать на то, что проблема может возникать и в некоторых более новых версиях GKE.

Я обнаружил, что это также описано в официальных документах GKE, но обычно это происходит, и вы получаете аналогичное сообщение об ошибке при работе с частными кластерами, но это может предполагать, что даже в стандартных кластерах GKE проблема может быть связана с ограниченным исходящим подключением к общедоступному Интернету..

Другие вопросы по тегам