Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Traefik-v2.x快速入门

Traefik-v2.x快速入门

作者头像
py3study
发布于 2020-04-16 10:38:28
发布于 2020-04-16 10:38:28
4.1K10
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

一、概述

traefik 与 nginx 一样,是一款优秀的反向代理工具,或者叫 Edge Router。至于使用它的原因则基于以下几点

  • 无须重启即可更新配置
  • 自动的服务发现与负载均衡
  • 与 docker 的完美集成,基于 container label 的配置
  • 漂亮的 dashboard 界面
  • metrics 的支持,对 prometheus 和 k8s 的集成

接下来讲一下它的安装,基本功能以及配置。traefik 在 v1 与 v2 版本间差异过大,本篇文章采用了 v2

traefik官方文档:https://docs.traefik.io/

注意:Traefikv2.0之后的版本在修改了很多bug之后也增加了新的特性,比如增加了TCP的支持,并且更换了新的WEB UI界面

二、快速开始

环境介绍

操作系统:centos7.6

数量:1台

docker版本:19.03.6

docker版本:1.24.1

ip地址:192.168.28.218

docker-compose启动

新建yaml文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi traefik-v2.1.yaml

内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
  reverse-proxy:
    image: traefik:2.1.6
    # Enables the web UI and tells Traefik to listen to docker
    # 启用webUI 并告诉Traefile去监听docker的容器实例
    command: --api.insecure=true --providers.docker
    ports:
      # traefik暴露的http端口
      - "80:80"
      # webUI暴露的端口(必须制定--api.insecure=true才可以访问)
      - "8080:8080"
    volumes:
      # 指定docker的sock文件来让traefik获取docker的事件,从而实现动态负载均衡
      - /var/run/docker.sock:/var/run/docker.sock

使用docker-compose创建集群

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker-compose -f traefik-v2.1.yaml up -d reverse-proxy
Creating network "opt_default" with the default driver
Creating opt_reverse-proxy_1 ... done

查看使用docker-compose启动的应用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker-compose -f traefik-v2.1.yaml ps
       Name                      Command               State                     Ports                   
---------------------------------------------------------------------------------------------------------opt_reverse-proxy_1   /entrypoint.sh --api.insec ...   Up      0.0.0.0:80->80/tcp, 0.0.0.0:8080->8080/tcp

直接访问traefik对外暴露的http接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -s  "http://localhost:8080/api/rawdata" | python -m json.tool

输出如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "middlewares": {
        "dashboard_redirect@internal": {
            "redirectRegex": {
                "permanent": true,
                "regex": "^(http:\\/\\/[^:\\/]+(:\\d+)?)\\/$",
                "replacement": "${1}/dashboard/"
            },
            "status": "enabled",
            "usedBy": [
                "dashboard@internal"
            ]
        },
        "dashboard_stripprefix@internal": {
            "status": "enabled",
            "stripPrefix": {
                "prefixes": [
                    "/dashboard/",
                    "/dashboard"
                ]
            },
            "usedBy": [
                "dashboard@internal"
            ]
        }
    },
    "routers": {
        "api@internal": {
            "entryPoints": [
                "traefik"
            ],
            "priority": 2147483646,
            "rule": "PathPrefix(`/api`)",
            "service": "api@internal",
            "status": "enabled",
            "using": [
                "traefik"
            ]
        },
        "dashboard@internal": {
            "entryPoints": [
                "traefik"
            ],
            "middlewares": [
                "dashboard_redirect@internal",
                "dashboard_stripprefix@internal"
            ],
            "priority": 2147483645,
            "rule": "PathPrefix(`/`)",
            "service": "dashboard@internal",
            "status": "enabled",
            "using": [
                "traefik"
            ]
        },
        "reverse-proxy-opt@docker": {
            "rule": "Host(`reverse-proxy-opt`)",
            "service": "reverse-proxy-opt",
            "status": "enabled",
            "using": [
                "http",
                "traefik"
            ]
        }
    },
    "services": {
        "api@internal": {
            "status": "enabled",
            "usedBy": [
                "api@internal"
            ]
        },
        "dashboard@internal": {
            "status": "enabled",
            "usedBy": [
                "dashboard@internal"
            ]
        },
        "reverse-proxy-opt@docker": {
            "loadBalancer": {
                "passHostHeader": true,
                "servers": [
                    {
                        "url": "http://172.18.0.2:80"
                    }
                ]
            },
            "serverStatus": {
                "http://172.18.0.2:80": "UP"
            },
            "status": "enabled",
            "usedBy": [
                "reverse-proxy-opt@docker"
            ]
        }
    }
}

