k8s安装traefik作为ingress

本文介绍了Kubernetes的Ingress概念及其组成部分,包括反向代理负载均衡器、Ingress Controller和Ingress规则。重点讲述了Traefik作为Ingress的现代解决方案,具备自动服务发现能力,并探讨了Traefik在K8s上的部署策略,包括daemonset和deployment两种方式。同时,提到了如何使用Traefik进行基本的路由配置和健康检查。
摘要由CSDN通过智能技术生成

一、先来介绍下Ingress
Ingress 这个东西是 1.2 后才出现的,通过 Ingress 用户可以实现使用 nginx 等开源的反向代理负载均衡器实现对外暴露服务,以下详细说一下 Ingress,毕竟 traefik 用的就是 Ingress

使用 Ingress 时一般会有三个组件:

     反向代理负载均衡器
     Ingress Controller
     Ingress
1.1、反向代理负载均衡器

反向代理负载均衡器很简单,说白了就是 nginx、apache 什么的;在集群中反向代理负载均衡器可以自由部署,可以使用 Replication Controller、Deployment、DaemonSet 等等,不过个人喜欢以 DaemonSet 的方式部署,感觉比较方便

1.2、Ingress Controller

Ingress Controller 实质上可以理解为是个监视器,Ingress Controller 通过不断地跟 kubernetes API 打交道,实时的感知后端 service、pod 等变化,比如新增和减少 pod,service 增加与减少等;当得到这些变化信息后,Ingress Controller 再结合下文的 Ingress 生成配置,然后更新反向代理负载均衡器,并刷新其配置,达到服务发现的作用

1.3、Ingress

Ingress 简单理解就是个规则定义;比如说某个域名对应某个 service,即当某个域名的请求进来时转发给某个 service;这个规则将与 Ingress Controller 结合,然后 Ingress Controller 将其动态写入到负载均衡器配置中,从而实现整体的服务发现和负载均衡

有点懵逼,那就看图

从上图中可以很清晰的看到,实际上请求进来还是被负载均衡器拦截,比如 nginx,然后 Ingress Controller 通过跟 Ingress 交互得知某个域名对应哪个 service,再通过跟 kubernetes API 交互得知 service 地址等信息;综合以后生成配置文件实时写入负载均衡器,然后负载均衡器 reload 该规则便可实现服务发现,即动态映射

了解了以上内容以后,这也就很好的说明了我为什么喜欢把负载均衡器部署为 Daemon Set;因为无论如何请求首先是被负载均衡器拦截的,所以在每个 node 上都部署一下,同时 hostport 方式监听 80 端口;那么就解决了其他方式部署不确定 负载均衡器在哪的问题,同时访问每个 node 的 80 都能正确解析请求;如果前端再 放个 nginx 就又实现了一层负载均衡

二、Traefik 使用
由于微服务架构以及 Docker 技术和 kubernetes 编排工具最近几年才开始逐渐流行,所以一开始的反向代理服务器比如 nginx、apache 并未提供其支持,毕竟他们也不是先知;所以才会出现 Ingress Controller 这种东西来做 kubernetes 和前端负载均衡器如 nginx 之间做衔接;即 Ingress Controller 的存在就是为了能跟 kubernetes 交互,又能写 nginx 配置,还能 reload 它,这是一种折中方案;而最近开始出现的 traefik 天生就是提供了对 ku

Traefik是一个基于Kubernetes的Ingress控制器,用于在Kubernetes集群中处理入站网络流量。您可以通过在Kubernetes集群中使用Traefik来实现负载均衡、路由和HTTPS等功能。 要在Kubernetes中使用Traefik,您可以按照以下步骤进行操作: 1. 首先,您需要添加Traefik的Helm chart仓库到您的Kubernetes集群中。您可以使用以下命令将Traefik的Helm chart仓库添加到Helm中: ``` helm repo add traefik https://helm.traefik.io/traefik ``` 2. 然后,您可以使用Helm来安装Traefik。您可以使用以下命令来安装Traefik: ``` helm install traefik traefik/traefik ``` 3. 安装完成后,Traefik将会被部署到您的Kubernetes集群中。您可以使用以下命令来验证Traefik的部署状态: ``` kubectl get pods -n <namespace> ``` 4. 一旦Traefik部署成功,您可以通过创建Ingress资源来配置Traefik的行为。您可以使用以下命令创建一个简单的Ingress资源: ``` apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress spec: rules: - host: example.com http: paths: - path: / pathType: Prefix backend: service: name: example-service port: number: 80 ``` 在这个示例中,Traefik将会将来自example.com的流量路由到名为example-service的后端服务。 5. 您还可以使用Traefik提供的其他功能,如TLS证书管理和动态配置等。您可以参考Traefik官方文档以了解更多详细的配置选项和用法。 总结起来,要在Kubernetes中使用Traefik,您需要添加Traefik的Helm chart仓库,并使用Helm来安装Traefik。然后,您可以通过创建Ingress资源来配置Traefik的行为,实现负载均衡和路由等功能。记得查看官方文档以获取更多使用Traefik的详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值