Traefik 2.0自动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育平台

上一篇文章咱们完成了 Traefik 2.0 popular露出 Re谢dis(TCP) 服务,咱们了解邓禄普轮胎到 Traefik 中运用 TCP 路由装备需求 SNI,而 SNI 又是依靠 TLS 的,所以需求装备证书才干正常拜访 TCP 服务,其实 Traefik 除了支撑咱们手动装备 TLS 证书之外,还支撑主动生成 TLS 证书,本文就来为咱们介绍如24式简化太极拳安在 Traefik 2.0 中装备主动化 HTTPS 服务。

相同的,前提条件仍是需求提早在 Kubernetes 集群中装置好 Traefik 2.0 服务,能够参阅之前咱们供给的装置资源清单 https://github.com/cnych/kube广德气候app。里面包隋朝皇帝含4个文件:IngressRoute.yaml、crd.yaml、rbac.yaml、traefik.yaml,部分文件咱们需求做一些改变。

我金丝雀们这儿就以 Traefik 的 WebUI 为例,之前咱们敞开了 KubernetesCRD 这个 Provider,经过创立一个 IngressRoute 目标来敞开对 WebUI 的拜访,资源清单如下所示:(IngressRoute.yaml)

apiVersion: traefik.co陈数全祼剧照ntaino.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-webui
namespace: kube-system
spec:
entryPoints:
- web
routes:
- match: Host(`traefik.qikqiak.com`)
kind: Rule
services:
- name: traefik
port: 8080

要运用 Let’s Encrypt 来进行主动化 HTTPS,就需求首要敞开 ACME,敞开 ACME 需求经过静态装备的方法,也就是说能够经过环境变量、发动参数等方法来供给,咱们这儿仍是直接运用发动参数的方法来敞开,在 Traefik 的布置文件中增加如下命令行参数:

args:
- --entrypoints.web.Address=:80
- --entrypoints.Traefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 websecu掌中宝re.Address=:443
- --api.insecure=true # 敞开 webui 需求该参数
- --providers植村秀.kubernetescrd
- --api
- --api.dashboard=true
- --accTraefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 esslog
# 运用 tls 验证这种方法
- --certificatesresolvers.default.acme.tlsChallenge=true
# 邮箱装备
- --certificatesResolvers.default.acme.email="ych_1024@163.com"
# 保存 ACME 证书的方位
- --certificatesResolvers.default.acme.storage="acme.json"
# 下面是用于测验的ca服务,假如https证书生成成功了,则移除下面参数
- --certificatesresolvers.default.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory

这锁部叶风里咱们运用的是 tlsChallenge 这种 ACME 验证方法,需求留意的是当运用这种验证时,Let’s Encrypt 到 Traefik 443 端口有必要是可达的,除了这种验证方法外,还有 httpChallenge 和 dnsChallenge 两种验证方法,更常用的是 http 这种验证方法,关于这几种验证方法的运用能够检查文档:https://www.qikqiak.com/traefik-book/https/acme/ 了解Traefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 他们之间的差异。

上面咱们相当于指定了一个名为 default 的证书解析器,然后要留意的是,必定要将这儿的 WebUI 的域名traefik.qikqiak.com 解析到 Traefik 的地点节点,解析完成后,重新布置 Traefik:

$ kubectl apply -f traefik.yaml

布置完成后,咱们需求让 WebUI 的域名去监听 443 端口,由于咱们这儿运用的是 tlsChallenge 这种验证方法,在上面的 IngreTraefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 ssRoute.yaml 文件中新建一个目标,用来监听 443 端口,如下所示:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-webui-tls
namespace: kube-system
spec:
entryPoints:
- websecure # 留意这儿是websecure这个entryPoint,监控443端口
routes:
- match: Host(`traefik.youdianzhishi.com`)
kind: Rule
services:
- name: traefik
port: 8080
tls:
certResolver: default # 运用咱们装备的 default 这个解析器

然袜子后更新目标:

$ kubectl apply -f IngressRoute.yaTraefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 ml
# 现在有两个 Ingr催眠大师essRoute 目标
$ kubectl get ingressroutes -n kube-system
NAME AGE
traefik-webui 28d
traefik-webui-tls 5h15m

这个时分假如一切正常的话咱们现已能够经过 HTTPS 去拜访咱们的服务了:

traefik2 webui https

TraefikTraefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 会主动盯梢其生成的 ACME 证书的到期日期。假如证书过期之前还不到 30 天了,Traefik 会测验进行主动续订。

相同的,咱们经过 HTTP 协议也是能够拜访到的,可是假如需求将 HTTP 恳求强制跳转到 HTTPS 的话,就肚皮舞需求凭借 Traefik 2.0 的供给的中间件来完成了。

traefik2 中间件

相同,在上面的 IngressRoute.yaml 文件中增加一个 Middleware 的 CRD 目标,内容如下所示:

apiVersion: traefik.containo.us/v1aabp319lpha1
kind: Middleware
metadata:
name: redirect-https
namespace: kube-system
spec:
redirectScheme:
scheme: https

这儿咱们就声明晰一个名为 redirectSchemea 的高胜美老公中间件,该中间件能够将咱们的恳求跳转到别的的 scheme 恳求,然后将该中间件装备到 HTTP 恳求的服务上面:

a蜂王浆piVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: traefik-webui
namespace: kube-system
spec:
entryPoints:
- web
routes:
- match: Host(`traefik.youdianzhishi.com`)
kind: Rule
services:
- name: traefik
port: 8080
middlewares: # 运用上面新建的中间件
- name: redirect-https

然后更新目标:

$ kubectl apply -f IngressRoute.yaml

这样当咱们经过 HTTP 去拜访 WebUI 服务时,也会主动跳转到 HTTPSTraefik 2.0主动HTTPS-betway必威官网备用_必威体育||亚洲最佳体育渠道 上面去,相同能够检查 中间件文件 了解更多关于中间件的信息。

本文中用到的资源清单文件能够从这儿获取:https://github.com/cnych/kubeapp/tree/ma地支ster/traefik2/https。凤凰体系

关于 Traefik 2.0 的更多运用,能够重视 https://www.qikqiak.com/traefik-book 文档。

评论(0)