У меня есть 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, похоже, не поддерживается в бицепсе. Как это настроено?
Я нашел решение этой проблемы, но по каким-то причинам вопрос закрылся. Можно ли его открыть заново?
Пожалуйста, опубликуйте свое решение в качестве ответа для удобства членов сообщества, чтобы они могли обратиться к вашему решению, если столкнутся с аналогичной проблемой. Спасибо
В файле бицепса используйте следующее:
properties: {
runtimes: {
kubernetes: {
base: loadTextContent('deployment.yaml')
}
}
}
При этом будет использоваться базовый манифест ресурса Kubernetes, поверх которого будут применяться свойства, указанные в Radius. Базовый ресурс будет содержать imagePullSecrets. Дополнительную информацию см. в документации: Документы Radius — Служба контейнеров — свойства/время выполнения/kubernetes
Если вы пытаетесь развернуть контейнер в Kubernetes с помощью Radius и вам необходимо получить образ контейнера из частного реестра Docker (не размещенного в реестре контейнеров Azure), вам необходимо устранить непосредственную поддержку imagePullSecrets в конфигурации Radius Bicep. . Radius в первую очередь предназначен для развертываний, ориентированных на Azure, и его собственные шаблоны Bicep могут напрямую не поддерживать функции Kubernetes, такие как imagePullSecrets.