部署traefik 1.7服务
部署traefik服务
主要是三个yaml文件:traefik-deployment.yaml,traefik-rbac.yaml,ui.yaml
也可以使用traefik-ds.yaml,这个方式体现。
[root@k8smaster traefiks]# ll
总用量 12
-rw-r--r--. 1 root root 1114 12月 26 22:14 traefik-deployment.yaml
-rw-r--r--. 1 root root 788 12月 26 22:13 traefik-rbac.yaml
-rw-r--r--. 1 root root 471 12月 26 22:14 ui.yaml
[root@k8smaster traefiks]# kubectl apply -f traefik-rbac.yaml clusterrole.rbac.authorization.k8s.io/traefik-ingress-controller created clusterrolebinding.rbac.authorization.k8s.io/traefik-ingress-controller created [root@k8smaster traefiks]# kubectl apply -f traefik-deployment.yaml serviceaccount/traefik-ingress-controller created deployment.apps/traefik-ingress-controller created service/traefik-ingress-service created [root@k8smaster traefiks]# kubectl apply -f ui.yaml service/traefik-web-ui created ingress.extensions/traefik-web-ui created
[root@k8smaster demo]# kubectl get svc -n kube-system -owide |grep traefik # 80-业务端口, 8080-ui页面,还缺一个443端口(需要保留)。
traefik-ingress-service NodePort 10.96.253.173 <none> 80:30164/TCP,8080:30637/TCP 37h k8s-app=traefik-ingress-lb
traefik-web-ui ClusterIP 10.105.88.89 <none> 80/TCP 37h k8s-app=traefik-ingress-lb
[root@k8smaster demo]# curl -H "host: traefik-ui.minikube" 192.168.1.82:30164
<a href="/dashboard/">Found</a>.
[root@k8smaster demo]# curl -H "host: traefik-ui.minikube" 192.168.1.82:30164/dashboard/
<!doctype html><html class="has-navbar-fixed-top"><head...
[root@k8smaster demo]# curl 192.168.1.82:30637/dashboard/
<!doctype html><html class="has-navbar-fixed-top"><head...
[root@k8smaster ~]# curl k8snode2:30637
浏览器访问,http://192.168.1.82:30637/dashboard/,如下,
下面开始实例验证了。
参考:https://blog.csdn.net/qq_33816243/article/details/127118553
[root@k8smaster demo]# kubectl get pods
NAME READY STATUS RESTARTS AGE myapp1-76c788c697-5hj4b 1/1 Running 0 2m58s myapp2-84c669669f-x45mm 1/1 Running 0 70s [root@k8smaster demo]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 38h myapp1 ClusterIP 10.98.31.249 <none> 80/TCP 2m59s myapp2 ClusterIP 10.104.162.151 <none> 80/TCP 2m55s [root@k8smaster demo]# curl 10.98.31.249 Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a> [root@k8smaster demo]# curl 10.104.162.151 Hello MyApp | Version: v7 | <a href="hostname.html">Pod Name</a> [root@k8smaster demo]# kubectl apply -f myapp1-ingress.yaml ingress.extensions/traefik-ingress created [root@k8smaster demo]# curl -H "host: myapp1.test.com" 192.168.1.82:30164 Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a> [root@k8smaster demo]# curl -H "host: myapp2.test.com" 192.168.1.82:30164 Hello MyApp | Version: v7 | <a href="hostname.html">Pod Name</a> [root@k8smaster demo]# curl -H "host: myapp2.test.com" 192.168.1.82:30164/hostname.html myapp2-84c669669f-x45mm
本地电脑访问,先设置hosts文件,
C:\Windows\System32\drivers\etc\hosts # 编辑hosts文件
192.168.1.82 myapp2.test.com myapp1.test.com
这里完成了http出来方式服务。
现在生成环境会把ingress服务单独部署在独立的主机上,以便以统一管理,这个我们就需要使用LVS来使用了。
参考上面章节:https://www.cnblogs.com/sunnyyangwang/p/18645471 ,这里我们直接使用
lvs_dr.sh 配置新增,ingress信息
[root@dr1 ~]# cat lvs_dr.sh
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/sbin/ipvsadm
vip=192.168.1.100
rs1=192.168.1.82
rs2=192.168.1.80
ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:0
$ipv -C
$ipv -A -t $vip:80 -s rr
$ipv -a -t $vip:80 -r $rs1:80 -g
$ipv -a -t $vip:80 -r $rs2:80 -g
$ipv -A -t $vip:30164 -s rr
$ipv -a -t $vip:30164 -r $rs1:30164 -g
[root@dr1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.100:80 rr
-> 192.168.1.80:80 Route 1 0 0
-> 192.168.1.82:80 Route 1 0 0
TCP 192.168.1.100:30164 rr
-> 192.168.1.82:30164 Route 1 0 0
客户端验证,
Windows机器验证, 本地电脑访问,先设置hosts文件,
C:\Windows\System32\drivers\etc\hosts # 编辑hosts文件
# 192.168.1.82 myapp2.test.com myapp1.test.com 192.168.1.100 myapp2.test.com myapp1.test.com
浏览器访问如上截图,LVS+DR+ingress+traefik模式成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