我有这样的场景:
- 运行 Debian 并运行 docker 容器的主机。
- 一个 CentOS docker 容器,具有CodeReady 容器 (CRC)安装在自己身上。 CRC 通过命令行在容器上工作,没有任何问题。
我想从主机访问可运行的 CRC Web 控制台https://console-openshift-console.apps-crc.testing
(在文件中的特定 IP 上hosts
)。
我找到了这个远程访问 CRC 的 RedHat 指南。但如何将其应用到 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
https://console-openshift-console.apps-crc.testing
我可以从主机成功调用 url !但我收到此错误:
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
"reason": "Forbidden",
"details": {
},
"code": 403
}
不管怎样,网络部分已经解决了。现在我不知道为什么会出现这个错误!
答案1
问题出在浏览器端。选择“高级”并查看证书,然后接受风险。您将被引导至 Web 控制台登录页面,需要提供用户名和密码