Llilien1010K零S
- 已编辑
目录
- 1、安装 KubeSphere 。
- 2、安装 Loadbalancer,允许通过外网访问服务。
- 3、helm chart 打包 APISIX 应用模板 。
- 4、部署 APISIX。
- 5、配置 APISIX 的应用路由,外网访问APISIX。
- 6、在 Dashboard 配置 APISIX 的路由。
安装 KubeSphere3.0
KubeSphere 快速安装与入门必读清单
https://kubesphere.com.cn/forum/d/2062-awesome-kubesphere-kubesphere-3-0/12
安装过程中遇到比较多的问题都是因为端口问题引起的。
建议参考这里的端口说明。
安装 Loadbalancer 插件 ,支持外网访问服务
参考地址:https://v2-1.docs.kubesphere.io/docs/zh-CN/installation/qingcloud-lb/
在 项目设置 -> 高级设置里面 配置如下:
每个云厂商都有对应的 LB 插件
以青云为例:https://github.com/yunify/qingcloud-cloud-controller-manager
上面的插件会帮助你自动在云平台创建一个LB(负载均衡器)
安装云厂商的LB的插件之后,需要去云厂商后台观察 LB 有没有被建立,后续的服务域名需要解析到LB的公网IP。
验证插件成功创建了LB(负载均衡器)。
helm chart 打包 APISIX 应用模板
https://github.com/kubesphere/helm-charts
目前上述仓库使用的镜像是 apache/apisix:1.5-alpine , 如果有需要,可以更新 clone 上面的仓库代码 修改 src/test/apisix/values.yaml 里面的版本号,再执行 helm 打包命令。
执行完 打包命令 helm package apisix
之后,会在本地生成一个 apisix-0.1.5.tgz 文件,就是下面要上传到Kubesphere平台的应用模板。
命令如下:
开始部署 APISIX
在 kubeSphere 的应用管理(App Managment)里面,选择手动上传 Helm Chart 包,然后上传刚刚我们再本地打包好的 apisix-0.1.5.tgz。
这样就算成功创建了一个 APISIX 的 应用模板了,如果有需要可以自己修改 APISIX 的 helm chart 文件, 通常手动打包用来自己要调整一些APISIX配置。
另外我们可直接使用 https://charts.kubesphere.io/test
作为模板仓库,里面内置了 APISIX。
模板创建完整之后,就可以去在“应用模板”里面使用刚刚上传的模板创建应用了。
如图所示:
另外我们也可以使用 应用仓库来部署 APISIX
根据提示,一步一步部署即可,如果有需要可以手动调整应用配置,比如端口,但是大部分时候都不需要手动调整。
开通 APISIX 的应用路由,外网访问APISIX
部署了 APISIX 之后,这个时候需要配置一个应用网关,使得可以通过 外网访问到,如果是公网,记得域名要解析到前面的负载均衡器的公网IP。这里路径是 “/” ,表示所有的该域名下的请求都会去到APISIX, 也可以根据需求调整,但是 /apisix/dashboard 是APISIX的管理后台,必须放开。
在 Dashboard 配置 APISIX 的路由
上一步完成之后 就可以通过URL apisix-demo.*.com/apisix/dashboard
直接访问APISIX 的 dashboard了。
但是这里因为 APISIX dashboard 没有安全认证,不建议在公网暴露,。
接下来 我们尝试配置一个上游服务,并在路由上加频率控制的插件。
这里我做实验需要,直接配置的,KS内置的 bookinfo的服务的内网IP和PORT。
这里 我们可以使用 productpage 这个服务的 内网域名:productpage.apisix-test-proejct.svc.cluster.local
规则是 服务名-项目名称.svc.cluster.local
参考案列服务:
https://kubesphere.com.cn/zh/docs/quick-start/deploy-bookinfo-to-k8s/
配置路由,并且挂载 limit-req 插件,控制请求频率。
可以看到如果请求太快,就如如下图所示,返回503,从而保护上游服务不会过载。
更多APISIX使用教程:
https://github.com/apache/apisix/tree/master/doc