详情页标题前

腾讯云容器服务在 TKE 上使用 Traefik Ingress同尘科技

详情页1

操作场景

Traefik 是一款优秀的反向代理工具,与 Nginx 相比,Traefik 具有以下优势:原生支持动态配置。例如,Kubernetes 的 Ingress 资源或 IngressRoute 等 CRD 资源(Nginx 每次需重新加载完整配置,部分情况下可能会影响连接)。 原生支持服务发现。使用 Ingress 或 IngressRoute 等动态配置后,会自动 watch 后端 endpoint,同步更新到负载均衡的后端列表中。 提供美观的 Dashboard 管理页面。 原生支持 Metrics,与 Prometheus 和 Kubernetes 无缝集成。 拥有更丰富的高级功能。例如,多版本的灰度发布、流量复制、自动生成 HTTPS 免费证书、中间件等。本文将介绍如何在 TKE 集群安装 Traefik 以及提供通过 Traefik 使用 Ingress 和 IngressRoute 示例。

前提条件

已创建 TKE 集群 并能够通过 Kubectl 连接集群。 已安装 Helm。

操作步骤

安装 Traefik

本文提供以下在 TKE 集群上安装 Traefik 为例,完整安装方法请参见 Traefik 官方文档。 1. 执行以下命令,添加 Traefik 的 Helm chart repo 源。示例如下:

 helm repo add traefik https://helm.traefik.io/traefik

2. 准备安装配置文件 values-traefik.yaml。示例如下:

providers:   kubernetesIngress:     publishedService:       enabled: true # 让 Ingress 的外部 IP 地址状态显示为 Traefik 的 LB IP 地址additionalArguments: - "--providers.kubernetesingress.ingressclass=traefik" # 指定 ingress class 名称 - "--log.level=DEBUG" service:   annotations:     service.cloud.tencent.com/direct-access: "true" # 网关类的应用建议使用 LB 直通 Pod (绕过 NodePort)。若使用 VPC-CNI 与 Global Router 两种网络模式混用,用此注解来显示声明 LB 直绑 Pod (绕过 NodePort); 若创建集群时就选的 VPC-CNI 网络模式,则不需要显示声明 (默认 LB 直通 Pod)。详情请参见官方文档 https://cloud.tencent.com/document/product/457/48793    service.kubernetes.io/tke-existed-lbid: lb-lb57hvgl # 用此注解绑定提前创建好的 LB,使得即便 Traefik 日后重建,也能保证流量入口不变。若不指定此注解,默认自动创建新的 LB。详情请参见官方文档 https://cloud.tencent.com/document/product/457/45491ports:   web:     expose: true    exposedPort: 80 # 对外的 HTTP 端口号,使用标准端口号在国内需备案  websecure:     expose: true    exposedPort: 443 # 对外的 HTTPS 端口号,使用标准端口号在国内需备案deployment:   enabled: true  replicas: 1  podAnnotations:     tke.cloud.tencent.com/networks: "tke-route-eni" # 在 VPC-CNI 与 Global Router 两种网络模式混用的情况下,显示声明 Pod 要使用弹性网卡,与以下 eni-ip 的 request 与 limit 一起配合使用resources:   requests:     tke.cloud.tencent.com/eni-ip: "1"  limits:     tke.cloud.tencent.com/eni-ip: "1"

说明完整的默认配置可执行 helm show values traefik/traefik 命令查看。 3. 执行以下命令将 Traefik 安装到 TKE 集群。示例如下:

kubectl create ns ingresshelm upgrade --install traefik -f values-traefik.yaml traefik/traefik

4. 执行以下命令,获取流量入口的 IP 地址(如下为 EXTERNAL-IP 字段)。示例如下:

$ kubectl get service -n ingressNAME      TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGEtraefik   LoadBalancer   172.22.252.242   49.233.239.84   80:31650/TCP,443:32288/TCP   42h

使用 Ingress

