tencent cloud

容器服务

动态与公告
产品动态
公告
产品发布记录
产品简介
产品概述
产品优势
产品架构
应用场景
产品功能
基本概念
原生 Kubernetes 名词对照
容器服务高危操作
地域和可用区
开源组件
购买指南
购买指引
购买 TKE 标准集群
购买原生节点
购买超级节点
快速入门
新手指引
快速创建一个标准集群
入门示例
容器应用部署 Check List
集群配置
标准集群概述
集群管理
网络管理
存储管理
节点管理
GPU 资源管理
远程终端
应用配置
工作负载管理
服务和配置管理
组件和应用管理
弹性伸缩
容器登录方式
可观测配置
运维可观测性
成本洞察和优化
调度配置
调度组件概述
资源利用率优化调度
业务优先级保障调度
Qos 感知调度
安全和稳定性
容器服务安全组设置
身份验证和授权
应用安全
多集群管理
计划升级
备份中心
云原生服务指南
云原生 etcd
Prometheus 监控服务
TKE Serverless 集群指南
TKE 注册集群指南
实践教程
集群
Serverless 集群
调度
安全
服务部署
网络
发布
日志
监控
运维
Terraform
DevOps
弹性伸缩
容器化
微服务
成本管理
混合云
AI
故障处理
节点磁盘爆满排障处理
节点高负载排障处理
节点内存碎片化排障处理
集群 DNS 解析异常排障处理
集群 Kube-Proxy 异常排障处理
集群 API Server 网络无法访问排障处理
Service&Ingress 网络无法访问排障处理
Service&Ingress 常见报错和处理
Nginx Ingress 偶现 Connection Refused
CLB Ingress 创建报错排障处理
Pod 网络无法访问排查处理
Pod 状态异常与处理措施
授权腾讯云售后运维排障
CLB 回环问题
API 文档
History
Introduction
API Category
Making API Requests
Elastic Cluster APIs
Resource Reserved Coupon APIs
Cluster APIs
Third-party Node APIs
Relevant APIs for Addon
Network APIs
Node APIs
Node Pool APIs
TKE Edge Cluster APIs
Cloud Native Monitoring APIs
Scaling group APIs
Super Node APIs
Other APIs
Data Types
Error Codes
TKE API 2022-05-01
常见问题
TKE 标准集群
TKE Serverless 集群
运维类
隐患处理
服务类
镜像仓库类
远程终端类
事件类
资源管理类
服务协议
TKE Service Level Agreement
TKE Serverless Service Level Agreement
联系我们
词汇表

Ingress 基本功能

PDF
聚焦模式
字号
最后更新时间: 2024-12-23 11:30:47

简介

Ingress 是允许访问到集群内 Service 的规则的集合,您可以通过配置转发规则,实现不同 URL 可以访问到集群内不同的 Service。 为了使 Ingress 资源正常工作,集群必须运行 Ingress-controller。TKE 服务在集群内默认启用了基于腾讯云负载均衡器实现的 l7-lb-controller,支持 HTTP、HTTPS,同时也支持在集群内自建其他 Ingress 控制器,您可以根据您的业务需要选择不同的 Ingress 类型。

注意事项

腾讯云负载均衡(Cloud Load Balancer)实例已于2023年03月06日升级了架构,升级后公网负载均衡以域名的方式提供服务。VIP 随业务请求动态变化,控制台不再展示 VIP 地址。请参见 域名化公网负载均衡上线公告
新注册的腾讯云用户默认使用升级后的域名化负载均衡。
存量用户可以选择继续使用原有的负载均衡,不受升级影响。如果您需要升级负载均衡服务,则需要同时升级腾讯云产品 CLB 以及 TKE,否则 TKE 中的所有公网类型的 Service/Ingress 同步将可能受到影响。CLB 升级操作详情请参见域名化负载均衡升级指南;TKE 升级 Service/Ingress 组件版本,请通过提交工单 联系我们。
Ingress apiVersion 支持情况:extensions/v1beta1 和 networking.k8s.io/v1beta1 API 版本的 Ingress 不在 v1.22 版本中继续提供。networking.k8s.io/v1 API 从 v1.19(TKE 场景只支持偶数版本,因此是从 TKE 的 v1.20) 版本开始可用,更多信息请参见 Kubernetes 文档
确保您的容器业务不和 CVM 业务共用一个 CLB。
不支持您在 CLB 控制台操作 TKE 管理的 CLB 的监听器、转发路径、证书和后端绑定的服务器,您的更改会被 TKE 自动覆盖。
使用已有的 CLB 时:
只能使用通过 CLB 控制台创建的负载均衡器,不支持复用由 TKE 自动创建的 CLB。
不支持多个 Ingress 复用 CLB。
不支持 Ingress 和 Service 共用 CLB。
删除 Ingress 后,复用 CLB 绑定的后端云服务器需要自行解绑,同时会保留一个 tag tke-clusterId: cls-xxxx,需自行清理。
默认 CLB 的转发规则的限制是50个,如果您 Ingress 的转发规则超过50时,可通过 提交工单 提升负载均衡 CLB 的配额。
Ingress 和 CLB 之间配置的管理和同步是由以 CLB ID 为名字的 LoadBalancerResource 类型的资源对象,请勿对该 CRD 进行任何操作,否则容易导致 Ingress 失效。

