Kubernetes--Ingress资源类型
Ingress资源类型
基于HTTP暴露的每个Service资源均可发布于一个独立的FQDN主机名之上,如 “ www.ik8s.io ” ;也可发布于某主机上的URL路径之上,从而将它们整合到同一个Web站点,如 “ www.ik8s.io/garafana ” 。至于是否需要发布为HTTPS类型的应用则取决于用户的业务需求。
1. 单Service资源型Ingress
暴露单个服务的方法有很多种,如服务类型中的NodePort、LoadBalancer等,不过一样可以考虑使用Ingress来暴露服务,此时只需要为Ingress指定 “ dafault backend ” 即可。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
spec:
backend:
serviceName: my-svc
servicePort: 80
Ingress控制器会为其分配一个IP地址接入请求流量,并将它们转至示例中的my-svc后端。
2. 基于URL路径进行流量分发
垂直拆分或微服务架构中,每个小的应用都有其专用的Service资源等暴露服务,但在对外开放的站点上,它们可能是财经、新闻、电商、无线端或API接口等一类的独立应用,可通用主域名的URL路径(path)分别接入,例如,www.ilinux.io/api、 www.ilinux.io/wap 等,用于发布集群内名称为API和WAP的Service资源。于是,可对应地创建一个如下地Ingress资源,它将对www.ilinux.io/api 的请求统统转发至API Service资源。将对www.linux.io/wap 的请求转发至WAP Service资源:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: www.ilinux.io
http:
paths:
- path: /wap
backend:
serviceName: wap
servicePort: 80
- path: /api
backend:
serviceName: api
servicePort: 80
注意:目前,Ingress-nginx似乎尚且不能很好地支持基于annotations进行URL映射。这就意味着,在ingress-nginx上,此项功能尚且不能使用。具体信息请参考这个链接中地讨论,github.com/istio/istio… 。
3. 基于主机名称地虚拟主机
上面类型2中描述的需求,也可以将每个应用分别以独立的FQDN主机名进行输出,如www.ik8s.io 和api.ik8s.io,这两个主机名解析到external LB的IP地址之上,分别用于发布集群内部的WAP和API这两个Service资源。这种实现方案其实就是Web站点部署中的“基于主机名的虚拟主机”,将多个FQDN解析至同一个IP地址,然后根据“主机头”(Host header)进行转发。
下面是以独立FQDN主机形式发布服务的Ingress资源示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
- host: api.ik8s.io
http:
paths:
- backend:
serviceName: api
servicePort: 80
- host: wap.ik8s.io
http:
paths:
- backend:
serviceName: wap
servicePort: 80
TLS类型的Ingress资源
这种类型用于以HTTPS发布Service资源,基于一个含有私钥和证书的Secret对象(不明白的可以上网查询,以后我也会做详细讲述~)即可配置TLS协议的Ingress资源,目前来说,Ingress资源仅支持单TLS端口,并且还会卸载TLS会话。在Ingress资源中引用此Secret即可让Ingress控制器加载并配置为HTTPS服务。
下面是一个简单的TLS类型的Ingress资源示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: no-rules-map
spec:
tls:
- secretName: ikubernetesSecret
backend:
serviceName: hostsite
servicePort: 80
Kubernetes--Ingress资源类型的更多相关文章
- (八)Kubernetes Ingress资源
前言 Kubernetes提供了两种内建的云端负载均衡机制(cloud load balancing)用于发布公共应用,一种是工作于传输层的Service资源,它实现的是“TCP负载均衡器”,另一种是 ...
- [置顶]
kubernetes资源类型--ingress
Ingress在K8S1.1之前还没有. 概念 Ingress是一种HTTP方式的路由转发机制,为K8S服务配置HTTP负载均衡器,通常会将服务暴露给K8S群集外的客户端. Ingress是一个允许入 ...
- [置顶]
kubernetes资源类型--PetSets/StatefulSet
PetSet首次在K8S1.4版本中,在1.5更名为StatefulSet.除了改了名字之外,这一API对象并没有太大变化. 注意:以下内容的验证环境为CentOS7.K8S版本1.5.2,并部署Sk ...
- [置顶]
kubernetes资源类型--持久化存储Persistent Volume和Persistent Volume Claim
概念 存储管理跟计算管理是两个不同的问题.理解每个存储系统是一件复杂的事情,特别是对于普通用户来说,有时并不需要关心各种存储实现,只希望能够安全可靠地存储数据. 为了简化对存储调度,K8S对存储的供应 ...
- Kubernetes Ingress Controller的使用及高可用落地
Kubernetes Ingress Controller的使用及高可用落地 看懂本文要具备一下知识点: Service实现原理和会应用 知道反向代理原理,了解nginx和apache的vhost概念 ...
- Kubernetes Ingress 学习
Kubernetes 中暴露服务的方式有三种 Loadbalancer 这种方式往往需要云供应商支持,或者本地F5等设备支持 NodePort 这种方式调用方通过NodeIP:NodePort 的方式 ...
- Kubernetes Ingress管理
目录 Ingress介绍 1.Pod漂移问题 2.端口管理问题 3.域名分配及动态更新问题 Nginx Ingress配置 1.部署默认后端 2.部署Ingress Controller 3.部署In ...
- Kubernetes 学习11 kubernetes ingress及ingress controller
一.上集回顾 1.Service 3种模型:userspace,iptables,ipvs 2.Service类型 ClusterIP,NodePort NodePort:client -> N ...
- [转帖]kubernetes ingress 在物理机上的nodePort和hostNetwork两种部署方式解析及比较
kubernetes ingress 在物理机上的nodePort和hostNetwork两种部署方式解析及比较 https://www.cnblogs.com/xuxinkun/p/11052646 ...
- kubernetes ingress 在物理机上的nodePort和hostNetwork两种部署方式解析及比较
ingress controller在物理机上的两种部署方式 ingress controller(ingress-nginx)负责k8s中的7层负载均衡.其在物理机中有多种部署方式.本文中主要选择了 ...
随机推荐
- 关于idea2021.1版本的左边不显示bpmn Editor的问题
我这里是自定义主题风格出现的问题 idea左上角File→选择setting→找到Color Scheme菜单,将主题颜色改为IntelliJ Light.在重启idea就好
- 11、java环形单链表解决约瑟夫问题
环形单向链表:守卫连接的一个单向链表,每个节点中有其变量和一个指针指向下一个节点.头节点可有可无,此处写的没有头节点. 创建,先创建一个没有数据的first节点表示整个链表的第一个节点 添加,此处的添 ...
- Pytorch实战学习(八):基础RNN
<PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili Basic RNN ①用于处理序列数据:时间序列.文本.语音..... ②循环过程中权重共享机制 一.RNN原理 ① X ...
- windows10本地联调zk环境报异常SASL config status: Will not attempt to authenticate using SASL (unknown error)
感谢原文:https://blog.csdn.net/qq_43639296/article/details/123282280 SASL config status: Will not attemp ...
- ptyhon基础课程_2
10 输入 # 例一 user_name = input ("请输入姓名:") message = user_name + "shaobing" print ( ...
- 掌控安全学院SQL注入靶场延时注入(二)
单引号被转义了 尝试闭合 判断注入 利用盲注即可 or ascii(substr(database(),1,1))=119
- wpf DataGrid相关总结
1.去掉外边蓝框,设置BorderThickness="0"
- Jenkins自动化部署(linux环境)---代码提交触发Jenkins构建
1.在工程中点击构建触发器中选择Generic Webhook Trigger,填写token 2.gitee配置Webhook 选择gitee项目中的Settings->Webhooks> ...
- 我和Java这些年的故事(三)
J2EE让Java在服务端找到了用武之地,之前一直处于鄙视链末端的Java,也终于有了向VB/VC叫板的资本.EJB更是J2EE的代名词,是解决企业级组件复用的法宝. 有了JSP/Servlet,Ja ...
- pypi镜像-清华
临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package 注意,simple 不能少, 是 https 而不是 ...