#amazon-web-services #kubectl #amazon-eks #istio #kubeflow
Вопрос:
Я пытаюсь настроить kubeflow на AWS, я следовал этому руководству, чтобы настроить kubeflow на AWS.
Я использовал dex вместо cognito со следующей политикой.
затем на шаге: kfctl apply -V -f kfctl_aws.yaml
сначала я получил эту ошибку:
IAM for Service Account is not supported on non-EKS cluster
Поэтому, чтобы исправить это, я установил свойство enablePodIamPolicy: false
Затем повторил попытку, и он успешно развернул kubeflow, при проверке состояния служб с помощью kubectl -n kubeflow get all
, я обнаружил, что все службы готовы, кроме оператора MPI.
игнорируя это, когда я попытался запустить kubectl get ingress -n istio-system
, я получил следующий результат.
после расследования с использованием kubectl -n kubeflow logs $(kubectl get pods -n kubeflow --selector=app=aws-alb-ingress-controller --output=jsonpath={.items..metadata.name})
Я обнаружил следующую ошибку:
E1104 12:09:37.446342 1 controller.go:217] kubebuilder/controller "msg"="Reconciler error" "error"="failed to reconcile LB managed SecurityGroup: failed to reconcile managed LoadBalancer securityGroup: UnauthorizedOperation: You are not authorized to perform this operation. Encoded authorization failure message: Lsvzm7f4rthL4Wxn6O8wiQL1iYXQUES_9Az_231BV7fyjgs7CHrwgUOVTNTf4334_C4voUogjSuCoF8GTOKhc5A7zAFzvcGUKT_FBs6if06KMQCLiCoujgfoqKJbG75pPsHHDFARIAdxNYZeIr4klmaUaxbQiFFxpvQsfT4ZkLMD7jmuQQcrEIw_U0MlpCQGkcvC69NRVVKjynIifxPBySubw_O81zifDp0Dk8ciRysaN1SbF85i8V3LoUkrtwROhUI9aQYJgYgSJ1CzWpfNLplbbr0X7YIrTDKb9sMhmlVicj_Yng0qFka_OVmBjHTnpojbKUSN96uBjGYZqC2VQXM1svLAHDTU1yRruFt5myqjhJ0fVh8Imhsk1Iqh0ytoO6eFoiLTWK4_Crb8XPS5tptBBzpEtgwgyk4QwOmzySUwkvNdDB-EIsTJcg5RQJl8ds4STNwqYV7XXeWxYQsmL1vGPVFY2lh_MX6q1jA9n8smxITE7F6AXsuRHTMP5q0jk58lbrUe-ZvuaD1b0kUTvpO3JtwWwxRd7jTKF7xde2InNOXwXxYCxHOw0sMX56Y1wLkvEDTLrNLZWOACS-T5o7mXDip43U0sSoUtMccu7lpfQzH3c7lNdr9s2Wgz4OqYaQYWsxNxRlRBdR11TRMweZt4Ta6K-7si5Z-rrcGmjG44NodT0O14Gzj-S4i6bK-qPYvUEsVeUl51ev_MsnBKtCXcMF8W6j9D7Oe3iGj13uvlVJEtq3OIoRjBXIuQQ012H0b3nQqlkoKEvsPAA_txAjgHXVzEVcM301_NDQikujTHdnxHNdzMcCfY7DQeeOE_2FT_hxYGlbuIg5vonRTT7MfSP8_LUuoIICGS81O-hDXvCLoomltb1fqCBBU2jpjIvNALMwNdJmMnwQOcIMI_QonRKoe5W43vntstatus code: 403, request id: a9be63bd-2a3a-4a21-bb87-93532923ffd2" "controller"="alb-ingress-controller" "request"={"Namespace":"istio-system","Name":"istio-ingress"}
Я не понимаю, что именно пошло не так в разрешениях безопасности?
Ответ №1:
У alb-ingress-controller
него нет разрешения на создание ALB.
Установив enablePodIamPolicy: false
, я предполагаю, что вы выберете вариант 2 из руководства.
alb-ingress-controller
Использует kf-admin
роль, и установщику необходимо прикрепить к этой роли политику, найденную в aws-config/iam-alb-ingress-policy.json
. Скорее всего, он не установлен, поэтому вам придется добавить его в IAM и прикрепить к роли.
После этого просмотрите журналы alb-ingress-controller
выверки, чтобы узнать, может ли он создать ALB.
Ответ №2:
Скорее всего cluster-name
, in aws-alb-ingress-controller-config
неправильно настроен.
Если это так, вам следует отредактировать карту конфигурации с правильным именем кластера, используя kubectl edit cm aws-alb-ingress-controller-config -n kubeflow
.
После этого вы должны удалить модуль, чтобы он перезапустился ( kubectl -n kubeflow delete pod $(kubectl get pods -n kubeflow --selector=app=aws-alb-ingress-controller --output=jsonpath={.items..metadata.name})
).