Kubernetes(k8s)helm 部署 Traefik
Traefik 介绍
- Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。
- Traefik是一个用Golang开发的轻量级的Http反向代理和负载均衡器,虽然相比于Nginx,它是后起之秀,但是它天然拥抱kubernetes,直接与集群k8s的Api Server通信,反应非常迅速,同时还提供了友好的控制面板和监控界面,不仅可以方便地查看Traefik根据Ingress生成的路由配置信息,还可以查看统计的一些性能指标数据,如:总响应时间、平均响应时间、不同的响应码返回的总次数等。
- 不仅如此,Traefik还支持丰富的annotations配置,可配置众多出色的特性,例如:自动熔断、负载均衡策略、黑名单、白名单。所以Traefik对于微服务来说简直就是一神器。
一、集群信息
- 方法因人而异,但大同小异,以下是我的部署方法。
1.1、 主机信息
主机名 | ip地址 | 描述 | 核心 | 内存 |
---|---|---|---|---|
node-01 | 192.168.8.131 | master 节点 | 2核 | 8G |
node-02 | 192.168.8.132 | node 节点 | 2核 | 8G |
node-03 | 192.168.8.133 | node 节点 | 2核 | 8G |
1.2、版本说明
服务 | 版本 |
---|---|
helm | 3.1.1 |
traefik | 1.87.2 |
Kubernetes | 1.17.3 |
二、部署 Traefik
2.1、为 Traefik 添加 basic-auth 认证
- 这里开启仪表盘安全,通过用户和密码登录
- 需要使用 htpasswd 创建用户和密码
# Centos 系统安装
yum -y install httpd
# Ubuntu 系统安装
apt-get install apache2-utils
# 创建用户与密码,根据提示操作
htpasswd -c auth aka
# 查看用户与密码
root@k8s-master-01:~$ cat auth
aka:$apr1$ELatyOqQ$ZyMa63E0gmjoFuQOHN/4e.
2.2、使用 helm 安装 Traefik
- 项目地址:https://hub.helm.sh/charts/stable/traefik
- 修改 quay.io 镜像源到七牛云否则拉镜像太慢
- 如果在根目录运行,直接一个 . 就行了
- 运行在 kube-system 工作空间
- dashboard.enabled=true 开启 traefik 仪表盘
- dashboard.domain=traefik.akiraka.net 设置需要访问的域名
- serviceType=NodePort 默认 NodePort 模式
- rbac.enabled=true 开启 rbac
- dashboard.auth.basic 设置仪表盘密码
# 部署 Traefik 将创建好的 basic-auth 认证填入进去
helm install traefik --namespace kube-system \
--set serviceType=NodePort --set rbac.enabled=true --set replicas=3 \
--set service.nodePorts.http=30719 --set service.nodePorts.https=30720 \
--set dashboard.enabled=true,dashboard.domain=traefik.akiraka.net \
--set dashboard.auth.basic.aka='$apr1$ELatyOhQ$ZlMa63E0gmjoFuQOHN/4e.' \
stable/traefik --version 1.87.2
2.3、查看 Traefik pod
[root@Node-01 ~]# kubectl get pod -n kube-system | grep traefik
traefik-7679b9d997-w6fsg 1/1 Running 0 6m40s
2.4、查看 Traefik pvc
- 80 随机端口为:30072
- 443 随机端口为:30855
[root@Node-01 ~]# kubectl get svc,pod -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-dns ClusterIP 10.1.0.10 <none> 53/UDP,53/TCP,9153/TCP 2d15h
service/traefik NodePort 10.1.220.104 <none> 443:30855/TCP,80:30072/TCP 2s
service/traefik-dashboard ClusterIP 10.1.124.67 <none> 80/TCP 2s
三、访问测试
3.1、 创建 Deployment Service Ingress
- 编写 tomcat-ingress.yaml 配置文件
- 域名:tomcat.akiraka.net
cat > tomcat-ingress.yaml <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-tomcat
spec:
replicas: 1
selector:
matchLabels:
app: web-tomcat
template:
metadata:
labels:
app: web-tomcat
spec:
containers:
- image: tomcat:8.0.24
name: tomcat
ports:
- containerPort: 8080
protocol: TCP
---
kind: Service
apiVersion: v1
metadata:
name: tomcat-service
spec:
ports:
- port: 8080
targetPort: 8080
selector:
app: web-tomcat
type: NodePort
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: tomcat-ingress
spec:
rules:
- host: tomcat.akiraka.net
http:
paths:
- path: /
backend:
serviceName: tomcat-service
servicePort: 8080
EOF
# 应用
kubectl apply -f tomcat-ingress.yaml
3.2、访问 tomcat
- 域名我设置的是:tomcat.akiraka.net 随机端口是 30072
- 方式地址:tomcat.akiraka.net:30072
- 记得修改自己电脑 host 文件,不然域名是访问不了的
四、访问 Traefik 仪表盘
- 设置电脑 host 文件
- 访问 traefik 80 或 者443 随机端口都可以
- 访问域名:traefik.akiraka.net
- 可以看到已经有2个域名
- 使用自己创建的 basic-auth 认证登录仪表盘
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/785.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Kubernetes(k8s)helm 部署 Traefik
Traefik 介绍
Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。
Traefik是一个用Golang开发的轻量级的Http反向代理和负载均……