查看Traefik官方Dashboard

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://192.168.28.218:8080/

效果如下:

三、创建一个路由

Traefik来检测新服务并为你创建一个路由

创建一个新服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi test-service.yaml

内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
  whoami:
    image: containous/whoami
    labels:
      - "traefik.http.routers.whoami.rule=Host(`whoami.docker.localhost`)"

创建服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker-compose -f test-service.yaml up -d whoami
WARNING: Found orphan containers (opt_reverse-proxy_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Creating opt_whoami_1 ... done

查看新创建的服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker-compose  -f test-service.yaml ps
    Name       Command   State   Ports 
---------------------------------------opt_whoami_1   /whoami   Up      80/tcp

再次查看traefik中的路由信息(就会发现服务自动加载进去了) 其实有点儿类似kong 的路由,只是traefik会自动监听docker的事件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
curl -s  "http://localhost:8080/api/rawdata" | python -m json.tool

输出如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "middlewares": {
        "dashboard_redirect@internal": {
            "redirectRegex": {
                "permanent": true,
                "regex": "^(http:\\/\\/[^:\\/]+(:\\d+)?)\\/$",
                "replacement": "${1}/dashboard/"
            },
            "status": "enabled",
            "usedBy": [
                "dashboard@internal"
            ]
        },
        "dashboard_stripprefix@internal": {
            "status": "enabled",
            "stripPrefix": {
                "prefixes": [
                    "/dashboard/",
                    "/dashboard"
                ]
            },
            "usedBy": [
                "dashboard@internal"
            ]
        }
    },
    "routers": {
        "api@internal": {
            "entryPoints": [
                "traefik"
            ],
            "priority": 2147483646,
            "rule": "PathPrefix(`/api`)",
            "service": "api@internal",
            "status": "enabled",
            "using": [
                "traefik"
            ]
        },
        "dashboard@internal": {
            "entryPoints": [
                "traefik"
            ],
            "middlewares": [
                "dashboard_redirect@internal",
                "dashboard_stripprefix@internal"
            ],
            "priority": 2147483645,
            "rule": "PathPrefix(`/`)",
            "service": "dashboard@internal",
            "status": "enabled",
            "using": [
                "traefik"
            ]
        },
        "reverse-proxy-opt@docker": {
            "rule": "Host(`reverse-proxy-opt`)",
            "service": "reverse-proxy-opt",
            "status": "enabled",
            "using": [
                "http",
                "traefik"
            ]
        },
        "whoami@docker": {
            "rule": "Host(`whoami.docker.localhost`)",
            "service": "whoami-opt",
            "status": "enabled",
            "using": [
                "http",
                "traefik"
            ]
        }
    },
    "services": {
        "api@internal": {
            "status": "enabled",
            "usedBy": [
                "api@internal"
            ]
        },
        "dashboard@internal": {
            "status": "enabled",
            "usedBy": [
                "dashboard@internal"
            ]
        },
        "reverse-proxy-opt@docker": {
            "loadBalancer": {
                "passHostHeader": true,
                "servers": [
                    {
                        "url": "http://172.19.0.2:80"
                    }
                ]
            },
            "serverStatus": {
                "http://172.19.0.2:80": "UP"
            },
            "status": "enabled",
            "usedBy": [
                "reverse-proxy-opt@docker"
            ]
        },
        "whoami-opt@docker": {
            "loadBalancer": {
                "passHostHeader": true,
                "servers": [
                    {
                        "url": "http://172.19.0.3:80"
                    }
                ]
            },
            "serverStatus": {
                "http://172.19.0.3:80": "UP"
            },
            "status": "enabled",
            "usedBy": [
                "whoami@docker"
            ]
        }
    }
}

