Облачная платформаAdvanced

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

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

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

Требования

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

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

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

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

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

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

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

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

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

    Параметр

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

    Описание

    Имя

    тест

    Имя секрета.

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

    Тип секрета

    kubernetes.io/dockerconfigjson

    Тип секрета.

    Значение фиксировано на kubernetes.io/dockerconfigjson, indicating that the secret is used for authentication when third-party images are pulled.

    Данные

    Image Repository Address: www.example.com

    Username: ssl

    Password: xxx

    • Image Repository Address: Введите адрес стороннего репозитория образов.
    • Username: Введите имя пользователя для доступа к стороннему репозиторию образов.
    • Password: Введите пароль для доступа к стороннему репозиторию образов.

  2. В панели навигации выберите Workloads. В правом верхнем углу отображаемой страницы нажмите Create Workload. На Create Workload страница, установить Image Name (Container Settings > Container Information > Basic Info) к пути стороннего образа. Выберите секрет, созданный в 1 для Image Access Credential.

    Caution

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

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

Используя 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

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

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

      Параметр

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

      Описание

      docker-server

      www.example.com

      Введите адрес третьего репозитория образов.

      docker-username

      ssl

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

      docker-password

      xxx

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

      docker-email

      example@123.com

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

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

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

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

      NAME TYPE DATA AGE
      default-secret kubernetes.io/dockerconfigjson 1 41h
      paas.elb cfe/secure-opaque 1 41h
      test kubernetes.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:v1 # Third-party image path
      imagePullPolicy: Always
      name: foo
      imagePullSecrets:
      - name: test # 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

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

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