0

问题一:

1.1。谁坐在“openshift_master_cluster_public_hostname”主机名后面?是 Web 控制台(Web 控制台服务?或 Web 服务部署)还是其他?

1.2. 在执行oc get service -n openshift-web-console时,我可以看到 Web 控制台在 443 中运行,它不应该在端口 8443 上工作,对于 api 服务器也是如此,不应该在端口 8443 上工作吗?

1.3. 你能向我解释一下对 https://openshift_master_cluster_public_hostname:8443 的请求流程吗?

1.4. 在文档中是

问题2:

为什么我对 curl 和 wget 得到不同的响应?
当我:curl https://openshift_master_cluster_public_hostname:8443时,我得到:

{
  "paths": [
    "/api",
    "/api/v1",
    "/apis",
    "/apis/",
    "/apis/admissionregistration.k8s.io",
    "/apis/admissionregistration.k8s.io/v1beta1",
    "/apis/apiextensions.k8s.io",
    "/apis/apiextensions.k8s.io/v1beta1",
    ...
    "/swagger.json",
    "/swaggerapi",
    "/version",
    "/version/openshift"
  ]
}

当我: wget https://openshift_master_cluster_public_hostname:8443我得到一个 index.html 页面。

Web 控制台是响应此请求还是

问题 3:

我怎样才能在端口 443 而不是 8443 上公开 Web 控制台,我找到了几个解决方案:

  1. 使用变量“openshift_master_console_port,openshift_master_api_port”,但发现这些端口是“内部”端口,并非设计为公共端口。因此更改此端口可能会使您的 OpenShift 设置崩溃

  2. 使用外部服务(在此处描述)

我有点想在外部 haporxy 上设置端口转发,可行吗?

4

1 回答 1

1

回答 Q1:

1.1。引用配置您的库存文件的文档

This variable overrides the public host name for the cluster, 
which defaults to the host name of the master. If you use an 
external load balancer, specify the address of the external load balancer.

For example:

> openshift_master_cluster_public_hostname=openshift-ansible.public.example.com

这意味着此变量是 OpenShift Web 控制台的面向公众的接口。

1.2 Service 是一个虚拟对象,将 Service Name 连接到 Pod,用于连接 Route Object 和 Service Object。这在文档服务中进行了解释。您几乎可以将每个端口用于服务,因为它是虚拟的,并且没有任何东西会绑定在此端口上。

1.3. 答案取决于您的设置。我在主人面前使用 TCP 负载均衡器进行 ha-setup 解释。

                       /> Master API 1
client -> loadbalancer -> Master API 2
                       \> Master API 3

客户端向https://openshift_master_cluster_public_hostname:8443发出请求,负载均衡器将客户端转发到主 API 1 或 2 或 3,客户端从请求的主 API 服务器获得答案。

如果请求来自浏览器,则 api 服务器重定向到控制台https://github.com/openshift/origin/blob/release-3.11/pkg/cmd/openshift-kube-apiserver/openshiftkubeapiserver/patch_handlerchain.go#L60-L61

回答 Q2:

curlwget的行为不同,因为它们是不同的工具,但 https 请求是相同的。

wget 的卷曲行为
wget --output-document=- https://openshift_master_cluster_public_hostname:8443

curl 的 wget 行为
curl -o index.html https://openshift_master_cluster_public_hostname:8443

为什么-使用破折号 (-) 代替文件名中进行了描述

回答 Q3:

您可以使用用于应用程序的 OpenShift 路由器使 Web 控制台在 443 上可用。它有点过时,但对于当前 3.x 版本的概念是相同的使 OpenShift 控制台在端口 443 上可用 (https) [更新]

于 2020-07-19T00:47:08.843 回答