tencent cloud

文档反馈

最后更新时间:2022-12-13 18:23:37

    Service 提供了基于四层网络的集群内容器服务的暴露能力,Service 暴露类型(例如 ClusterIP、NodePort 或 LoadBalancer)均基于四层网络服务的访问入口,缺少基于七层网络的负载均衡、SSL 或基于名称的虚拟主机等七层网络能力。Ingress 提供七层网络下 HTTP、 HTTPS 协议服务的暴露,及七层网络下的常见能力。

    Ingress 基本概念

    Ingress 是允许访问到集群内 Service 规则的集合,您可以通过配置转发规则,实现不同 URL 可以访问到集群内不同的 Service。为了使 Ingress 资源正常工作,集群需运行 Ingress Controller,容器服务在集群内默认启用了基于腾讯云负载均衡器实现的 TKE Ingress Controller

    Ingress 生命周期管理

    Ingress 对外服务的能力依赖于负载均衡所提供的资源,因此服务资源管理也是 Ingress 的重要工作之一。Ingress 在资源的生命周期管理上会使用以下标签:

    标签描述
    tke-createdBy-flag = yes
    • 标识该资源是容器服务创建,拥有该标签的 Ingress 会在销毁时删除对应资源。
    • 如果没有该标签,Ingress 会在销毁时,仅删除负载均衡内的监听器资源,而不删除负载均衡自身。
    tke-clusterId = <clusterId>
    • 标识该资源被哪一个 Cluster 所使用。
    • Ingress 会在销毁时,删除对应标签(ClusterId 需正确)。
    tke-lb-ingress-uuid = <Ingress UUID>
    • 标识该资源被哪一个 Ingress 所使用。
    • Ingress 目前不支持复用,当用户指定 Ingress 使用已有负载均衡时,标签的值若不正确会被拒绝。
    • Ingress 会在销毁时,删除对应标签(Ingress UUID 需正确)。

    Ingress Controller 使用方法

    除了腾讯云服务提供的 TKE Ingress Controller 以外,Kubernetes 社区还有各种类型的第三方 Ingress Controller,这些 Ingress 控制器均为完成服务的七层网络暴露。Kubernetes 社区基本支持使用 kubernetes.io/ingress.class 注解用于区分各种 Ingress 控制器,以确定当前 Ingress 资源应被哪一个控制器处理。TKE Ingress Controller 也支持使用该注解,具体规则及使用建议如下:

    • 当 Ingress 资源没有描述注解 kubernetes.io/ingress.class 时,TKE Ingress Controller 会管理当前 Ingress 资源。
    • 当 Ingress 资源有注解 kubernetes.io/ingress.class 且值为 qcloud 时,TKE Ingress Controller 会管理当前 Ingress 资源。
    • 当 Ingress 资源修改注解 kubernetes.io/ingress.class 的内容时,TKE Ingress Controller 会根据注解内容将其纳入或脱离管理范围,其操作会涉及到资源的创建与释放。
    • 当您确认完全不需要使用 TKE Ingress Controller 时,可以将集群中的 Deploymentkube-system:l7-lb-controller)的工作副本数量调整为0,从而关闭 TKE Ingress Controller 功能。
      说明:

      • 关闭该功能前,请确保集群中没有被 TKE Ingress Controller 管理的 Ingress 资源,避免出现负载均衡资源释放失败的情况。
      • 若用户在负载均衡上面开启了删除保护,或者使用私有连接,则删除 Service 时,不会删除该负载均衡。

    Ingress 相关操作

    Ingress 相关操作及功能如下,您可参考以下文档进一步了解:

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持