Облачная платформаВсе платформы

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

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сторонние образы — это образы контейнеров, предоставляемые организациями или отдельными лицами, отличными от официального репозитория образов и репозитория образов SWR. Как правило, такие образы содержат пользовательские приложения, инструменты или конкретные версии операционных систем для удовлетворения определённых требований сервиса. В стандартном или Turbo‑кластере CCE вы можете создавать рабочие нагрузки, используя сторонние образы, полученные через аутентификацию с помощью секрета. Для получения дополнительной информации см. Использование частного реестра.

Требования

Если используются сторонние образы, стандартный или Turbo‑кластер CCE должен иметь доступ к сетевой среде, где развернут репозиторий сторонних образов. Типы сетевого доступа включают:

  • Частный доступ: Если репозиторий сторонних образов поддерживает частный доступ, рассмотрите следующие сценарии:
    • Если репозиторий сторонних образов находится в том же VPC, что и кластер, поды могут напрямую получать образы через интранет без дополнительной настройки.
    • Если репозиторий сторонних образов и кластер находятся в разных VPC в одном регионе, можно использовать соединение VPC peering для обеспечения сетевой связности между двумя VPC. Подов затем могут напрямую получать образы через интранет.
  • Общий доступ: Если репозиторий сторонних образов доступен через Интернет, поды могут напрямую получать образы. В данном случае убедитесь, что поды могут получать доступ к Интернету с помощью одного из следующих методов:
    Note

    Обеспечьте достаточную пропускную способность при получении образов через Интернет. Недостаточная пропускная способность может привести к медленному или неудачному получению образов.

    • В стандартном или Turbo‑кластере настройте правило SNAT, чтобы все поды в кластере могли получать доступ к Интернету. После настройки поды могут напрямую получать образы через Интернет. Подробности см. Доступ к Интернету из контейнера.
    • В стандартном кластере привяжите EIP к узлу, на котором запущена рабочая нагрузка. Это позволяет всем рабочим нагрузкам на этом узле получать доступ к Интернету.
  • Direct Connect или VPN: Чтобы использовать образы из локального репозитория образов, используйте Direct Connect или VPN для подключения локальной сети к VPC кластера. После подключения сетевой среды к VPC дополнительная настройка не требуется.

Использование консоли

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

  1. Создайте кластерный секрет для аутентификации и получения образов из стороннего репозитория, если требуется аутентификация.

    1. Войдите в CCE консоль.
    2. Нажмите название целевого кластера, чтобы перейти к кластеру.
    3. В навигационной панели выберите ConfigMaps и Секреты. На Секреты вкладке, нажмите Создать секрет.
    4. В Создать секрет диалоговом окне настройте параметры в соответствии с Таблица 1. Для получения более подробной информации см. Создание секрета.

    Таблица 1 Параметры создания секрета

    Параметр

    Пример значения

    Описание

    Имя

    test

    Имя секрета.

    Введите до 253 символов. Начинайте и заканчивайте строчной буквой или цифрой. Разрешены только строчные буквы, цифры, дефисы (-) и точки (.)

    Тип секрета

    kubernetes.io/dockerconfigjson

    Тип секрета.

    Значение фиксировано как kubernetes.io/dockerconfigjson, указывая, что секрет используется для аутентификации при получении сторонних образов.

    Данные

    Адрес репозитория образов: www.example.com

    Имя пользователя: ssl

    Пароль: xxx

    • Адрес репозитория образов: Введите адрес репозитория сторонних образов.
    • Имя пользователя: Введите имя пользователя для доступа к репозиторию сторонних образов.
    • Пароль: Введите пароль для доступа к репозиторию сторонних образов.

  2. В навигационной панели выберите Рабочие нагрузки. В правом верхнем углу отображаемой страницы нажмите Создать рабочую нагрузку. На Создать рабочую нагрузку странице установите Имя образа (Настройки контейнера > Информация о контейнере > Основная информация) к пути стороннего образа. Выберите созданный секрет в 1 для Учётные данные доступа к образу.

    Caution

    Если при вводе адреса стороннего образа не указано доменное имя, например, nginx:latest, образ будет получен из docker.io по умолчанию. Чтобы указать адрес по умолчанию для получения образов, настройте Изменить конфигурацию репозитория образов параметр в конфигурации среды выполнения контейнеров пула узлов.

  3. Настройте другие параметры и нажмите Создать рабочую нагрузку. Если статус рабочей нагрузки Running, сторонний образ был получен.

Использование kubectl

  1. Используйте kubectl для доступа к кластеру. Подробности см. Доступ к кластеру с помощью kubectl.
  2. Если у репозитория сторонних образов есть учетная запись и пароль, создайте в кластере секрет, который будет использоваться в качестве учётных данных для получения образов.

    1. Создайте секрет. Тип секрета — kubernetes.io/dockerconfigjson по умолчанию, что указывает на то, что секрет используется для аутентификации при получении сторонних образов.
      kubectl create secret docker-registry test -n default --docker-server=www.example.com --docker-username=ssl --docker-password=xxx --docker-email=example@123.com

      В команде test указывает имя секрета, default указывает пространство имён, где находится секрет, а другие параметры описаны в следующей таблице.

      Таблица 2 Параметры секрета

      Параметр

      Пример значения

      Описание

      docker-server

      www.example.com

      Введите адрес репозитория сторонних образов.

      docker-username

      ssl

      Введите имя пользователя для доступа к репозиторию сторонних образов.

      docker-password

      xxx

      Введите пароль для доступа к репозиторию сторонних образов.

      docker-email

      example@123.com

      Электронный адрес репозитория сторонних образов. Этот параметр необязателен.

      Отображается информация, аналогичная следующей:

      secret/test создан
    2. Проверьте, создан ли секрет.
      kubectl get secret

      Если отображена следующая информация, секрет создан:

      NAME TYPE DATA AGE
      default-secret kubernetes.io/dockerconfigjson 1 41h
      paas.elb cfe/secure-opaque 1 41h
      testtest kubernetes.io/dockerconfigjsonkubernetes.io/dockerconfigjson 1 16s

  3. Создать рабочую нагрузку, используя сторонний образ.

    1. Создайте YAML‑файл для создания рабочей нагрузки. В этом примере имя файла deployment.yaml. При необходимости его можно изменить.
      vim deployment.yaml

      Пример содержимого файла:

      apiVersion: apps/v1
      kind: Deployment
      metadata:
      name: foo
      namespace: default
      spec:
      replicas: 1
      selector:
      matchLabels:
      app: foo
      strategy:
      type: RollingUpdate
      template:
      metadata:
      labels:
      app: foo
      spec:
      containers:
      - image: www.example.com/janedoe/awesomeapp:v1www.example.com/janedoe/awesomeapp:v1
      # Third-party image path
      imagePullPolicy: Always
      name: foo
      imagePullSecrets:
      - name: testtest
      # Use the created secret for identity authentication when images are pulled.

      Caution

      Если при вводе адреса стороннего образа не указано доменное имя, например, nginx:latest, образ будет получен из docker.io по умолчанию. Чтобы задать адрес по умолчанию для получения образов, настройте Изменить конфигурацию репозитория образов параметр в конфигурации среды выполнения контейнеров пула узлов.

    2. Создать рабочую нагрузку.
      kubectl create -f deployment.yaml

      Если отображена информация, аналогичная следующей, рабочая нагрузка создаётся:

      deployment.apps/foo created
    3. Проверьте статус рабочей нагрузки.
      kubectl get deployment

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

      NAME READY UP-TO-DATE AVAILABLE AGE
      foo 1/1 1 1 4m59s