CRC VMの内部動作を確認する

CRC VMのIPアドレスを確認する

[centos@ip-172-31-19-74 ~]$ crc ip
192.168.130.11

CRC VMへSSH接続する

[centos@ip-172-31-19-74 ~]$ ssh -i ~/.crc/machines/crc/id_ecdsa core@$CRC_IP

CRC VMの中でpodmanでdnsmasq(DNSサーバ)が起動していることが分かる

[core@crc-xxcfw-master-0 ~]$  sudo podman ps -a
CONTAINER ID  IMAGE                                                                     COMMAND     CREATED      STATUS                  PORTS               NAMES
128a6fe17e5e  quay.io/crcont/gvisor-tap-vsock:3231aba53905468c22e394493a0debc1a6cc6392              3 weeks ago  Exited (0) 7 hours ago                      gvisor-tap-vsock
e3593ab79e1d  quay.io/crcont/dnsmasq:latest                                                         3 weeks ago  Up 7 hours ago          0.0.0.0:53->53/udp  crc-dnsmasq

CRC実行ホストのNetwork Manager設定

CRCセットアップ後のホスト上のdnsmasqのCRC用インスタンスは下記のようになっています。

[centos@ip-172-31-19-74 ~]$ cat /etc/NetworkManager/dnsmasq.d/crc.conf
server=/apps-crc.testing/192.168.130.11
server=/crc.testing/192.168.130.11

なお、このcrc.confはcrc setupおよびcrc start時にチェックされ、設定を変更することができません

CRCホストの/etc/hosts

CRCセットアップ後、CRCを実行するホストの/etc/hostsには設定が追加されます

[centos@ip-172-31-19-74 ~]$ sudo cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.130.11 api.crc.testing canary-openshift-ingress-canary.apps-crc.testing console-openshift-console.apps-crc.testing default-route-openshift-image-registry.apps-crc.testing downloads-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing

リモート接続を構成する

[centos@ip-172-31-19-74 ~]$ sudo yum install haproxy policycoreutils-python-utils jq
[centos@ip-172-31-19-74 ~]$ yum update
[centos@ip-172-31-19-74 ~]$ sudo yum install epel-release
[centos@ip-172-31-19-74 ~]$ sudo yum install haproxy policycoreutils-python-utils jq
[centos@ip-172-31-19-74 ~]$ yum search policycoreutils-python
[centos@ip-172-31-19-74 ~]$ sudo yum install policycoreutils-python

SELinuxのためのTCPポート6443のリッスンを許可します。

[centos@ip-172-31-19-74 ~]$ sudo semanage port -a -t http_port_t -p tcp 6443
sudo cp /etc/haproxy/haproxy.cfg{,.bak}

[centos@ip-172-31-19-74 ~]$ sudo cp /etc/haproxy/haproxy.cfg{,.bak}

haproxyのコンフィグを作成します。コンフィグ内の$CRC_IPにはCRCのIPアドレスが記載されます。

[centos@ip-172-31-19-74 ~]$ export CRC_IP=$(crc ip)
[centos@ip-172-31-19-74 ~]$ sudo tee /etc/haproxy/haproxy.cfg &>/dev/null <<EOF
> global
>     debug
>
> defaults
>     log global
>     mode http
>     timeout connect 5000
>     timeout client 500000
>     timeout server 500000
>
> frontend apps
>     bind 0.0.0.0:80
>     option tcplog
>     mode tcp
>     default_backend apps
>
> frontend apps_ssl
>     bind 0.0.0.0:443
>     option tcplog
>     mode tcp
>     default_backend apps_ssl
>
> backend apps
>     mode tcp
>     balance roundrobin
>     server webserver1 $CRC_IP:80 check
>
> backend apps_ssl
>     mode tcp
>     balance roundrobin
>     option ssl-hello-chk
>     server webserver1 $CRC_IP:443 check
>
> frontend api
>     bind 0.0.0.0:6443
>     option tcplog
>     mode tcp
>     default_backend api
>
> backend api
>     mode tcp
>     balance roundrobin
>     option ssl-hello-chk
>     server webserver1 $CRC_IP:6443 check
> EOF

haproxyのサービス登録とサービスの起動を行います

[centos@ip-172-31-19-74 ~]$  sudo systemctl enable haproxy
Created symlink from /etc/systemd/system/multi-user.target.wants/haproxy.service to /usr/lib/systemd/system/haproxy.service.
[centos@ip-172-31-19-74 ~]$ sudo systemctl start haproxy
[centos@ip-172-31-19-74 ~]$ sudo yum install dnsmasq -y
[centos@ip-172-31-19-74 ~]$ sudo mv /etc/dnsmasq.conf{,.bak}
[centos@ip-172-31-19-74 ~]$ sudo tee /etc/dnsmasq.conf &>/dev/null <<EOF
> user=dnsmasq
> group=dnsmasq
> no-hosts
> bind-interfaces
> listen-address=192.168.1.25
> address=/testing/192.168.1.25
> EOF

クライアント側の/etc/hostsにCRCサーバのレコードを追加する

cat /etc/hosts
<CRCサーバのIPアドレス> console-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing

接続してみる

とりあえず証明書のエラーは無視しました。 OCPのコンソール

アクセスできました。

参考にさせて頂いた記事