天天看点

kubernetes 部署 Traefik2.4.13说明核心概念部署Traefik配置路由规则参考链接

关于traefik介绍,网上有很多资料可以参考,本文主要讲解<code>traefik</code>基本使用。

首先,当启动<code>traefik</code>时,需要定义<code>entrypoints(入口点)</code>,然后,根据连接到这些<code>entrypoints</code>的路由来分析传入的请求,来查看他们是否与一组规则相匹配,如果匹配,则路由可能会将请求通过一系列中间件转换过后再转发到你的服务上去。在了解<code>traefik</code>之前有几个核心概念我们必须要了解:

<code>providers</code>: 用来自动发现平台上的服务,可以是编排工具、容器引擎或者 key-value 存储等,比如 docker、kubernetes、file

<code>entrypoints</code>: 监听传入的流量(端口等…),是网络入口点,它们定义了接收请求的端口(http 或者 tcp)。

<code>routers</code>: 分析请求(host, path, headers, ssl, …),负责将传入请求连接到可以处理这些请求的服务上去。

<code>services</code>: 将请求转发给你的应用(load balancing, …),负责配置如何获取最终将处理传入请求的实际服务。

<code>middlewares</code>: 中间件,用来修改请求或者根据请求来做出一些判断(authentication, rate limiting, headers, …),中间件被附件到路由上,是一种在请求发送到你的服务之前(或者在服务的响应发送到客户端之前)调整请求的一种方法。

在<code>traefik v2.0</code>版本后,开始使用<code>crd(custom resource definition)</code>来完成路由配置等,所以需要提前创建<code>crd</code>资源。

kubernetes 在 1.6 版本中引入了基于角色的访问控制(rbac)策略,方便对 kubernetes 资源和 api 进行细粒度控制。traefik 需要一定的权限,所以,这里提前创建好<code>traefik serviceaccount</code>并分配一定的权限。

由于 traefik 配置很多,通过 cli 定义不是很方便,一般时候都会通过配置文件配置 traefik 参数,然后存入<code>configmap</code>,将其挂入 traefik 中。

下面配置中可以通过配置<code>kubernetescrd</code>与<code>kubernetesingress</code>和<code>kubernetesgateway</code>三项参数,让 traefik 支持<code>crd</code>、<code>ingress</code>与<code>kubernetesgateway</code>三种路由配置方式。

下面将用<code>daemonset</code>方式部署 traefik,便于在多服务器间扩展,用 hostport 方式绑定服务器 80、443 端口,方便流量通过物理机进入 kubernetes 内部。

接下来配置 hosts,客户端想通过域名访问服务,必须要进行 dns 解析,这里可以通过 dns 服务器进行域名解析,也可以修改 hosts 文件将 traefik 指定节点的 ip 和自定义 host 绑定

kubernetes 部署 Traefik2.4.13说明核心概念部署Traefik配置路由规则参考链接

我在之前的文章中讲过部署 argo cd,当时<code>argocd-server</code>服务暴露的方式采用的是<code>nodeport</code>,现在我们使用今天的方法。

首先,我们需要将暴露服务类型由<code>nodeport</code>更改为<code>clusterip</code>。然后,编辑<code>argocd-server deployment</code>以将<code>--insecure</code>标志添加到<code>argocd-server</code>命令中:

然后创建如下<code>ingressroute</code>资源对象即可,我们创建了一个<code>redirect-https</code>的中间件,可以让 http 服务强制跳转到 https 服务去:

kubernetes 部署 Traefik2.4.13说明核心概念部署Traefik配置路由规则参考链接

cli命令行登录:

kubernetes 部署 ingress 控制器 traefik v2.4

继续阅读