部署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模式成功。

posted @   wang_wei123  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示