简单介绍:
Ingress 是 Kubernetes API 的标准资源类型之一, 它其实就是一组基于 DNS 名称或 URL 路径把请求转发至指定的 Service 资源的规则, 用来将集群外部的请求流量转发至集群内部. 但是, Ingress 资源自身并不能进行 "流量穿透", 它仅是一组路由规则的集合, 这些规则想要真正发挥作用还需要其他功能的辅助, 如监听某套接字, 然后根据这些规则的匹配机制路由请求流量. 这种能为 Ingress 资源监听套接字并转发流量的组件称为 Ingress 控制器(Ingress Controller).
部署方法:1 helm 安装 ingress 2传统 YAML 文件安装 ingress
测试环境:
一个 kubernetes 集群, 配置了 helm
操作步骤:
方法1
1. 用 helm 搜索并安装
- [[email protected] ~]# helm search nginx-ingress
- NAME CHART VERSION App VERSION DESCRIPTION
- stable/nginx-ingress 0.9.5 0.10.2 An nginx Ingress controller that uses ConfigMap to store ...
- stable/nginx-lego 0.3.1 Chart for nginx-ingress-controller and kube-lego
- [[email protected]k8s-master ~]# helm install --name nginx-ingress --set "controller.hostNetwork=true,rbac.create=true" stable/nginx-ingress
- NAME: nginx-ingress
- LAST DEPLOYED: Sat May 25 13:51:54 2019
- NAMESPACE: default
- STATUS: DEPLOYED
- RESOURCES:
- ==> v1/ConfigMap
- ......
- ......
2. 查看 pod 运行状态
- [[email protected] ~]# kubectl get pod -o wide
- NAME READY STATUS RESTARTS AGE IP NODE
- nginx-ingress-controller-78f9df54dd-dmxvr 1/1 Running 0 59s 172.19.5.40 k8s-node3
- nginx-ingress-default-backend-6f598d9c4c-ms7xx 1/1 Running 0 58s 192.168.1.43 k8s-node1
注: 上面的高亮 IP 是某一个节点的 IP, 此刻这个节点上已经启动了 80 和 443 端口; 同时, 也起了一个默认的后端(default backend), 这个默认的后端就做了一件事: 返回 404(如果访问根).
3. 浏览器 IP 测试和域名 (k8s.xxx.cn) 测试效果
以上是安装后的默认配置, 如果需要添加其他类似于 API.xxx.com 或者 www.xxx.com/API 这样的域名, 继续添加或者修改 ingress 资源, 然后在 ingress 中引用 ServiceName 就能指向到后端的 pod.
来源: http://www.bubuko.com/infodetail-3071210.html