Сторонние образы — это образы контейнеров, предоставляемые организациями или отдельными лицами, отличными от официального репозитория образов и репозитория образов SWR. Эти образы обычно содержат пользовательские приложения, инструменты или определённые версии ОС для удовлетворения конкретных требований к сервису. В стандартном или Turbo кластере CCE вы можете создавать нагрузки, используя сторонние образы, получаемые с помощью секретной аутентификации. Для получения дополнительной информации см. Использование частного реестра.
Требования
Если используются сторонние образы, стандартный или Turbo кластер CCE должен иметь возможность доступа к сетевой среде, в которой развернут сторонний репозиторий образов. Типы сетевого доступа включают:
- Приватный доступ: Если сторонний репозиторий образов поддерживает приватный доступ, рассмотрите следующие сценарии:
- Если сторонний репозиторий образов находится в том же VPC, что и кластер, pods могут напрямую загружать образы через интранет без дополнительных конфигураций.
- Если сторонний репозиторий образов и кластер находятся в разных VPC в одном регионе, вы можете использовать VPC peering соединение для обеспечения сетевой связности между двумя VPC. Поды затем могут напрямую загружать образы через интранет.
- Общий доступ: Если сторонний репозиторий образов доступен через Интернет, Поды могут загружать образы напрямую. В этом случае убедитесь, что Поды могут получить доступ к Интернету используя один из следующих методов:Note
Обеспечьте достаточную полосу пропускания при загрузке образов через Интернет. Недостаточная полоса пропускания может привести к медленной или неудачной загрузке образов.
- В стандартном или Turbo кластере настройте правило SNAT, чтобы все Поды в кластере могли получить доступ к Интернету. После настройки Поды могут напрямую загружать образы через Интернет. Подробности см. Доступ к Интернету из контейнера.
- В стандартном кластере привяжите EIP к узлу, на котором запущена нагрузка. Это позволяет всем нагрузкам на этом узле получать доступ к Интернету.
- Direct Connect или VPN: Чтобы использовать образы из локального репозитория образов, используйте Direct Connect или VPN для подключения локальной сети к VPC кластера. После подключения сетевой среды к VPC дополнительная конфигурация не требуется.
Использование консоли
Чтобы создать секрет в консоли и загрузить образ стороннего поставщика для создания рабочей нагрузки, выполните следующие действия.
- Создайте секрет кластера для аутентификации и загрузки образов из стороннего репозитория, если требуется аутентификация.
- Войдите в CCE консоль.
- Нажмите название целевого кластера, чтобы получить доступ к кластеру.
- В навигационной панели выберите ConfigMaps и Secrets. На Secrets вкладке, нажмите Создать секрет.
- В Создать секрет диалоговое окно, настройте параметры на основе Таблица 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: Введите пароль для доступа к стороннему репозиторию образов.
- В панели навигации выберите 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 параметр в конфигурация контейнерного движка пула узлов.
- Настройте другие параметры и нажмите Создать рабочую нагрузку. Если статус рабочей нагрузки Запущено, образ стороннего поставщика был получен.
Используя kubectl
- Используйте kubectl для доступа к кластеру. Для получения подробностей см. Доступ к кластеру с помощью kubectl.
- Если репозиторий образов сторонних поставщиков имеет учетную запись и пароль, создайте секрет в кластере в качестве учетных данных для получения образов.
- Создайте секрет. Тип секрета 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 - Проверьте, создан ли секрет.kubectl get secret
Если отображается следующая информация, секрет создан:
NAME TYPE DATA AGEdefault-secret kubernetes.io/dockerconfigjson 1 41hpaas.elb cfe/secure-opaque 1 41htest kubernetes.io/dockerconfigjson 1 16s
- Создайте секрет. Тип секрета kubernetes.io/dockerconfigjson по умолчанию, что указывает на то, что секрет используется для аутентификации при получении сторонних образов.
- Создайте рабочую нагрузку, используя сторонний образ.
- Создайте файл YAML для создания рабочей нагрузки. В этом примере имя файла deployment.yaml. Вы можете изменить его по мере необходимости.vim deployment.yaml
Содержимое файла выглядит следующим образом:
apiVersion: apps/v1kind: Deploymentmetadata:name: foonamespace: defaultspec:replicas: 1selector:matchLabels:app: foostrategy:type: RollingUpdatetemplate:metadata:labels:app: foospec:containers:- image: www.example.com/janedoe/awesomeapp:v1 # Third-party image pathimagePullPolicy: Alwaysname: fooimagePullSecrets:- name: test # Use the created secret for identity authentication when images are pulled.CautionЕсли вы не указываете доменное имя при вводе адреса стороннего образа, например, nginx:latest, образ будет загружен из docker.io по умолчанию. Чтобы задать адрес загрузки образа по умолчанию, настройте Изменить конфигурацию репозитория образов параметр в конфигурация контейнерного движка пула узлов.
- Создайте рабочую нагрузку.kubectl create -f deployment.yaml
Если отображается информация, похожая на следующую, рабочая нагрузка создаётся:
deployment.apps/foo created - Проверьте статус рабочей нагрузки.kubectl get deployment
Если все pod'ы рабочей нагрузки доступны, рабочая нагрузка создана.
NAME READY UP-TO-DATE AVAILABLE AGEfoo 1/1 1 1 4m59s
- Создайте файл YAML для создания рабочей нагрузки. В этом примере имя файла deployment.yaml. Вы можете изменить его по мере необходимости.