Ingress 控制台操作指引

创建 Ingress

2. 在左侧导航栏中,单击集群进入集群管理页面。
3. 单击需要创建 Ingress 的集群 ID,进入待创建 Ingress 的集群管理页面。
4. 选择服务 > Ingress,进入 Ingress 信息页面。
5. 单击新建,进入新建 Ingress 页面。如下图所示:

6. 根据实际需求,设置 Ingress 参数。关键参数信息如下:
Ingress 名称:自定义。
网络类型:默认为 “公网”,请根据实际需求进行选择。
IP 版本:提供 IPv4 和 IPv6 NAT64 两种版本,请根据实际需求进行选择。
负载均衡器:可自动创建或使用已有 CLB。
命名空间:根据实际需求进行选择。
转发配置:协议默认为 Http,请根据实际情况进行选择。 如果协议选择 Https 则需绑定服务器证书,以保证访问安全。如下图所示:

详情请参见 SSL 证书格式要求及格式转换说明
转发配置:根据实际需求进行设置。
7. 单击创建Ingress,完成创建。

更新 Ingress

更新 YAML

2. 在左侧导航栏中,单击集群,进入集群管理页面。
3. 单击需要更新 YAML 的集群 ID,进入待更新 YAML 的集群管理页面。
4. 选择服务 > Ingress,进入 Ingress 信息页面。如下图所示:

5. 在需要更新 YAML 的 Ingress 行中,单击编辑YAML,进入更新 Ingress 页面。
6. 在更新 Ingress 页面,编辑 YAML,单击完成,即可更新 YAML。

更新转发规则

1. 集群管理页面,单击需要更新 YAML 的集群 ID,进入待更新 YAML 的集群管理页面。
2. 选择服务 > Ingress,进入 Ingress 信息页面。如下图所示:

3. 在需要更新转发规则的 Ingress 行中,单击更新转发配置,进入更新转发配置页面。如下图所示:

4. 根据实际需求,修改转发配置,单击更新转发配置,即可完成更新。

Kubectl 操作 Ingress 指引

YAML 示例

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: qcloud ## 可选值:qcloud(CLB类型ingress), nginx(nginx-ingress),traefik
## kubernetes.io/ingress.existLbId: lb-xxxxxxxx ##指定使用已有负载均衡器创建公网/内网访问的Ingress
## kubernetes.io/ingress.subnetId: subnet-xxxxxxxx ##若是创建CLB类型内网ingress需指定该条annotation
name: my-ingress
namespace: default
spec:
rules:
- host: localhost
http:
paths:
- backend:
serviceName: non-service
servicePort: 65535
path: /
kind:标识 Ingress 资源类型。
metadata:Ingress 的名称、Label 等基本信息。
metadata.annotations:Ingress 的额外说明,可通过该参数设置腾讯云 TKE 的额外增强能力。
spec.rules:Ingress 的转发规则,配置该规则可实现简单路由服务、基于域名的简单扇出路由、简单路由默认域名、配置安全的路由服务等。

annotations: 使用已有负载均衡器创建公网/内网访问的 Ingress

如果您已有的应用型 CLB 为空闲状态,需要提供给 TKE 创建的 Ingress 使用,或期望在集群内使用相同的 CLB ,您可以通过以下 annotations 进行设置:
说明
请了解 注意事项 后开始使用。
metadata:
annotations:
kubernetes.io/ingress.existLbId: lb-6swtxxxx

annotations: 创建 CLB 类型内网 Ingress

如果您需要使用内网负载均衡,可以通过以下 annotations 进行设置:
metadata:
annotations:
kubernetes.io/ingress.subnetId: subnet-xxxxxxxx

说明事项

如果您使用的是 IP 带宽包账号,在创建公网访问方式的服务时需要指定以下两个 annotations 项:
kubernetes.io/ingress.internetChargeType 公网带宽计费方式,可选值有:
TRAFFIC_POSTPAID_BY_HOUR(按使用流量计费)
BANDWIDTH_POSTPAID_BY_HOUR(按带宽计费)
kubernetes.io/ingress.internetMaxBandwidthOut 带宽上限,范围:[ 1,2000] Mbps。 例如:
metadata:
annotations:
kubernetes.io/ingress.internetChargeType: TRAFFIC_POSTPAID_BY_HOUR
kubernetes.io/ingress.internetMaxBandwidthOut: "10"
关于 IP 带宽包的更多详细信息,欢迎查看文档 共享带宽包产品类别

创建 Ingress

1. 参考 YAML 示例,准备 Ingress YAML 文件。
2. 安装 Kubectl,并连接集群。操作详情请参考 通过 Kubectl 连接集群
3. 执行以下命令,创建 Ingress YAML 文件。
kubectl create -f Ingress YAML 文件名称
例如,创建一个文件名为 my-ingress.yaml 的 Ingress YAML 文件,则执行以下命令:
kubectl create -f my-ingress.yaml
4. 执行以下命令,验证创建是否成功。
kubectl get ingress
返回类似以下信息,即表示创建成功。
NAME HOSTS ADDRESS PORTS AGE
clb-ingress localhost 80 21s

更新 Ingress

方法一

执行以下命令,更新 Ingress。
kubectl edit ingress/[name]

方法二

1. 手动删除旧的 Ingress。
2. 执行以下命令,重新创建 Ingress。
kubectl create/apply


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