CloudSigma PaaS 允许用户使用公共 IP 地址公开其应用程序。此地址需要附加到来自 Kubernetes 集群 环境。在 CloudSigma PaaS 环境中,有两种方法可以实现这一点:
- 一种方法是将公共 IP 附加到专用负载均衡器。

- 另一种方法是将公共 IP 附加到 Kubernetes 的 Worker 节点。
在本教程中, 我们将指导您如何使用这两种方法之一来获取 Kubernetes 应用程序访问权限。
为 Kubernetes 应用程序访问设置专用负载均衡器
首先,我们将学习如何设置 专用负载均衡器 以进行应用程序访问:
- 前往 CloudSigma Marketplace 以查找并安装 Kubernetes 集群。然后,部署您的应用程序。作为一个示例,我们将部署 Jakarta EE Cargo Tracker.
- 在您的 Kubernetes 集群旁,找到并单击 更改环境拓扑。在屏幕上打开的窗口中,添加一个专用负载均衡器节点。然后,像这样向其附加一个公共 IP 地址:

在我们的示例中,我们使用了 NGINX 负载均衡器节点。还有多种其他可用的负载均衡器,包括 HAProxy, LS Web ADC 和 Varnish。您可以选择您喜欢使用的任何一种。
完成拓扑修改后,应用的变化将如下所示:


3. 下一步是为自定义域名创建 A 记录。您将使用在前面步骤中使用的相同公共 IP 地址。在此示例中,我们将使用 cargo-tracker.cloudsigma.website:

4. 现在我们可以将自定义域名附加到 K8s 集群。为此,我们将发送请求以签发受信任的 Let’s Encrypt SSL 证书:
- 将鼠标悬停在负载均衡器上并单击 Add-Ons.
- 找到并安装 Let’s Encrypt Free SSL:

- 在配置中,输入您的自定义域名,然后单击 安装。在我们的例子中,域名如下:

最后,我们现在已经使我们的应用程序可以通过自定义域名进行访问 https://cargo-tracker.cloudsigma.website。我们还使用有效且受信任的 Let’s Encrypt SSL 证书对应用程序上的流量进行了加密。
使用 Kubernetes Worker 节点公共 IP 地址获取应用程序访问权限
接下来,我们将探讨使应用程序在 Kubernetes 集群外部可用的另一种方法。本质上,我们将学习如何将公共 IP 地址附加到 Kubernetes 集群中的 worker 节点,以便直接访问该应用程序:
让我们继续使用之前向您展示的相同示例。我们将使用部署了 Cargo Tracker 应用程序的相同集群。以下是操作步骤:
1. 单击 更改环境拓扑。 将公共 IP 地址添加到 worker 节点:

2. 接下来,为您的自定义域名创建 A 记录并将其映射到您刚刚添加的 IP。请确保您使用的域名与前一章中使用的域名不同。例如,我们将使用以下域名:cargo-tracker-worker.cloudsigma.website:

3. 将鼠标悬停在 Control Plane 或 Master 节点上并单击 Add-Ons。找到并安装 Certificate Manager。这将安装一个 cert-manager 控制器以及一个具有 LoadBalancer 服务类型的 NGINX ingress 控制器。后者包含与您的 worker 节点关联的 IP 地址。它将提供 “nginx-cert” ingress 类资源:

4. 在给定字段中,输入您首选的域名,然后单击 应用:

5. 在安装时,该插件还会安装一个名为 helloworld-cert. 您只需使用以下命令删除它使用的资源:
|
1 2 3 4 5 |
$ kubectl delete deploy hello-cert-manager $ kubectl delete svc hello-cert-manager $ kubectl delete ing helloworld-cert |
这些命令应使用以下方式输入并执行: SSH (SFTP) 或 Web SSH Gate 的 Control Plane 或 Master Node。将鼠标悬停在节点上,然后单击 Web SSH 旁边的选项以访问网关。
另一个选项是将鼠标悬停在 控制平面 或 主节点 并单击 配置。从这里,转到 SFTP/SSH 网关 并按照给出的说明进行操作。
6. 为了终止应用程序 SSL 流量并处理到 cargo-tracker 服务的路由,我们需要创建一个名为 cargo-tracker-worker。 假设我们使用的是 cargo-tracker-worker-ingress.yaml。 您可以使用诸如 vi 之类的编辑器来创建文件,然后粘贴以下代码:
|
1 |
vi cargo-tracker-worker-ingress.yaml |
之后,按如下步骤操作:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cargo-tracker-worker namespace: default annotations: kubernetes.io/ingress.class: nginx-cert cert-manager.io/cluster-issuer: "letsencrypt-prod" kubernetes.io/tls-acme: "true" nginx.ingress.kubernetes.io/affinity: "cookie" nginx.ingress.kubernetes.io/affinity-mode: "persistent" nginx.ingress.kubernetes.io/session-cookie-expires: "172800" nginx.ingress.kubernetes.io/session-cookie-max-age: "172800" spec: tls: - hosts: - cargo-tracker-worker.cloudsigma.website secretName: external-domain-tls rules: - host: cargo-tracker-worker.cloudsigma.website http: paths: - path: / pathType: ImplementationSpecific backend: service: name: cargo-tracker port: number: 80 |
|
1 |
$ kubectl apply -f cargo-tracker-worker-ingress.yaml |
7. 创建此 Ingress 后,证书管理器(Certificate Manager)将自动为您的新域名签发 Let’s Encrypt SSL 证书。请等待一两分钟,然后再检查您的应用程序是否可以在新的自定义域名上访问,在我们的示例中,该域名为 https://cargo-tracker-worker.cloudsigma.website。
瞧!通过遵循这些步骤,您已使用两种不同的方法公开了您的应用程序。因此,您将看到两个 Ingress。对我们来说,它们是:
- cargo-tracker
此 Ingress 用于处理通过专用负载均衡器的公网 IP 进入的应用程序流量。
- cargo-tracker-worker
此 Ingress 设置为处理直接从绑定到 K8s 工作节点的 IP 流入的应用程序流量。
它们将显示如下:

根据您选择的实现方式,您在生产环境中只需要一个 ingress。CloudSigma PaaS 为其用户提供了许多工具来执行负载均衡,以满足其应用程序的需求。欢迎阅读并了解更多关于负载均衡在平台上的应用。我们还提供了关于使用诸如NGINX和HAProxy等其他可用工具进行负载均衡的基础知识的详细指南。
您可以对 CloudSigma’s PaaS进行体验,通过我们的 7天免费试用,或者 联系我们,如果您希望我们为您提供更多详情和平台演示。

评论
暂无评论。发表第一条评论吧。