Ingress 是允许访问到集群内 Service 的规则的集合,您可以通过配置转发规则,实现不同 URL 可以访问到集群内不同的 Service。
为了使 Ingress 资源正常工作,集群必须运行 Ingress-controller。TKE 服务在集群内默认启用了基于腾讯云负载均衡器实现的 l7-lb-controller
,支持 HTTP、HTTPS,同时也支持在集群内自建其他 Ingress 控制器,您可以根据您的业务需要选择不同的 Ingress 类型。
tag tke-clusterId: cls-xxxx
,需自行清理。
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: /
如果您已有的应用型 CLB 为空闲状态,需要提供给 TKE 创建的 Ingress 使用,或期望在集群内使用相同的 CLB ,您可以通过以下 annotations 进行设置:
说明:请了解 注意事项 后开始使用。
metadata:
annotations:
kubernetes.io/ingress.existLbId: lb-6swtxxxx
如果您需要使用内网负载均衡,可以通过以下 annotations 进行设置:
metadata:
annotations:
kubernetes.io/ingress.subnetId: subnet-xxxxxxxx
如果您使用的是 IP 带宽包 账号,在创建公网访问方式的服务时需要指定以下两个 annotations 项:
kubernetes.io/ingress.internetChargeType
公网带宽计费方式,可选值有:kubernetes.io/ingress.internetMaxBandwidthOut
带宽上限,范围:[1,2000] Mbps。metadata:
annotations:
kubernetes.io/ingress.internetChargeType: TRAFFIC_POSTPAID_BY_HOUR
kubernetes.io/ingress.internetMaxBandwidthOut: "10"
关于 IP 带宽包 的更多详细信息,欢迎查看文档 共享带宽包产品类别。
kubectl create -f Ingress YAML 文件名称
例如,创建一个文件名为 my-ingress.yaml 的 Ingress YAML 文件,则执行以下命令:
kubectl create -f my-ingress.yaml
kubectl get ingress
返回类似以下信息,即表示创建成功。
NAME HOSTS ADDRESS PORTS AGE
clb-ingress localhost 80 21s
执行以下命令,更新 Ingress。
kubectl edit ingress/[name]
kubectl create/apply
本页内容是否解决了您的问题?