Ali Ingres Controller安装及路由配置浅析

前言

本文主要讲述阿里云ACK上安装ingress controller,对外网、内网的slb或者同时对内对外的配置详情及注意事项。

Ingress controller安装配置及注意事项

安装ack时选择安装

此种方式最简单,根据需求即可安装对外或者对内的ingress controller,默认公网访问,安装好即可,如下图所示:

应用市场手动安装

点击查看官方文档安装方式,官方文档介绍的不在赘述,下面只讲述注意事项。

    1.20及以上集群选中ack-ingress-nginx-v1,选择所需要安装的集群和命名空间,这里发布名称比较关键,命名过长会重复加上ack生成的字符串会报错,这里只写一个和自己项目关联的关键字名称即可,后面会自动补齐,如下所示 下一步官方文档有关controller.ingressClass描述:同一个集群中不同套Ingress Controller监听的Ingress Class标识必须唯一,且不能设置为nginx关键字(nginx是集群默认Ingress Controller的监听标识)。但是默认的ingress class的值包含nginx,如下图所示,所以此处要手动修改成不包含关键字的额名字,如test-internal-ingressclass,不改的话,后续ingress controller将无法使用

Ingress对内对外路由配置及注意事项

只有对外服务Ingress配置

默认上面安装好都是对外的ingress,所以假设ack环境中只有一套对外ingress controller,在配置好对应的service、deployment服务之后,即可配置对外的ingress,此处需要注意的地方是annotations里面要指定上面强调容易出错的ingressclass名字,关于ingressclass的更多详情,可以参考

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: vccp-internal-ingressclass

对内对外同时存在时ingress配置

同时存在对内外的ingress配置分为如下两种情况:

同一个服务同时需要对内对外

不同服务各自对内对外

比如A服务只需要对公网暴露,B服务只需要对私网暴露;此时需要部署两个ingress controller,一个对外一个对内,上面已经部署了一个对外网访问的controller,接下来只需要应用市场里面部署一个对内即可,部署完成,此时有两个ingressclass,ingressclass的作用是指定ingress使用哪一个controller,创建ingress时,annotations里面如上述所示,指定对应ingressclass。 需要额外说明的是对内暴露的服务可以通过上述在创建ack时指定负载均衡类型为私网类型即可,或者应用市场里面再创建一个,创建好之后删除之前的service和对公的SLB,同时按照上述创建对内的slb和service即可,详情可以点击看官方文章。

注意事项

用helm安装的k8s服务,需要通过helm卸载安装,不然有些服务删除不掉,会有各种报错。

    可以在ack控制台 应用–云原生–helm里面找到对应服务卸载掉 通过 helm delete --purge chartname删除
经验分享 程序员 微信小程序 职场和发展