2

最近我尝试在 VMWare 上安装 openshift 4.2 并遵循此文档https://blog.openshift.com/openshift-4-2-vsphere-install-with-static-ips/所以我能够成功安装它工作正常。但是这个安装对所有东西都使用了一个 LoadBalancer (HAProxy)。

所以在我的例子中,LoadBalancer 的 IP 是 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 代理配置文件

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_installing-vsphere后,我决定使用两个负载均衡器。API 需要一个负载均衡器,而默认的 Ingress Controller 需要第二个负载均衡器来为应用程序提供入口。

现在在这种情况下,我映射了如下所示的 URL

10.68.33.62  api.openshift4.example.com
10.68.33.62  api-int.openshift4.example.com

并假设第二个负载均衡器的 IP 是 10.68.33.69

10.68.33.69  *.apps.openshift4.example.com

第一个负载均衡器的 HAProxy 配置仅平衡主节点。

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,并通过第二个负载平衡器平衡应用程序。我将如何实现它?

谢谢

4

0 回答 0