11月初,KubeSphere 发布了 3.2.0 版本,新版本为项目网关增配了整套监控及管理页面,同时引入了集群网关来提供集群层面全局的 Ingress 网关能力。
为了让用户更了解如何在新版 KubeSphere 中部署使用第三方 Ingress Controller,本文将以 Apache APISIX Ingress Controller 为例,为大家展示通过 KubeSphere 快速为 Kubernetes 集群使用不同类型的网关并进行状态监控。
准备工作
安装 KubeSphere
安装 KubeSphere 有两种方法:
-
在 Linux 上直接安装
-
在已有 Kubernetes 中安装[2]
KubeSphere 最小化安装版本已经包含了监控模块,因此不需要额外启用,可以通过「系统组件」页面中的「监控」标签页确认安装状态。
部署 httpbin 演示应用
由于需要演示网关的访问控制能力,我们必须要先有一个可以访问的应用作为网关的后台服务。这里我们使用 httpbin.org 提供的 kennethreitz/httpbin 容器应用作为演示应用。
在 KubeSphere 中,我们可以先创建新的项目或使用已有的项目,进入项目页面后,选择「应用负载」下的「服务」直接创建无状态工作负载并生成配套服务。
使用 kennethreitz/httpbin 容器默认的 80
端口作为服务端口,创建完成后确保在「工作负载」和「服务」页面下都可以看到 httpbin
的对应条目,如下图所示。
项目网关细节补充
项目网关是 KubeSphere 3.0 之后上线的功能:KubeSphere 项目中的网关是一个 NGINX Ingress 控制器。KubeSphere 内置用于 HTTP 负载均衡的机制称为应用路由,它定义了从外部到集群服务的连接规则。如需允许从外部访问服务,用户可创建路由资源来定义 URI 路径、后端服务名称等信息。
承接上文中已部署的 httpbin
服务项目,在「项目设置」中打开「网关设置」页面,然后执行「开启网关」操作。方便起见,直接选择 NodePort
作为「访问方式」即可。
确定后回到网关页面,稍等片刻后刷新页面,可以得到如下图显示的部署完成状态,在这里可以看到 NodePort 默认被赋予了两个节点端口。接招我们通过右上角的「管理」按钮「查看详情」。
此时我们看到的便是 3.2.0 版本关于项目/集群网关的新监控页面。下面我们就需要为 httpbin 服务创建应用路由。
从「应用负载」进入「应用路由」页面,开始「创建」路由。为路由取名为 httpbin
后,我们指定一个方便测试的域名,并设置「路径」为 /
, 选择「服务」httpbin
和「端口」80
。
直接下一步跳过高级设置后完成路由创建,可以得到如下图所示的 httpbin
应用路由项。
接下来我们就可以通过项目网关的 NodePort 地址及指定域名(如这里是 http://httpbin.ui:32516
)来访问 httpbin 应用服务,随意刷新或操作一下页面的请求生成功能,再进入网关的详情页面,便可以看到在「监控」面板上已经出现了网关的一些内置的监控指标展示。
指定 NodePort 节点端口
对于公有云环境,如果使用 NodePort 方式向外暴露访问能力&