spec 和status 字段
Kubernetes 用spec 来描述所期望的对象应该具有的状态,而用sta阳s 字段来记录对象在系统上的当前状态,因此status 字段仅对活动对象才有意义。这两个字段都属于嵌套类型的字段。在定义资掘配置清单时, spec 是必须定义的字段,用于描述对象的目标状态,即用户期望对象需要表现出来的特征。status 宇段则记录了对象的当前状态(或实际状态),此字段值由Kubernetes 系统负责填充或更新,用户不能手动进行定义。Master 的controllermanager通过相应的控制器组件动态管理并确保对象的实际状态匹配用户所期望的状态,它是一种调和( reconciliation )配置系统。
Ingress Spec 中的字段是定义Ingress 资源的核心组成部分, 它主要嵌套如下三个字段。
D rules <Object> :用于定义当前Ingress 资源的转发规则列表;未由rules 定义规则,或者没有匹配到任何规则时,所有流量都会转发到由backend 定义的默认后端。
口backend <Object> : 默认的后端用于服务那些没有匹配到任何规则的请求;定义Ingress 资源时, 至少应该定义backend 或rules 两者之一;此字段用于让负载均衡器指定一个全局默认的后端。
口tis <Object> : TLS 配置,目前仅支持通过默认端口443 提供服务;如果要配置指定的列表成员指向了不同的主机,则必须通过SNITLS 扩展机制来支持此功能。backend 对象的定义由两个必选的内嵌字段组成: serviceName 和servicePort ,分别用于指定流量转发的后端目标Service 资源的名称和端口。
rules 对象由一系列配置Ingress 资源的host 规则组成, 这些host 规则用于将一个主机
上的某个URL 路径映射至相关的后端Service 对象, 它的定义格式如下:
spec: rules : - host : <String> http : paths : backend : serviceName : <Stri 口g> servicePort : <Stri ng> path : <String>
注意, .spec.rules.host 属性值目前不支持使用IP 地址,也不支持后跟“:PORT ”格式的
端口号, 且此宇段值留空表示通配所有的主机名。
tis 对象由两个内嵌字段组成, 仅在定义TLS 主机的转发规则时才需要定义此类对象。