ingress简介
ingress为弥补NodePort不足而生:
NodePort的不足:
- 一个端口只能一个服务使用,端口需要提前规划
- 只支持4层负载均衡
Ingress是什么:
- Ingress: k8s中的一个抽象资源,给管理员提供一个暴露应用的入口定义方法
- Ingress Controller: 负责流量路由,根据ingress生成具体的路由规则,并对pod负载均衡。
ingress安装
ingress、nginx、k8s版本兼容
- 下载部署的yaml文件
https://github.com/kubernetes/ingress-nginx/blob/controller-v1.3.0/deploy/static/provider/cloud/1.23/deploy.yaml
- 修改yaml文件中的镜像地址,修改为阿里云源
一共修改三处,2、3处一致
image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.3.0
image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1
- 开始部署
kubectl apply -f deploy.yaml
- 查看部署情况
[root@k8s-master ~]# kubectl get pod -n ingress-nginx -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
ingress-nginx-admission-create-fnv5h 0/1 Completed 0 38s 10.244.169.133 k8s-node2 <none> <none>
ingress-nginx-admission-patch-zr558 0/1 Completed 1 38s 10.244.169.132 k8s-node2 <none> <none>
ingress-nginx-controller-7f7987c985-9dfv5 1/1 Running 0 38s 10.244.169.134 k8s-node2 <none> <none>
[root@k8s-master ~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller NodePort 10.98.217.32 <none> 80:32160/TCP,443:30858/TCP 50s
ingress-nginx-controller-admission ClusterIP 10.106.224.250 <none> 443/TCP 50s