云原生之旅 - 8)云原生时代的网关 Ingress Nginx( 二 )

---apiVersion: v1kind: Servicemetadata:name:atlantis-demo-ext-svcspec:type: ExternalNameexternalName: atlantis.atlantis.svc.cluster.localports:- name: httpport: 8080targetPort: 4141protocol: TCP因为用了 https,所以需要一个tls-secret
kubectl create secret -n dmz tls wade-tls-secret \--key ./xxx.key \--cert ./xxx.pembuild and apply
kustomize build ingress-nginx-public/sre-mgmt-dev/ > ~/deploy.yamlkubectl apply -f ~/deploy.yaml多个 Ingress Nginx Controller 部署同一个cluster 如果要安装另一个ingress nginx controller,比如作为内部API网关,该怎么实现呢?
为了避免多个ingress controller 以一种困惑的方式同时争抢更新 ingress status字段,需要使用IngressClasses 官方文档
另外还要注意资源重名的情况,需要改name,否则后部署的Ingress controller 会覆盖前者, 比如 ClusterRoleBinding
参考 my manifests 部署在app namespace的internal Ingress nginx 针对以上资源的修改 。
总结一般来说,Ingress nginx 足以应付大部分场景了,除非你想用到一些高阶功能,比如流量管理,熔断等等 。那么我会推荐 后起之秀基于Enovy的那些Ingress controller,比如Ambassador 现在叫Emissary,CNCF的incubating 项目 。
感谢阅读,如果您觉得本文的内容对您的学习有所帮助,您可以打赏和推荐,您的鼓励是我创作的动力 。

经验总结扩展阅读