Traefik1.7.17的部署使用
本篇文章介绍了在k8s上treafik1.7的搭建和使用。
因为我这里是作为kubernetes服务的暴露,因此你得有一个kubernetes集群
集群准备好了,需要下面的配置文件
部署rbac文件
rbac文件让ingress获取对应命名空间的权限
[root@master traefik]# cat ingress-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: ingress
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: ingress
subjects:
- kind: ServiceAccount
name: ingress
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io部署traefik应用
这里部署应用中包含了https服务,因此需要在对应的节点上生成证书进行认证
首先openssl命令生成 CA 证书
现在我们有了证书,我们可以使用 kubectl 创建一个 secret 对象来存储上面的证书
现在我们来配置 Traefik,让其支持 https,新建traefik.toml文件
然后通过cm挂载进pod里面,让pod能够访问该配置文件
最后部署我们的对应的traefik应用
部署traefik的service
给trarfik部署一个路由
ingress 中 path 的用法
部署nginx测试服务测试ingress 中 path 的用法
设置不同的同一个路由不同的路由访问对应的nginx服务
部署结果

基于traefik的Basic auth认证
首先采用htpasswd创建文件
基于上面的htpasswd创建secret(注意命名空间)
treafik引用对应的secret进行认证(注意如下)
Secret文件必须与Ingress规则在同一命名空间。
目前只支持basic authentication。
Realm不可配置,默认使用traefik。
Secret必须只包含一个文件。
引用secret的yaml配置
解析域名到k8s集群中
一般暴露服务到外部都是提供域名访问,我们这边的集群节点通过lb来负载均衡,将域名解析到对应的lb上,后端监听的服务为treafik的80端口即可,这样treafik可以使用你所绑定解析的域名
最后更新于
这有帮助吗?