目录
一、ingress简介
单独用service暴露服务的方式,在实际生产环境中不太合适
ClusterIP的方式只能在集群内部访问。
NodePort方式的话,测试环境使用还行,当有几十上百的服务在集群中运行时,NodePort的端口管理是灾难。
LoadBalance方式受限于云平台,且通常在云平台部署ELB还需要额外的费用。
ingress可以简单理解为service的service,他通过独立的ingress对象来制定请求转发的规则,把请求路由到一个或多个service中。这样就把服务与请求规则解耦了,可以从业务维度统一考虑业务的暴露,而不用为每个service单独考虑。
Kubernetes 里的Ingress 服务是一种全局的、为了代理不同后端Service 而设置的负载均衡服务。
Ingress由两部分组成:Ingress controller和Ingress服务。
Ingress Controller 会根据你定义的Ingress 对象,提供对应的代理能力。业界常用的各种反向代理项目,比如 Nginx、HAProxy、Envoy、Traefik 等,都已经为Kubernetes 专门维护了对应的Ingress Controller。
二、ingress的安装部署
将ingress-nginx部署所需资源清单文下下载下来
Welcome - NGINX Ingress Controllerhttps://kubernetes.github.io/ingress-nginx/
curl -o deploy.yaml https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/baremetal/deploy.yaml
https://hub.docker.com/r/wangshun1024/ingress-nginx-controller/tags
需要的镜像放到本地仓库(上方可以查看镜像版本路径)
docker pull wangshun1024/ingress-nginx-controller:v1.1.0
docker pull wangshun1024/kube-webhook-certgen:v1.1.1
修改标签放入仓库