Kubernetes--创建Ingress资源
创建Ingress资源
Ingress资源是基于HTTP虚拟主机或URL的转发规则,它在资源配置清单的spec字段中嵌套了rules、backend和tls等字段进行定义。下面的示例中定义了一个Ingress资源,它包含了一个转发规则,把发往 www.ilinux.io 的请求代理给名为myapp-svc的Service资源:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: www.ilinux.io
http:
paths:
- backend:
serviceName: myapp-svc
servicePort: 80
上面资源清单中的annotations用于识别其所属的Ingress控制器的类别,这一点在集群上部署有多个Ingress控制器时尤为重要。Ingress Spec中的字段是定义Ingress资源的核心组成部分,它主要嵌套如下三个字段。
rules:用于定义当前Ingress资源的转发规则列表;未由rules定义规则, 或者没有匹配到任何规则时,所有流量都会转发到由backend定义的默认后端。
backend:默认的后端用于服务那些没有匹配到任何规则的请求;定义Ingress资源时,至少应该定义backend或rules两者之一;此字段用于让负载均衡器指定一个全局默认的后端。
tls:TLS配置,目前仅支持通过默认端口443提供服务;如果要配置指定的列表成员指向了不同的主机,则必须通过SNITLS扩展机制来支持此功能。
backend对象的定义由两个必选的内嵌字段组成:serviceName和servicePort,分别用于指定流量转发的后端目标Service资源的名称和端口。
rules对象由一系列配置Ingress资源的host规则组成,这些host规则用于将一个主机上的某个URL路径映射至相关的后端Service对象,它的定义格式如下:
spec:
rules:
- host: <String>
http:
paths:
backend:
serviceName: <String>
servicePort: <string>
path: <String>
注意,.spec.rules.host属性值目前不支持使用IP地址,也不支持后跟 “:PORT” 格式的端口号,且此字段值留空表示通配所有的主机名。
tls对象由两个内嵌字段组成,仅在定义TLS主机的转发规则时才需要定义此类对象。
hosts:包含于使用的TLS证书之内的主机名称字符串列表,因此,此处使用的主机名必须匹配tlsSecret中的名称。
secretName:用于引用SSL会话的secret对象名称,在基于SNI实现多主机路由的场景中,此字段为可选。
最新文章
- UIAlertController使用
- Code Complete 笔记—— 第一章
- arcgis desktop 10.1 license manager无法启动问题解决
- (转)HTTP 长连接和短连接
- 7 MySQL存储过程和函数
- linux下vi编辑某文件时,操作出现 错误提示: E325: ATTENTION 2, Found a swap file by the name ";.p1.c.swp";
- 201621123062《java程序设计》第六周作业总结
- nginx中的超时设置,请求超时、响应等待超时等
- Oracle数值处理函数
- Maven和Solr简单总结
- John the Ripper-弱口令检测
- 在Struts.xml中的result元素指的是:指定动作类的动作方法执行完后的结果视图.
- 升级mac Mojave系统,git无法使用
- C-Lodop的https扩展版,火狐下添加例外
- 如何在Framework中读取bundle中的Res
- nginx搭建(centos7)
- 利用css和javascript实现简单的计算器
- 集合之fail-fast机制
- java实现中值滤波均值滤波拉普拉斯滤波
- [翻译] RBBAnimation,让你使用关键帧动画更便利