Недавно я попытался установить openshift 4.2 на VMWare и следовал этой документации https://blog.openshift.com/openshift-4-2-vsphere-install-with-static-ips/, поэтому я смог успешно установить его, и он работает нормально. Но эта установка использует один LoadBalancer (HAProxy) для всего.
Итак, в моем случае IP-адрес LoadBalancer был 10.68.33.62, тогда я сопоставил URL-адрес, как показано ниже
10.68.33.62 api.openshift4.example.com
10.68.33.62 api-int.openshift4.example.com
10.68.33.62 *.apps.openshift4.example.com
Это означает, что все URL-адреса в одном LoadBalancer. Я смог получить доступ к консоли снизу URL
https://console-openshift-console.apps.openshift4.example.com
Даже другое приложение смогло получить доступ с https://anotherapp.apps.openshift4.example.com
Файл конфигурации HA Proxy
frontend openshift-api-server
bind *:6443
default_backend openshift-api-server
mode tcp
option tcplog
backend openshift-api-server
balance source
mode tcp
server bootstrap 10.68.33.66:6443 check
server master1 10.68.33.63:6443 check
server master2 10.68.33.67:6443 check
server master3 10.68.33.68:6443 check
frontend machine-config-server68
bind *:22623
default_backend machine-config-server
mode tcp
option tcplog
backend machine-config-server
balance source
mode tcp
server bootstrap 10.68.33.66:22623 check
server master1 10.68.33.63:22623 check
server master2 10.68.33.67:22623 check
server master3 10.68.33.68:22623 check
frontend ingress-http
bind *:80
default_backend ingress-http
mode tcp
option tcplog
backend ingress-http
balance source
mode tcp
server worker1 10.68.33.64:80 check
server worker2 10.68.33.65:80 check
frontend ingress-https
bind *:443
default_backend ingress-https
mode tcp
option tcplog
backend ingress-https
balance source
mode tcp
server worker1 10.68.33.64:443 check
server worker2 10.68.33.65:443 check
Но После прочтения документации https://docs.openshift.com/container-platform/4.2/installing/installing_vsphere/installing-vsphere.html#installation -network-user-infra_install-vsphere Я решил использовать два балансировщика нагрузки. Для API требуется один балансировщик нагрузки, а для Ingress Controller по умолчанию необходим второй балансировщик нагрузки для обеспечения доступа к приложениям.
Теперь в этом случае я сопоставил URL, как показано ниже
10.68.33.62 api.openshift4.example.com
10.68.33.62 api-int.openshift4.example.com
И предполагая, что IP второго loadbalancer равен 10.68.33.69
10.68.33.69 *.apps.openshift4.example.com
И HAProxy config для Первый балансировщик нагрузки балансирует только главные узлы.
frontend openshift-api-server
bind *:6443
default_backend openshift-api-server
mode tcp
option tcplog
backend openshift-api-server
balance source
mode tcp
server bootstrap 10.68.33.66:6443 check
server master1 10.68.33.63:6443 check
server master2 10.68.33.67:6443 check
server master3 10.68.33.68:6443 check
frontend machine-config-server68
bind *:22623
default_backend machine-config-server
mode tcp
option tcplog
backend machine-config-server
balance source
mode tcp
server bootstrap 10.68.33.66:22623 check
server master1 10.68.33.63:22623 check
server master2 10.68.33.67:22623 check
server master3 10.68.33.68:22623 check
А второй балансировщик нагрузки балансирует только рабочие узлы, потому что он будет обслуживать только приложения.
frontend ingress-http
bind *:80
default_backend ingress-http
mode tcp
option tcplog
backend ingress-http
balance source
mode tcp
server worker1 10.68.33.64:80 check
server worker2 10.68.33.65:80 check
frontend ingress-https
bind *:443
default_backend ingress-https
mode tcp
option tcplog
backend ingress-https
balance source
mode tcp
server worker1 10.68.33.64:443 check
server worker2 10.68.33.65:443 check
Но, к сожалению, он не работает , Правильно ли мое понимание? Короче говоря, я хочу сбалансировать мастер-консоль и API через первый loadbalancer, а приложения через второй loadbalancer. Как мне этого добиться?
Спасибо