Каково имя главного сервера openshift для внутреннего доступа? - PullRequest
1 голос
/ 18 июня 2019

Если я хочу получить доступ к API REST главного сервера openshift из любой точки моей компании, я использую https://master.test04.otc-test.company.com:8443, который прекрасно работает.

Сейчас я пишу приложение администратора, которое обращается к API REST и развернуто в этом кластере openshift. Существует ли общее имя или переменная среды в openshift для получения имени хоста главного сервера?

Справочная информация: мое приложение администратора будет развернуто в нескольких кластерах openshift, которые не имеют одинаковый URL. Было бы очень удобно, чтобы они автоматически определяли имя хоста текущего главного сервера вместо настройки этого значения для каждого развертывания.

1 Ответ

2 голосов
/ 18 июня 2019

Использовать переменные среды:

https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_SERVICE_PORT

В контейнере, если данные учетной записи службы не монтируются, вы также можете получить доступ к каталогу:

/var/run/secrets/kubernetes.io/serviceaccount

Здесь вы можете найти файл token, который содержит токен доступа для учетной записи службы, от которой работает контейнер. Это означает, что вы можете создать отдельную учетную запись службы для приложения в этом проекте и использовать RBAC для управления тем, что оно может делать через API REST.

В этом же каталоге также есть файл namespace, поэтому вы знаете, в каком проекте выполняется контейнер, и файлы с сертификатами, которые будут использоваться при доступе к REST API через безопасное соединение.

Это рекомендуемый подход, а не попытка передать токен доступа вашему приложению через его конфигурацию.

Обратите внимание, что в OpenShift 4, если вам нужен доступ к конечной точке сервера OAuth, он находится на отдельном URL-адресе относительно того, чем является REST API. В 3.X они были по одному и тому же URL.

В 4.0 вы можете получить доступ к пути /.well-known/oauth-authorization-server в URL-адресе REST API, чтобы получить информацию об отдельной конечной точке сервера OAuth.

Для получения дополнительной информации о предоставлении REST API доступа к приложению через учетную запись службы см .:

Обратите внимание, что на этой странице в настоящее время написано, что вы можете использовать https://openshift.default.svc.cluster.local в качестве URL, но это не работает в OpenShift 4.

...