#kubernetes #kubernetes-helm #argo-workflows #argoproj
#kubernetes #kubernetes-helm #argo-рабочие процессы #argoproj
Вопрос:
Я установил диаграмму управления рабочим процессом Argo по умолчанию, настроив только init.ServiceAccount как argo-sa, который я создал. (ServiceAccount с достаточной авторизацией) Однако запуск каждого рабочего процесса выполняется как serviceaccount по умолчанию, и я не могу понять, где настроен параметр. Согласно README, предоставленному Argo Helm Chart, указание init.serviceAccount
в качестве созданного мной serviceaccount должно решить проблему. Обходным путем является изменение serviceaccount по умолчанию, но, похоже, это не лучшее решение. Есть ли что-нибудь, что я неправильно понял? Заранее спасибо.
Ответ №1:
Установка Argo не определяет, какие рабочие процессы ServiceAccount используют. Согласно документам Argo,
Когда учетная запись ServiceAccount не указана [при отправке рабочего процесса], Argo будет использовать учетную запись ServiceAccount по умолчанию из пространства имен, из которого он запускается, что почти всегда будет иметь недостаточные привилегии по умолчанию.
Если вы используете Argo CLI для отправки рабочих процессов, вы можете указать ServiceAccount с --serviceaccount
помощью .
Если вы используете kubectl apply
или какой-либо другой инструмент для установки рабочих процессов, вы можете задать имя ServiceAccount в определении yaml. Смотрите Пример из документации или этот сокращенный пример:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
spec:
serviceAccountName: some-serviceaccount
Для удобства диаграмма Argo Helm предоставляет способ создания ServiceAccount, с помощью которого можно запускать рабочие процессы. Но на самом деле это не приводит к тому, что ваши рабочие процессы используют этот ServiceAccount. Вы должны указать его при отправке рабочего процесса.
serviceAccount:
create: false # Specifies whether a service account should be created
annotations: {}
name: "argo-workflow" # Service account which is used to run workflows
rbac:
create: false # adds Role and RoleBinding for the above specified service account to be able to run workflows
Комментарии:
1. Это было очень полезно. Спасибо, Майкл!
2. @IHateMint ты уверен!
3. Я использую шаблон сценария в своем рабочем процессе. Когда я указываю
serviceAccountName
в спецификации рабочего процесса и выполняю рабочий процесс, я получаю сообщение «ошибка поиска учетной записи службы по умолчанию / argo: serviceaccount». Я знаю, что учетная запись службы argo существует в пространстве имен argo. Почему рабочий процесс не может его найти?4. @SSF Интересно, означает ли default/ argo, что он ищет argo sa в пространстве имен по умолчанию. Может быть, попробуйте запустить рабочий процесс в пространстве имен argo?
5. О да, моя ошибка. Спасибо @MichaelCrenshaw