Почему я получаю статус "Запрещено" при попытке перенаправить с помощью 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
}
Примечания:
при запуске CRC у меня появляется предупреждение:
WARN Wildcard DNS resolution for apps-crc.testing does not appear to be working
даже пытаясь войти в систему с
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