Радиус/Бицепс – Как извлечь из частного реестра Docker с аутентификацией в общем Kubernetes?

У меня есть yaml-файл развертывания Kubernetes, который успешно извлекает образ из частного реестра Docker с аутентификацией.
Я хотел бы сделать то же самое, используя Radius, но неясно, как это сделать, используя общий Kubernetes (не Azure).
Kubernetes настроен с секретным ключом docker-registry-secret как в пространстве имен по умолчанию, так и в пространстве имен, которое Radius использует «default-my-api».

Ямл использует imagePullSecrets; что такое эквивалент радиуса?

Ямл развертывания K8s:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-api
spec:
  selector:
    matchLabels:
      app: my-api
  template:
    metadata:
      labels:
        app: my-api
    spec:
      containers:
        - name: my-api
          image: reg.my-registry.com:5000/my-api-app:latest
      imagePullSecrets:
          - name: docker-registry-secret

Радиус бицепса:

import radius as radius

@description('The Radius Application ID. Injected automatically by the rad CLI.')
param application string

resource snapapi 'Applications.Core/containers@2023-10-01-preview' = {
  name: 'my-api'
  properties: {
    application: application
    container: {
      image: 'reg.my-registry.com:5000/my-api-app:latest'
    }
  }
}

Я вижу ошибку «Не удалось получить изображение... нет базовых учетных данных для аутентификации».

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

imagePullSecrets, похоже, не поддерживается в бицепсе. Как это настроено?

Если вы пытаетесь развернуть контейнер в Kubernetes с помощью Radius и вам необходимо получить образ контейнера из частного реестра Docker (не размещенного в реестре контейнеров Azure), вам необходимо устранить непосредственную поддержку imagePullSecrets в конфигурации Radius Bicep. . Radius в первую очередь предназначен для развертываний, ориентированных на Azure, и его собственные шаблоны Bicep могут напрямую не поддерживать функции Kubernetes, такие как imagePullSecrets.

Arko 30.04.2024 14:27

Я нашел решение этой проблемы, но по каким-то причинам вопрос закрылся. Можно ли его открыть заново?

hawky 03.05.2024 11:57

Пожалуйста, опубликуйте свое решение в качестве ответа для удобства членов сообщества, чтобы они могли обратиться к вашему решению, если столкнутся с аналогичной проблемой. Спасибо

Arko 03.05.2024 12:48
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
3
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В файле бицепса используйте следующее:

properties: {
  runtimes: {
    kubernetes: {
      base: loadTextContent('deployment.yaml')
    }
  }
}

При этом будет использоваться базовый манифест ресурса Kubernetes, поверх которого будут применяться свойства, указанные в Radius. Базовый ресурс будет содержать imagePullSecrets. Дополнительную информацию см. в документации: Документы Radius — Служба контейнеров — свойства/время выполнения/kubernetes

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