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
接続してみる
とりあえず証明書のエラーは無視しました。
アクセスできました。