查看http反向代理记录

查看Traefik中的http反向代理记录,点击HTTP

测试traefik相关功能

 测试访问

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# curl -H Host:whoami.docker.localhost  
Hostname: c334de4bc3c8
IP: 127.0.0.1IP: 172.19.0.3RemoteAddr: 172.19.0.2:57632GET / HTTP/1.1Host: whoami.docker.localhost
User-Agent: curl/7.29.0Accept: */*Accept-Encoding: gzip
X-Forwarded-For: 172.19.0.1
X-Forwarded-Host: whoami.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 1ee8d25b3aac
X-Real-Ip: 172.19.0.1

单机扩容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# docker-compose -f test-service.yaml up -d --scale whoami=2
WARNING: Found orphan containers (opt_reverse-proxy_1) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
Starting opt_whoami_1 ... doneCreating opt_whoami_2 ... done

再次访问(就会发现自动负载到两个不同的实例上去了)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# curl -H Host:whoami.docker.localhost  
Hostname: c334de4bc3c8
IP: 127.0.0.1IP: 172.19.0.3RemoteAddr: 172.19.0.2:57632GET / HTTP/1.1Host: whoami.docker.localhost
User-Agent: curl/7.29.0Accept: */*Accept-Encoding: gzip
X-Forwarded-For: 172.19.0.1
X-Forwarded-Host: whoami.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 1ee8d25b3aac
X-Real-Ip: 172.19.0.1

查看Traefike后端每个service的详情信息:

 就会看到2个service

四、Traefik配置介绍

traefik配置结构图

在traefik中的配置,会涉及到两方面内容:

  • 动态的路由配置(即由k8s-api或docker相关api来自动发现服务的endpoint而进行路由的配置描述)
  • 静态的启动配置(即traefik标准的启动配置参数)

注意:使用docker run traefik[:version] --help可查看traefik的配置参数

五、k8s部署Traefik

环境介绍

操作系统

ip

主机名

配置

备注

centos 7.6

192.168.31.150

k8s-master

2核4G

Kubernetes1.16.3

centos 7.6

192.168.31.178

k8s-node01

2核8G

Kubernetes1.16.3

yaml文件介绍

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir /opt/traefik

目录结构如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./
├── traefik-config.yaml
├── traefik-ds-v2.1.6.yaml
├── traefik-rbac.yaml
└── ui.yaml

traefik-config.yaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apiVersion: v1
kind: ConfigMap
metadata:
  name: traefik-config
  namespace: kube-system
data:
  traefik.toml: |
    defaultEntryPoints = ["http","https"]
    debug = false
    logLevel = "INFO"
    # Do not verify backend certificates (use https backends)
    InsecureSkipVerify = true
    [entryPoints]
      [entryPoints.http]
      address = ":80"
      compress = true
      [entryPoints.https]
      address = ":443"
        [entryPoints.https.tls]
    #Config to redirect http to https
    #[entryPoints]
    #  [entryPoints.http]
    #  address = ":80"
    #  compress = true
    #    [entryPoints.http.redirect]
    #    entryPoint = "https"
    #  [entryPoints.https]
    #  address = ":443"
    #    [entryPoints.https.tls]
    [web]
      address = ":8080"
    [kubernetes]
    [metrics]
      [metrics.prometheus]
      buckets=[0.1,0.3,1.2,5.0]
      entryPoint = "traefik"
    [ping]
    entryPoint = "http"

