记录一下在kubernetes1.16.3环境中使用Traefik2.0的过程,Traefik在2.0版本之后增加了tcp代理。同时在1.*版本的时候,使用Traefik感到很头疼的就是需要加上很多的注解annotations
,这一点社区也感觉到很麻烦,因此在2.0版本之后是通过Ingressroute这种自定义资源来进行配置在Kubernetes中的资源访问权限。
不管是什么技术,只有真正的用起来你才能感受到它的变化和好处,所以要谈某一个技术好还是不好,首先你要先用起来,不然我再写的很详细也终究不会是你的.
安装教程网上很多,这里简单的记录一下,详细的资源清单文件可以再GITHUB上找到
https://github.com/linuxermaster/kubeapps/tree/master/Traefik2.0.5
首先配置traefik的ingressroute CRD资源
kubectl apply -f 01-traefik_crd.yaml
访问权限资源清单
kubectl apply -f 02-traefik_rabc.yaml
通过configmap
挂载traefik的配置文件
kubectl apply -f 03-configmap.yaml
以deployment的方式部署traefik
kubectl apply -f 04-traefik_dp.yaml
此时可以查看你的traefik是否运行正常
给traefik添加rule规则以及Middleware在认证之后进行访问
kubectl create secret generic basic-auth --from-file=./htpasswd --namespace=kube-system
kubectl apply -f 05-ingressroute.yaml
查看运行的状态
➜ Traefik2.0.5 git:(master) (☸ kubernetes-admin@kubernetes:default) k get all -n kube-system | grep -i traefik
pod/traefik-ingress-controller-6759db6c96-xxpnf 1/1 Running 0 6h21m
service/traefik ClusterIP 10.108.234.104 <none> 80/TCP,443/TCP,8080/TCP,8082/TCP 6h21m
deployment.apps/traefik-ingress-controller 1/1 1 1 6h21m
replicaset.apps/traefik-ingress-controller-6759db6c96 1 1 1 6h21m
通过域名进行访问
这里的用户名和密码就是通过htpasswd加密的,可以创建多个用户