Встраивание пользовательского интерфейса панели инструментов Kubernetes в iframe

Я пытаюсь встроить пользовательский интерфейс панели инструментов Kubernetes в iFrame. Я могу видеть страницу входа, но когда я пытаюсь войти, указав токен, он не загружает панель управления, и я остаюсь на самой странице входа. Я подозреваю, что это связано с настройкой CORS и Access-Control-Allow-Origin.

Может ли кто-нибудь сказать, как сделать правильную конфигурацию, чтобы я мог получить доступ к пользовательскому интерфейсу панели инструментов Kubernetes в iFrame. Я могу отлично получить доступ к пользовательскому интерфейсу без iFrame

В iFrame я получаю следующую ошибку в консоли Javascript при входе через iFrame

“jweToken” has been rejected because it is in a cross-site context and its “SameSite” is “Lax” or “Strict”.

person Kinshuk    schedule 21.09.2020    source источник
comment
Вы пытались включить режим разработчика браузера? У вас есть ошибки?   -  person Alexandre Cartapanis    schedule 22.09.2020
comment
Я получаю эту ошибку при входе в iFrame. Cookie «jweToken» был отклонен, поскольку он находится в межсайтовом контексте, а его «SameSite» имеет значение «Lax» или «Strict».   -  person Kinshuk    schedule 22.09.2020


Ответы (1)


Вы можете добавить вход для предоставления службы панели мониторинга и добавить аннотации CORS, чтобы разрешить больше источников (https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#enable-cors). Обратите внимание, что если вы используете диаграмму руля панели мониторинга, она уже содержит вход, поэтому вы можете напрямую добавлять аннотации, используя значение ingress.annotations.

Есть и другие решения:

  • Измените командную строку apiserver, чтобы разрешить ваш источник (см. https://kubernetes.io/docs/reference/command-line-tools-reference/kube-apiserver/), но это несколько рискованно, так как вы измените политику для всего API.
  • Добавьте очень простое развертывание, которое будет проксировать панель инструментов (используя nodejs, вы можете создать прокси всего несколькими строками), но для этого потребуется некоторый собственный код.
person Alexandre Cartapanis    schedule 22.09.2020