基于 K8s 安装 指定版本 treafik

前情提要

Traefik是一个开源的边缘路由器,它使发布您的服务成为一个有趣和简单的体验。它接受外部请求,通过路由找到相关组件处理请求。

Traefik 是一个云原生的新型的 HTTP 反向代理、负载均衡软件,能轻易的部署微服务. 它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) ,可以对配置进行自动化、动态的管理。

特点:

  • Golang编写,单文件部署,与系统无关,同时也提供小尺寸Docker镜像。

  • 支持Docker/Etcd后端,天然连接我们的微服务集群。

  • 内置Web UI(dashboard),管理相对方便。

  • 自动配置ACME(Let’s Encrypt)证书功能。

  • 性能尚可,我们也没有到压榨LB性能的阶段,易用性更重要。

  • Restful API支持。

  • 支持后端健康状态检查,根据状态自动配置。

  • 支持动态加载配置文件和graceful重启。

  • 支持WebSocket和HTTP/2。

镜像管理

# 镜像查询
docker search traefik

# 指定版本下载
docker pull traefik:2.5

# 镜像 tag
docker tag traefik:2.5 12589/traefik:2.5 

# 推送镜像
docker push 12589/traefik:2.5 

安装部署

# 部署资源下载
git clone -b develop https://github.com/mateclouder/mate-treafik.git

# crd 部署
kubectl apply -f deploy/traefik-crd.yaml

# 创建 rbac
kubectl create -f deploy/traefik-rbac.yaml

# 自定义配置
kubectl create -f deploy/traefik-config.yaml

# 创建服务
kubectl create -f deploy/traefik-service.yaml

配置访问

# 添加ip域名(本机 host)
xx.xx.xx.xx   dashboard.test.com

# 浏览器访问
http://dashboard.test.com/

路由总结

a 方式一: 创建 Ingress

nginx-ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress-01
  annotations:
    kubernetes.io/ingress.class: traefik-v2.5
spec:
  defaultBackend:
    service:
      name : traefik-v2
      port:
        number: 8090
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name : traefik-v2
                port:
                  number: 8090
      host: vpc123.test.com

b 方式二: IngressRoute 的方式

nginx-ingressroute.yaml

---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: dashboard-route
  namespace: kube-system
  annotations:
    kubernetes.io/ingress.class: traefik-v2.5
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`dashboard.test.com`) && PathPrefix(`/`)
      kind: Rule
      services:
        - name: traefik-v2
          port: 8090

备注声明:此方式如果需要域名进行路由,需要在公网进行域名备案,不然国内的网络好像没有办法通过域名动态转发,仅本地集群或者内网集群进行自测可以;

posted @ 2022-08-20 23:08  流雨声  阅读(318)  评论(0)    收藏  举报