Traefik 支持使用 Kubernetes 的 Ingress 资源作为动态配置,可直接在集群中创建 Ingress 资源用于对外暴露集群,需要加上指定的 Ingress class(安装 Traefik 时定义)。示例如下:

apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata:   name: test-ingress  annotations:     kubernetes.io/ingress.class: traefik # 这里指定 ingress class 名称spec:   rules:   - host: traefik.demo.com    http:       paths:       - path: /test        backend:           serviceName: nginx          servicePort: 80

注意TKE 暂未将 Traefik 产品化,无法直接在 TKE 控制台进行可视化创建 Ingress,需要使用 YAML 进行创建。

使用 IngressRoute

Traefik 不仅支持标准的 Kubernetes Ingress 资源,也支持 Traefik 特有的 CRD 资源,例如 IngressRoute,可以支持更多 Ingress 不具备的高级功能。IngressRoute 使用示例如下:

apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:   name: test-ingressroutespec:   entryPoints:     - web  routes:     - match: Host(`traefik.demo.com`) && PathPrefix(`/test`)      kind: Rule      services:         - name: nginx          port: 80

说明Traefik 更多用法请参见 Traefik 官方文档。
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148483.html

(0)
上一篇 2023年12月9日 下午12:56
下一篇 2023年12月9日 下午12:56
详情页2

相关推荐

  • 腾讯云对象存储文档审核

    简介 内容审核功能是由 数据万象(Cloud Infinite,CI)提供的,数据万象将处理能力与 COS SDK 完全结合,您可以直接按照本篇文档指引进行使用。说明使用内容审核服务需拥有数据万象使用权限:主账号请 单击此处 进行角色授权。子账号请参见 授权子账号接入数据万象服务 文档。本文档提供关于文档审核的 API 概览和 SDK 示例代码。注意 COS…

    腾讯云 2023年12月9日
  • 咨询下Flink CDC 3.0 将mysql数据同步至doris,请问是是啥原因呢?-云小二-阿里云

    咨询下Flink CDC 3.0 将mysql数据同步至doris,未同步全量数据后就开始同步增量。 请问是是啥原因呢? 以下为热心网友提供的参考意见 楼主你好,在阿里云Flink CDC 3.0中,将MySQL数据同步至Doris(前身为Apache Doris)时,通常会先进行全量数据同步,然后再开始同步增量数据。如果在开始增量数据同步之前就开始同步增量…

    2023年12月25日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储托管静态网站

    基本概念 静态网站指包含静态内容(例如 HTML)或客户端脚本的网站,用户可以通过控制台对已绑定自定义域名的存储桶,配置静态网站。而动态网站的内容包含诸如 PHP、JSP 或 ASP.NET 等服务器端脚本,需要依赖服务器端处理。腾讯云对象存储(Cloud Object Storage,COS)支持静态网站的托管,不支持服务器端脚本编写。当您需要部署动态网站…

    2023年12月9日
  • 视觉智能平台人脸数据库不是免费的嘛?-云小二-阿里云

    人脸数据库不是免费的嘛 以下为热心网友提供的参考意见 视觉智能开放平台创建人脸数据库是免费的。只有调用人脸搜索接口才会计费。 以下为热心网友提供的参考意见 您好,视觉智能开放平台创建人脸数据库以及添加人脸样本数据、添加人脸数据的服务都是免费的。也就人脸搜索1:N能力中仅人脸搜索(SearchFace)接口收费,其他接口可免费调用另外每个阿里云账号可以创建10…

    2023年12月11日
  • 腾讯云对象存储数据监控

    COSBrowser 移动端推出数据概览功能,展示了您在使用对象存储(Cloud Object Storage,COS)近30天的数据使用情况,包含了总流量、总读写请求、存储量趋势、流量(外网下行流量、内网流量、CDN 回源流量)趋势、请求数趋势、有效请求比例趋势、低频存储数据取回量、归档存储数据取回量。说明移动端目前不支持子账号查看数据,如需登录子账号查看…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。