阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

kuberneters集群中使用traefik发布服务

411次阅读
没有评论

共计 2890 个字符,预计需要花费 8 分钟才能阅读完成。

前文已经介绍过了 k8s ingress 的实现原理和配置,本文将介绍替代方案 traefik。在开始配置之前我们先回顾一下 ingress 发布 k8s 服务的实现方案,ingress 方案需要使用下列的组件:

1、反向代理负载均衡器
2、ingress control
3、ingress
其中 ingress control 负责同 apiserver 进行通信,监测 pod 和 service 的变化,并更新反向代理负载均衡器的配置,同时让反向代理负载均衡器重载配置。

接下来我们来看看 traefik,官网地址:https://traefik.io/
Traefik (pronounced like traffic) is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker,Swarm mode,Kubernetes,Marathon, Consul,Etcd,Rancher,Amazon ECS, and a lot more) to manage its configuration automatically and dynamically.

Traefik 本质上是一个 http 的方向代理和负载均衡,可以支持 Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS 等后端服务,动态的管理这些服务的配置文件(我们可以理解为自动发现这些后端服务的配置变更,并重新加载服务的配置)

下图是 traefik 的工作原理示意图:
kuberneters 集群中使用 traefik 发布服务
Traefik 的主要特点:
1、Go 语音编写、无需安装其他依赖包、速度快
2、支持 Rest API、多后端类型支持
3、支持配置文件热加载,不需要重启 app 进程
4、支持 Round Robin, rebalancer load-balancers 等负载均衡策略
5、自带 AngularJS Web UI 图形化界面
6、支持 https、自动更新 https 证书
7、支持 websocket、HTTP/2, GRPC、高可用集群等
8、支持网络错误重试、后端自动熔断(当后端应用错误数过多的时候,可以自动熔断)

总而言之, 在 k8s 集群中服务发布的方案选择,Traefik 可用作为 ingress 的替代解决方案,traefik 的特点足够说服我们将 ingress 替换成 Traefik,下面我们开始在 k8s 1.5.2 集群环境中使用 Traefik 来发布服务。

一、通过 yaml 文件已 daemonset 方式运行 traefik

# mkdir traefik
# cd traefik
# docker pullk docker.io/traefik# cat traefik.ds.yaml 
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: traefik-ingress-lb
  namespace: default
  labels:
    k8s-app: traefik-ingress-lb
spec:
  template:
    metadata:
      labels:
        k8s-app: traefik-ingress-lb
        name: traefik-ingress-lb
    spec:
      terminationGracePeriodSeconds: 60
      hostNetwork: true
      restartPolicy: Always
      containers:
      – image: docker.io/traefik
        name: traefik-ingress-lb
        resources:
          limits:
            cpu: 200m
            memory: 30Mi
          requests:
            cpu: 100m
            memory: 20Mi
        ports:
        – name: http
          containerPort: 80
          hostPort: 80
        – name: admin
          containerPort: 8081
        args:
        – –web
        – –web.address=:8081
        – –kubernetes
        – –kubernetes.endpoint=http://192.168.115.5:8080

二、通过 yaml 文件创建 webui 的 service、ingress

# cat ui.yaml
apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: default
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
  – name: web
    port: 80
    targetPort: 8081

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  namespace: default
spec:
  rules:
  – host: traefik-ui.local
    http:
      paths:
      – path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: web

三、通过 yaml 文件创建 kubernetes-dashboard 和 frontend 的 ingress

# cat traefik.ing.yaml 
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-ingress
spec:
  rules:
  – host: k8s.webui
    http:
      paths:
      – path: /
        backend:
          serviceName: kubernetes-dashboard 
          servicePort: 80
  – host: k8s.frontend
    http:
      paths:
      – path: /
        backend:
          serviceName: frontend
          servicePort: 80

三、通过上述 yaml 配置文件创建 pod 和 ingress

# cd kubernetes/traefik/
# kubectl get pod
# kubectl get svc
# kubectl create -f .

kuberneters 集群中使用 traefik 发布服务

# kubectl get pod
# kubectl get svc
# kubectl get ingress

kuberneters 集群中使用 traefik 发布服务
四、访问应用测试
修改测试机 hosts 文件,因为 traefik 采用 demonset 的方式运行,所以 hosts 记录指向 k8s 集群中任意的节点均可
kuberneters 集群中使用 traefik 发布服务
kuberneters 集群中使用 traefik 发布服务
kuberneters 集群中使用 traefik 发布服务
可以通过访问集群内任意节点的 8081 端口查看 taefik 的图形化界面
kuberneters 集群中使用 traefik 发布服务
kuberneters 集群中使用 traefik 发布服务
后续将研究一下如何在 k8s 集群中发布 https 协议的服务。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2890字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7999291
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示

亚马逊云崩完,微软云崩!当全球第二大云“摔了一跤”:Azure 宕机背后的配置风险与警示 首先来回顾一下 10...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...