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层负载均衡.其在物理机中有多种部署方式.本文中主要选择了 ...
随机推荐
- “初始化 Java 工具”期间发生了内部错误, java.lang.NullPointerException
今天刚打开eclipse就报了这个错误,我怀疑是昨晚想关电脑的时候,关闭eclipse太快,没有等待工作空间保存就关了电脑的缘故 错误如图: (图片来自下方链接博客,因为忘记截图了) 我百度后按照提示 ...
- Java基础-运算符、包机制、JavaDoc生成文档
运算符 Java语言支持如下运算符:优先级() 算术运算符:+,-,*,/,%,++,- 赋值运算符:= 关系运算符:>,<,>=,<=,==,!=,instanceof 逻辑 ...
- nestjs mongoose关联查询
nestjs,mongoose关联查询网上搜不到了,查看了nest/mongoose.d.ts文件,分享一波 user.model.ts import { Prop, Schema, SchemaFa ...
- openGL 学习笔记 (一) 了解 OpenGL,创建第一个OpenGL窗口
// 序章最开始我以为OpenGL是一系列的API,他给出了一系列对计算机图像的操作接口.但其实OpenGL其实并不是一个API,他是由khronos组织制定并维护的规范. 早期的OpenGL使用立即 ...
- GIS空间分析和建模复习重点2
10.缓冲区和缓冲区分析的概念 (1)缓冲区分析分为 点缓冲区分析:一般是围绕点对象建立一定半径的圆形区域. 线缓冲区分析:沿着线的两侧建立距离为缓冲距的带状区域. 面缓冲区分析:是沿着多边形的边界建 ...
- Redis实战(二)Redis 的 RDB 配置和数据恢复
RDB 配置解释 在 redis.conf 文件中,默认有 RDB 持久化配置: save 900 1 save 300 10 save 60 10000复制复制失败复制成功 解释: 这些配置称为检查 ...
- android 编译 node js 14
本文基于wsl ubuntu 22.04.1 LTS 系统 上成功编译 安卓版 node js 14.15.4的一些记录. 编译环境: nodejs 用到两套编译器分别用来编译本机的一些工具链和目标平 ...
- 在windows上搭建spark遇到的问题
报错如下: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: --------- ...
- vscode 右键运行php文件到浏览器
1.安装PHP Server插件 2.在需要打开的文件中右键选择PHP Server:Server project 3.浏览器页面显示
- Pyodide读取CSV、EXCEL
from pyodide.http import pyfetch, open_url pyfetch(url="/your/URL/goes/here", method=" ...