ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(你在遇到挫折或暂时的失败时,你的解释方式将决定你会变得多无助或多斗志昂扬。—马丁-塞利格曼)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤ
k8s-ingress官网api说明
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingress-v1-networking-k8s-io
详细api说明
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata
字段名称 | 字段描述 |
---|---|
apiVersion | APIVersion 定义了对象表示的版本化架构。服务器应将已识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kind | Kind 是一个字符串值,表示该对象所代表的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。无法更新。在 CamelCase 中。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadata | 标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
metadata.name | 在当前命名空间中唯一标识此对象的字符串 |
metadata.uid | 时间和空间上的唯一值 |
metadata.resourceVersion | 一个字符串,用于标识此对象的内部版本,客户端可以使用它来确定对象何时发生更改。这个值必须被客户端视为不透明的,并且未经修改地传递回服务器。客户端不应该假设资源版本在命名空间、不同类型的资源或不同的服务器之间具有意义 |
metadata.generation | 表示所需状态的特定代的序列号。由系统设置,按资源单调递增。可以进行比较,例如对于 RAW 和 WAW 的一致性 |
metadata.labels | 字符串键和值的映射,可用于组织和分类对象 |
metadata.annotations | 字符串键和值的映射,外部工具可以使用它来存储和检索有关此对象的任意元数据 |
spec | Spec 是 Ingress 的理想状态。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
spec.defaultBackend | DefaultBackend 是应该处理不匹配任何规则的请求的后端。如果未指定规则,则必须指定 DefaultBackend。如果未设置 DefaultBackend,则与任何规则不匹配的请求的处理将取决于 Ingress 控制器 |
spec.defaultBackend.service | 服务引用服务作为后端.与resource互斥.更多信息参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressservicebackend-v1-networking-k8s-io |
spec.defaultBackend.service.name | 名称是引用的服务。该服务必须与 Ingress 对象存在于相同的命名空间中 |
spec.defaultBackend.port | 引用服务的端口。IngressServiceBackend 需要端口名称或端口号。更多信息参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#servicebackendport-v1-networking-k8s-io |
spec.defaultBackend.port.number | number 是服务上的数字端口号 |
spec.ingressClassName | IngressClassName 是 IngressClass 集群资源的名称。关联的 IngressClass 定义了哪个控制器将实现资源。这取代了已弃用的 kubernetes.io/ingress.class 注释。为了向后兼容,当设置该注释时,它必须优先于该字段。如果字段和注释具有不同的值,控制器可能会发出警告。此 API 的实现应忽略未指定类的 Ingress。一个 IngressClass 资源可以被标记为默认值,它可以用来为这个字段设置一个默认值 |
spec.rules | 用于配置 Ingress 的主机规则列表。如果未指定或没有规则匹配,则所有流量都将发送到默认后端.更新多心参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressrule-v1-networking-k8s-io |
spec.rules.host | Host 是 RFC 3986 定义的网络主机的完全限定域名 |
spec.rules.http | 指向后端的 http 选择器列表.更多信息参加https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#httpingressrulevalue-v1-networking-k8s-io |
spec.rules.http.paths | 将请求映射到后端的路径集合.更多信息参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#httpingresspath-v1-networking-k8s-io |
spec.rules.http.paths.backend | 后端定义了流量将转发到的引用服务端点的配置.更多信息参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressbackend-v1-networking-k8s-io |
spec.rules.http.paths.backend.resource | Resource 是 Ingress 对象命名空间中另一个 Kubernetes 资源的 ObjectRef。如果指定了资源,则不得指定 service.Name 和 service.Port。更多信息参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#typedlocalobjectreference-v1-core |
spec.rules.http.paths.backend.service | 服务引用服务作为后端.更多信息参加https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingressservicebackend-v1-networking-k8s-io |
spec.rules.http.paths.path | 路径与传入请求的路径相匹配。目前,它可以包含 RFC 3986 定义的 URL 的常规“路径”部分不允许的字符。路径必须以“/”开头,并且在使用值为“Exact”或“Prefix”的 PathType 时必须存在 |
spec.rules.http.paths.pathType | PathType 决定了 Path 匹配的解释。PathType 可以是以下值之一: * Exact:精确匹配 URL 路径。* 前缀:基于由“/”分割的 URL 路径前缀匹配。匹配是在逐个元素的路径上完成的。路径元素指的是由“/”分隔符分隔的路径中的标签列表。如果每个 p 都是请求路径的 p 的逐元素前缀,则请求是路径 p 的匹配项。请注意,如果路径的最后一个元素是请求路径中最后一个元素的子字符串,则它不是匹配项(例如 /foo/bar 匹配 /foo/bar/baz,但不匹配 /foo/barbaz)。* ImplementationSpecific:Path 匹配的解释由 IngressClass 决定。实现可以将此视为单独的 PathType 或将其视为与 Prefix 或 Exact 路径类型相同。 |
spec.tls | TLS 配置。目前 Ingress 只支持一个 TLS 端口,443。如果这个列表的多个成员指定了不同的主机,它们将根据通过 SNI TLS 扩展指定的主机名复用在同一端口上,如果实现 Ingress 的 Ingress 控制器支持 SNI .更多信息参见https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#ingresstls-v1-networking-k8s-io |
spec.tls.hosts | 主机是包含在 TLS 证书中的主机列表。此列表中的值必须与 tlsSecret 中使用的名称匹配。如果未指定,则默认为实现此 Ingress 的负载均衡器控制器的通配符主机设置。 |
spec.tls.secretName | SecretName 是用于终止端口 443 上的 TLS 流量的密钥的名称。该字段是可选的,以允许仅基于 SNI 主机名的 TLS 路由。如果侦听器中的 SNI 主机与 IngressRule 使用的“Host”头字段冲突,则 SNI 主机用于终止,主机头的值用于路由。 |