我之前安装ack集群时没有开启ingress,在这里手动部署 ingress-controller 。
ingress-congroller 理论上可以部署多个,根据需求来配置,定义不同的注解名来确定使用哪个ingress即可。
主线: nodeport ingress
1.如下图进入ack控制面板的helm安装应用的流程,如果k8s 版本比较新就选1.1.0 版本的ingress 否则选老版本,选择好chart后点击下一步
2.修改ingress的配置
如果要创建nodeport的ingress的话,使用下面的注释中的配置,并将type:loadBalancer 注释掉,下面的nodeports 空白配置的部分也要注释掉
类似这样
3.注意有一个ingressClass 的配置,
这里的controllerValue 是
controllerValue: k8s.io/ack-ingress-nginx
Name 是
name: ack-nginx
这个配置会影响到之后具体的ingress的配置
完成上面的配置后点击确定按钮就会开始安装。安装完成后就可以正常使用ingress了
支线- 使用原配置clb 的 ingress
如果要使用原版的clb的ingress,则不要改动type
任然使用 type:loadBalancer
注意这个地方的配置,会设置启用的clb级别(slb=clb),根据需要承受的负载量可以配置对应的clb型号,进行安装后会自动开启一个按量使用的clb,开始计费。
使用ingress
使用ingress 可以按正常ingress的配置,不过要注意1点,需要声明使用哪个ingress。
刚才的ingress-controller有一个ingressClass的声明是用来配置给哪个ingress-controller的
在使用时进行声明会让对应的ingress 产生效用。如果不声明,则不会有ingress生效。
例如下图是页面中配置ingress的声明
在yaml文件中类似下图
本例是配置的假域名,web.test.ingress/web-test/
需要配置hosts
将 clb 或者nodeport 的公网ip 与 web.test.ingress 映射
之后 就可以访问服务了,访问方式类似下面这样。
web.test.ingress/web-test/
web.test.ingress:xxxx/web-test/ (xxxx为nodePort映射端口)