基于 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
备注声明:此方式如果需要域名进行路由,需要在公网进行域名备案,不然国内的网络好像没有办法通过域名动态转发,仅本地集群或者内网集群进行自测可以;
后会无期,未来可期!

浙公网安备 33010602011771号