Почему я получаю статус "Запрещено" при попытке перенаправить с помощью HAProxy вызовы CRC, установленной в контейнере CentOS Docker?

У меня такой сценарий:

  • машина HOST под управлением Debian, на которой работают контейнеры докеров.
  • контейнер докеров CentOS, на котором установлены контейнеры CodeReady (CRC). CRC работает с контейнером через командную строку без проблем.

Мне нужен доступ с хост-машины к веб-консоли CRC, которая работает на https://console-openshift-console.apps-crc.testing (на конкретном IP в hosts файл контейнера).


Я нашел это руководство RedHat для удаленного доступа к CRC.

И применительно к контейнерам Docker внесение следующих изменений вhaproxy.conf:

global
log 127.0.0.1 local0
debug

defaults
log global
mode http
timeout connect 5000
timeout check 5000
timeout client 30000
timeout server 30000

frontend apps
bind CONTAINER_IP:80
bind CONTAINER_IP:443
option tcplog
mode tcp
default_backend apps

backend apps
mode tcp
balance roundrobin
option ssl-hello-chk
server webserver1 CRC_IP:6443 check

frontend api
bind CONTAINER_IP:6443
option tcplog
mode tcp
default_backend api

backend api
mode tcp
balance roundrobin
option ssl-hello-chk
server webserver1 CRC_IP:6443 check

включение пересылки для контейнера:

$ sysctl net.ipv4.conf.all.forwarding=1
$ sudo iptables -P FORWARD ACCEPT

а также запуск CRC за прокси:

$ crc config set http-proxy http://example.proxy.com:<port>
$ crc config set https-proxy http://example.proxy.com:<port>
$ crc config set no-proxy <comma-separated-no-proxy-entries>

Я могу успешно позвонить по URL https://console-openshift-console.apps-crc.testingс хост-машины (у которой dnsmasq как DNS-преобразователь правильно настроен)!!!

но я получаю эту ошибку:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {
    
  },
  "code": 403
}

Примечания:

  1. при запуске CRC у меня появляется предупреждение: WARN Wildcard DNS resolution for apps-crc.testing does not appear to be working

  2. даже пытаясь войти в систему с oc, на хост-машине через командную строку выдается сообщение об ошибке со статусом "Запрещено": Error from server (InternalError): Internal error occurred: unexpected response: 403.

В чем проблема? Я не могу понять.


Для тех, кому интересно, это репозиторий проекта Git на GitHub.

1 ответ

Это сообщение означает, что у пользователя system:anonymous нет разрешения на доступ к кластеру. Вы выполнили вход в кластер crc, как написано в документации?

3.3. Доступ к кластеру OpenShift

oc login -u developer https://api.crc.testing:6443

Это последнее сообщение при запуске crc start

To access the cluster, first set up your environment by following 'crc oc-env' instructions.
Then you can access it by running 'oc login -u developer -p developer https://api.crc.testing:6443'.
To login as an admin, run 'oc login -u kubeadmin -p xxxx-xxxx-xxxxx-xxxx https://api.crc.testing:6443'.
To access the cluster, first set up your environment by following 'crc oc-env' instructions.

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

crc oc-env

Затем вам нужно запустить логин с помощью клиента oc. В моей установке было:

oc login -u developer https://api.crc.testing:6443

Другие вопросы по тегам