traefik-ds-v2.1.6.yaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: traefik-ingress-controller
  namespace: kube-system
---
kind: DaemonSet
apiVersion: apps/v1
#apiVersion: extensions/v1beta1
metadata:
  name: traefik-ingress-controller-v2
  namespace: kube-system
  labels:
    k8s-app: traefik-ingress-lb
spec:
  selector:
    matchLabels:
      name: traefik-ingress-lb-v2
  template:
    metadata:
      labels:
        k8s-app: traefik-ingress-lb
        name: traefik-ingress-lb-v2
    spec:
      serviceAccountName: traefik-ingress-controller
      terminationGracePeriodSeconds: 60
      containers:
      - image: traefik:2.1.6
        name: traefik-ingress-lb-v2
        ports:
        - name: http
          containerPort: 80
          hostPort: 80
        - name: admin
          containerPort: 8080
          hostPort: 8080
        securityContext:
          capabilities:
            drop:
            - ALL
            add:
            - NET_BIND_SERVICE
        args:
        - --api
        - --api.insecure=true
        - --providers.kubernetesingress=true
        - --log.level=INFO
        #- --configfile=/config/traefik.toml
        #volumeMounts:
        #- mountPath: /config
        #  name: config
      volumes:
      - configMap:
          name: traefik-config
        name: config
---
kind: Service
apiVersion: v1
metadata:
  name: traefik-ingress-service-v2
  namespace: kube-system
  labels:
    k8s-app: traefik-ingress-lb-v2
spec:
  selector:
    k8s-app: traefik-ingress-lb-v2
  ports:
    - protocol: TCP
      port: 80
      name: web
    - protocol: TCP
      port: 8080
      name: admin

traefik-rbac.yaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: traefik-ingress-controller
rules:
  - apiGroups:
      - ""
    resources:
      - services
      - endpoints
      - secrets
    verbs:
      - get
      - list
      - watch
  - apiGroups:
      - extensions
    resources:
      - ingresses
    verbs:
      - get
      - list
      - watch
  - apiGroups:
    - extensions
    resources:
    - ingresses/status
    verbs:
    - update
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: traefik-ingress-controller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: traefik-ingress-controller
subjects:
- kind: ServiceAccount
  name: traefik-ingress-controller
  namespace: kube-system

ui.yaml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
---
apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: kube-system
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  - name: web
    port: 80
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: kube-system
spec:
  rules:
  - host: prod-traefik-ui.bgbiao.cn
    http:
      paths:
      - path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: web

部署

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /opt/traefik
kubectl apply -f .

查看pod

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get pods -n kube-system | grep traefik
traefik-ingress-controller-v2-hz82b        1/1     Running   0          8m4s

 查看svc

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get svc -n kube-system | grep traefik
traefik-ingress-service-v2   ClusterIP   10.1.188.71    <none>        80/TCP,8080/TCP          8m56s
traefik-web-ui               ClusterIP   10.1.239.107   <none>        80/TCP                   46m

查看ingresses

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# kubectl get ingresses.extensions -n kube-system
NAME             HOSTS                       ADDRESS   PORTS   AGE
traefik-web-ui   prod-traefik-ui.bgbiao.cn             80      48m

查看traefik的dashboard

域名访问

由于没有dns服务器,这里直接修改hosts来测试。windows 10添加一条hosts记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
192.168.31.178 prod-traefik-ui.bgbiao.cn

注意:这里的192.168.31.178是node节点ip

效果如下:

ip方式

直接通过node ip+8080方式,比如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://192.168.31.178:8080

效果同上!

点击http

 查看 http service

 效果如下:

注意:虽然traefikv2.x改动了很多,但是还是向下兼容一些内容的,比如我重新创建traefik-v2.0.1之后,之前创建的ingress规则会自动导入

本文参考链接:

https://www.jianshu.com/p/0fc6df85d00d

https://zhuanlan.zhihu.com/p/97420459

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
K8s部署不需要挂载configMap是吧
K8s部署不需要挂载configMap是吧
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Traefik-v2.x快速入门 顶
注意:Traefikv2.0之后的版本在修改了很多bug之后也增加了新的特性,比如增加了TCP的支持,并且更换了新的WEB UI界面
BGBiao
2019/09/29
1.1K0
Traefik-v2.x快速入门
                                                                            顶
你所不了解的 Traefik
在之前的文章中,我们简单介绍了关于 Traefik 的相关概念及组件原理机制,具体可参考:为什么选择 Traefik Ingress ?
Luga Lee
2021/11/18
1.1K1
你所不了解的 Traefik
深入玩转K8S之如何访问业务应用(Traefik-ingress配置https篇)
上篇我们简单介绍了下traefik以及如何http访问, 但是在实际生产环境中不仅仅只是http的转发访问,还有https的转发访问,
DevinGeng
2019/04/09
1.3K0
深入玩转K8S之如何访问业务应用(Traefik-ingress配置https篇)
traefik Ingress https配置
简单的说,ingress就是从kubernetes集群外访问集群的入口,将用户的URL请求转发到不同的service上。Ingress相当于nginx、apache等负载均衡方向代理服务器,其中还包括规则定义,即URL的路由信息,路由信息得的刷新由Ingress controller来提供。
py3study
2020/05/28
3.1K0
Kubernetes部署升级Traefik2.6
Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘路由器。它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理。 除了众多的功能之外,Traefik 的与众不同之处还在于它会自动发现适合你服务的配置。当 Traefik 在检查你的服务时,会找到服务的相关信息并找到合适的服务来满足对应的请求。 Traefik 兼容所有主流的集群技术,比如 Kubernetes,Docker,Docker Swarm,AWS,Mesos,Marathon,等等;并且可以同时处理多种方式。(甚至可以用于在裸机上运行的比较旧的软件。) 有了Traefik,就不需要维护和同步一个单独的配置文件:一切都会自动、实时地发生(没有重新启动,没有连接中断)。使用Traefik,您可以花时间在系统中开发和部署新特性,而不是配置和维护其工作状态。
王先森sec
2023/04/24
7460
Kubernetes部署升级Traefik2.6
traefik系列之一 | 简介、部署和配置
基于 centos7.9,docker-ce-20.10.18,kubelet-1.22.3-0, traefik-2.9.10
Amadeus
2023/04/27
4.4K0
traefik系列之一 | 简介、部署和配置
深入玩转K8S之如何访问业务应用(Traefik-ingress篇)
上篇懒得写了索性转载了一篇nginx-ingress的,本篇我们来看神器Traefik,我个人是比较看好和偏向与Traefik的,它轻便易用而且还有界面。
DevinGeng
2019/04/09
1.2K0
深入玩转K8S之如何访问业务应用(Traefik-ingress篇)
「走进k8s」Kubernetes1.15.1的Ingress TLS 与 Traefik路径转发(36)
PS:上面就是traefik 和 path的使用方法,通过配置ingress 填写对应的规则就可以了,不是很复杂。也描述了traefik 关于https证书的使用。
IT架构圈
2019/09/12
1.3K0
「走进k8s」Kubernetes1.15.1的Ingress TLS 与 Traefik路径转发(36)
附021.Traefik-ingress部署及使用
[root@master01 ingress]# helm repo add traefik https://containous.github.io/traefik-helm-chart
木二
2020/06/04
1.3K0
Kubernetes生态Ingress组件Traefik v2.0浅析
上一篇文章简单介绍了下Kubernetes生态的几个组件,这篇文章重点讲解下其中的Traefik组件,Traefik组件类似与Nginx,可以为整个集群做服务暴露、域名控制等等的作用,目前Traefik主要分为两个版本,v1.x与v2.x,这两个版本之间差距较大,让人感觉在使用不同的软件。本篇文章是以v2.x版本为基础来演示的,相关脚本代码都在Github仓库https://github.com/lateautumn4lin/KubernetesResearch里面,大家使用的时候可以切换目录到ClusterEcology/initTraefik下面。
云爬虫技术研究笔记
2020/02/19
8690
能更好集成容器的反向代理工具Traefik的简单使用
Traefik 与 Nginx 一样,也是一款优秀的反向代理工具,使用 go 语言开发,本文将介绍怎样用 Traefik 来实现多服务转发的需求。
oec2003
2024/04/03
6970
能更好集成容器的反向代理工具Traefik的简单使用
# 一篇文章让你搞懂如何在K8s 里使用 Traefik 2.0作为Ingress Controller(上)
了解K8s的同学应该都知道,如果想要把应用暴露到公网上供外部访问,那么不可避免的会接触到Ingress资源。本文以Traefik为例,让大家对Ingress和Traefik的使用有一定的了解。
100000798482
2020/02/13
1.2K0
# 一篇文章让你搞懂如何在K8s 里使用 Traefik 2.0作为Ingress Controller(上)
初试 Kubernetes 集群中使用 Traefik 反向代理
哎_小羊
2018/01/02
5.8K0
初试 Kubernetes 集群中使用 Traefik 反向代理
Kubernetes的Ingress控制器比较(Traefik)
Traefik支持动态配置和静态配置,因此在实践的过程中,我们将Traefik运行的端口配置在静态配置文件中,Traefik因为功能的丰富性得到很多的人的青睐,尤其是它的弹性功能,从大量的技术博客上观察来看,现在很多人在使用并且很稳定,对于ingress-nginx来说,能动态配置的Traefik显然略胜一筹,这是一个非常大且好的升级。更多的功能点可以在官方文档(https://docs.traefik.io/)详细查阅:
公众号: 云原生生态圈
2021/11/15
2K0
Kubernetes的Ingress控制器比较(Traefik)
Kubernetes (K8S)中Traefik路由(ingressRoute)
kubernetes 中使用 Traefik ingress 的 ingressRoute 代理 http、https、tcp、udp。
王先森sec
2023/10/17
3.1K0
Kubernetes (K8S)中Traefik路由(ingressRoute)
trarfik-个人云主机撸一撸(一)
Traefik 是一个开源的Edge Router,它使发布你的服务成为一种有趣和简单的体验。它代表你的系统接收请求,并找出负责处理这些请求的组件。
rxg456
2022/05/07
8330
Traefik2.3.x 使用大全(更新版)
Traefik 是一个开源的可以使服务发布变得轻松有趣的边缘路由器。它负责接收你系统的请求,然后使用合适的组件来对这些请求进行处理。
我是阳明
2021/01/04
5.4K0
Traefik2.3.x 使用大全(更新版)
跟我一步步二进制部署高可用kubernetes集群(下)
在kube-public 空间里创建一个名字为nginx-dp 的 deployment ,,使用nginx 镜像
用户6641876
2020/03/20
1.8K0
Traefik1.7.17的部署使用
因为我这里是作为kubernetes服务的暴露,因此你得有一个kubernetes集群
聂伟星
2020/07/12
1.3K0
云计算运维一步步编译安装Kubernetes之插件安装
Flannel是 CoreOS 团队针对 Kubernetes 设计的一个覆盖网络(Overlay Network)工具,其目的在于帮助每一个使用 Kuberentes 的 CoreOS 主机拥有一个完整的子网。这次的分享内容将从Flannel的介绍、工作原理及安装和配置三方面来介绍这个工具的使用方法。
王先森sec
2023/04/24
5340
云计算运维一步步编译安装Kubernetes之插件安装
推荐阅读
相关推荐
Traefik-v2.x快速入门 顶
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验