由于最近我司将一些上层应用逐渐迁移到K8S集群里面,关于一些应用资源的访问默认采用的是容器的服务,这里服务的负载均衡集成了阿里云SLB,默认是四层的一个负载,当前只支持http无法支持https
基于以上问题以及业界玩K8S的都采用Ingress形式,所以就阿里云默认创建的Ingress进行了调研,主要是针对两个问题:
1,配置安全路由服务证书问题
2,部署高可靠的Ingress Controller问题
以上两个问题,阿里云官方都有支持文档,只是这两个文档都有一些小坑需要大家注意,接下来基于这两个问题的小坑进行展开描述:

问题一:阿里云官方文档如下链接:
https://help.aliyun.com/document_detail/53770.html?spm=a2c4g.11186623.6.634.QsDUbP
点击本文导读目录->配置安全的路由服务 这一章节;
通过这个阿里云官方文档创建的secret一般现在很多浏览器是不可信任的证书,而且每次ingress服务都需要重新创建;所以需要咱们官方的申请一个证书,比如说申请个二级域名*.alitest.com,然后下载对应的证书文件crt和pem,然后再创建一个secret,命令如下:
root@master # kubectl create secret tls alitest.com --key .key --cert .pem
这样申请有什么区别呢?
第一,是可信任的证书
第二,这个二级域名的证书可以通配你这个域名下的所有ingress服务的host

问题二:阿里云官方文档如下链接:
https://help.aliyun.com/document_detail/86750.html?spm=5176.11065259.1996646101.searchclickresult.7c785098kDslht
点击本文导读目录->步骤3 更新 Ingress SLB 服务
针对于容器应用服务里面的nginx-ingress-lb这个名称,后面点击更新后的它的内部端点都会发生变化,这个时候ingress默认集成的SLB监听的端口就需要手动的更改,否则就显示异常,有两种方式可以查看
1,通过K8S的dashborad
点击容器服务--应用--服务--查看nginx-ingress-lb的内部端点对应关系
2,登录K8S的系统通过命令查看
root@master #kubectl get svc -n kube-system
看到PORT(S)选项对应的80和443端口关系

所以当你根据阿里云官方文档完成所有步骤的时候一定要记得更新Ingress SLB的监听端口号。

以上两点均属本人实际操作过程中遇到的小坑,如有描述不清楚的信息,请随时致电18601146741进行沟通,完毕,谢谢。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