tocdepth

2

Как избежать последствий недоступности Docker Hub?

Недоступность Docker Hub может вызвать проблемы, если от загрузки образов из него зависят ваши приложения и процессы. Чтобы минимизировать последствия недоступности Docker Hub, можно:

Изменить публичный репозиторий по умолчанию

Изменить публичный репозиторий, используемый по умолчанию, можно:

Docker

Передайте параметр --registry-mirror с нужным значением вручную при запуске dockerd.

Чтобы не менять репозиторий каждый раз вручную:

  1. Добавьте в файл /etc/docker/daemon.json ключ-значение:

    {
       "registry-mirrors": ["https://your-registry-mirror-url"]
    }
    

    Где https://your-registry-mirror-url замените на URL нужного зеркала.

  2. Сохраните файл и перезапустите Docker, чтобы изменения вступили в силу.

containerd

  1. Убедитесь, что в /etc/containerd/config.toml задано:

    plugins."io.containerd.grpc.v1.cri".registry.config_path = "/etc/containerd/certs.d"
    
  2. Создайте файл /etc/containerd/certs.d/docker.io/hosts.toml с содержимым:

    server = "https://registry-1.docker.io"
    
    host."https://your-registry-mirror-url".capabilities = ["pull", "resolve"]
    

    Где https://your-registry-mirror-url замените на URL нужного зеркала.

  3. Перезапустите containerd.

При создании нового кластера Cloud Container Engine

Автоматизируйте процесс изменения публичного репозитория по умолчанию с помощью параметра Post-installation Command во время создания узла.

Загрузить образ через консоль SWR

Ограничения и особенности:

  • Одновременно можно загрузить не больше 10 файлов. Размер файла после распаковки не должен превышать 2 ГБ.

  • Пакет образа создается с использованием механизма контейнеров 1.11.2 или более поздней версии.

Перед началом работы:

Чтобы загрузить образ в SWR:

  1. Войдите в консоль управления Advanced:

  2. В списке сервисов выберите SoftWare Repository for Container.

  3. В меню слева перейдите в раздел My Images.

  4. В правом верхнем углу нажмите Upload Through SWR.

  5. Выберите организацию, нажмите Select File и выберите файлы для загрузки.

  6. Над списком файлов нажмите Upload, чтобы начать загрузку файлов по очереди.

Использовать образы из сторонних репозиториев

Cloud Container Engine позволяет создавать рабочие нагрузки, используя образы из сторонних репозиториев. Для доступа к стороннему хранилищу образов может потребоваться аутентификация. В таком случае для данных аутентификации нужно создать секрет (en).

Указать сторонний репозиторий можно через консоль управления или kubectl.

Примечание

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

Через консоль управления

  1. Войдите в консоль управления Advanced:

  2. В списке сервисов выберите Cloud Container Engine.

  3. Нажмите на название нужного кластера.

  4. (Опционально) Если для доступа к репозиторию нужна аутентификация, создайте секрет в разделе ConfigMaps and Secrets → Secrets.

    При создании в поле Secret Type выберите kubernetes.io/dockerconfigjson.

  5. При создании рабочей нагрузки в поле Image Name введите путь к образу в формате domain-name/namespace/image-name:tag. Например:

    your-registry-mirror-url/library/nginx:stable-perl
    
  6. (Опционально) Если для доступа к репозиторию требуется аутентификация, при создании рабочей нагрузки в поле Image Access Credential выберите секрет, созданный ранее.

  7. Задайте все остальные параметры и нажмите Create Workload.

Через kubectl

  1. Подключитесь к кластеру с помощью kubectl.

  2. (Опционально) Если для доступа к репозиторию нужна аутентификация, создайте секрет kubernetes.io/dockerconfigjson:

    kubectl create secret docker-registry myregistrykey -n default --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
    

    Где:

    • myregistrykey — имя ключа;

    • default — пространство имен, в котором находится ключ;

    • DOCKER_REGISTRY_SERVER — URL или IP-адрес репозитория;

    • DOCKER_USER — имя пользователя;

    • DOCKER_PASSWORD — пароль пользователя;

    • DOCKER_EMAIL — email.

  3. Создайте рабочую нагрузку с использованием стороннего образа:

    apiVersion: v1
    kind: Pod
    metadata:
       name: foo
       namespace: default
    spec:
       containers:
          - name: foo
            image: your-registry-mirror-url/library/nginx:stable-perl
       imagePullSecrets:
          - name: myregistrykey
    

    Где myregistrykey — опциональный параметр.

Редактирование YAML-конфигурации существующего CCE-кластера

Чтобы изменить репозиторий для скачивания образов у существующего кластера, отредактируйте конфигурацию через консоль управления Advanced. Для этого:

  1. Войдите в консоль управления Advanced:

  2. В списке сервисов выберите Cloud Container Engine.

  3. Нажмите на название нужного кластера.

  4. В меню слева перейдите в раздел Workloads.

  5. Напротив нужной рабочей нагрузки нажмите More → Edit YAML.

  6. Найдите раздел файла, в котором задается репозиторий, и укажите нужный:

    spec:
       containers:
          - name: container-name
            image: your-registry-mirror-url/library/nginx:stable-perl
    
Запустили Evolution free tier
для Dev & Test
Получить