美文网首页云原生
microk8s(八)service的负载均衡

microk8s(八)service的负载均衡

作者: 印随2018 | 来源:发表于2019-07-22 11:47 被阅读0次

    找出一些证据,证明service实现了负载均衡的功能

    一、添加一个应用

    image.png

    二、查看服务

    # kubectl get svc
    NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    default-http-backend   ClusterIP   10.152.183.99    <none>        80/TCP     150m
    kubernetes             ClusterIP   10.152.183.1     <none>        443/TCP    152m
    nginx                  ClusterIP   10.152.183.176   <none>        8080/TCP   79s
    

    三、抓包

    新开一个终端,运行

    tcpdump -i cbr0 port 80 -nnnnn
    

    主机到容器的通信都会经过网络设备cbr0,所以在这个设备上抓包就可以了。端口80是容器的服务端口

    四、访问服务

    执行5次下面的命令,因为我们启动了四个实例,所以需要执行5次来确定后端服务都被轮询过

    curl http://10.152.183.176:8080
    

    五、查看抓包结果

    # 10.1.1.22
    11:28:46.772869 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [S], 
    11:28:46.772886 IP 10.1.1.22.80 > 10.1.1.1.56850: Flags [S.],
    11:28:46.772897 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [.], 
    11:28:46.773719 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [P.],
    11:28:46.773731 IP 10.1.1.22.80 > 10.1.1.1.56850: Flags [.], 
    11:28:46.773919 IP 10.1.1.22.80 > 10.1.1.1.56850: Flags [P.],
    11:28:46.773928 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [.], 
    11:28:46.773958 IP 10.1.1.22.80 > 10.1.1.1.56850: Flags [P.],
    11:28:46.773965 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [.], 
    11:28:46.777230 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [F.],
    11:28:46.777348 IP 10.1.1.22.80 > 10.1.1.1.56850: Flags [F.],
    11:28:46.777358 IP 10.1.1.1.56850 > 10.1.1.22.80: Flags [.], 
    
    # 10.1.1.24
    11:28:54.877436 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [S], 
    11:28:54.877464 IP 10.1.1.24.80 > 10.1.1.1.34256: Flags [S.],
    11:28:54.877482 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [.], 
    11:28:54.878450 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [P.],
    11:28:54.878469 IP 10.1.1.24.80 > 10.1.1.1.34256: Flags [.], 
    11:28:54.878735 IP 10.1.1.24.80 > 10.1.1.1.34256: Flags [P.],
    11:28:54.878748 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [.], 
    11:28:54.878800 IP 10.1.1.24.80 > 10.1.1.1.34256: Flags [P.],
    11:28:54.878812 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [.], 
    11:28:54.881936 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [F.],
    11:28:54.882097 IP 10.1.1.24.80 > 10.1.1.1.34256: Flags [F.],
    11:28:54.882111 IP 10.1.1.1.34256 > 10.1.1.24.80: Flags [.], 
    
    # 10.1.1.23
    11:28:59.800381 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [S], 
    11:28:59.800413 IP 10.1.1.23.80 > 10.1.1.1.49254: Flags [S.],
    11:28:59.800423 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [.], 
    11:28:59.801032 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [P.],
    11:28:59.801045 IP 10.1.1.23.80 > 10.1.1.1.49254: Flags [.], 
    11:28:59.801178 IP 10.1.1.23.80 > 10.1.1.1.49254: Flags [P.],
    11:28:59.801188 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [.], 
    11:28:59.801207 IP 10.1.1.23.80 > 10.1.1.1.49254: Flags [P.],
    11:28:59.801214 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [.], 
    11:28:59.803008 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [F.],
    11:28:59.803104 IP 10.1.1.23.80 > 10.1.1.1.49254: Flags [F.],
    11:28:59.803114 IP 10.1.1.1.49254 > 10.1.1.23.80: Flags [.], 
    
    # 10.1.1.21
    11:29:06.831326 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [S], 
    11:29:06.831357 IP 10.1.1.21.80 > 10.1.1.1.53602: Flags [S.],
    11:29:06.831368 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [.], 
    11:29:06.831918 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [P.],
    11:29:06.831932 IP 10.1.1.21.80 > 10.1.1.1.53602: Flags [.], 
    11:29:06.832111 IP 10.1.1.21.80 > 10.1.1.1.53602: Flags [P.],
    11:29:06.832120 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [.], 
    11:29:06.832140 IP 10.1.1.21.80 > 10.1.1.1.53602: Flags [P.],
    11:29:06.832146 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [.], 
    11:29:06.833953 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [F.],
    11:29:06.834056 IP 10.1.1.21.80 > 10.1.1.1.53602: Flags [F.],
    11:29:06.834067 IP 10.1.1.1.53602 > 10.1.1.21.80: Flags [.], 
    
    # 10.1.1.22
    11:29:11.109634 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [S], 
    11:29:11.109666 IP 10.1.1.22.80 > 10.1.1.1.56968: Flags [S.],
    11:29:11.109676 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [.], 
    11:29:11.110202 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [P.],
    11:29:11.110215 IP 10.1.1.22.80 > 10.1.1.1.56968: Flags [.], 
    11:29:11.110344 IP 10.1.1.22.80 > 10.1.1.1.56968: Flags [P.],
    11:29:11.110353 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [.], 
    11:29:11.110372 IP 10.1.1.22.80 > 10.1.1.1.56968: Flags [P.],
    11:29:11.110378 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [.], 
    11:29:11.112175 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [F.],
    11:29:11.112274 IP 10.1.1.22.80 > 10.1.1.1.56968: Flags [F.],
    11:29:11.112284 IP 10.1.1.1.56968 > 10.1.1.22.80: Flags [.], 
    

    可以看到,我们访问了5次服务,数据分别被转发到了5个节点上,这里可以看到每次完成的TCP通信过程

    六、验证是否所有节点

    # kubectl describe pods -l k8s-app=nginx | grep IP
    IP:                 10.1.1.23
    IP:                 10.1.1.22
    IP:                 10.1.1.21
    IP:                 10.1.1.24
    

    可以确认,后端所有的节点都收到了请求。

    相关文章

      网友评论

        本文标题:microk8s(八)service的负载均衡

        本文链接:https://www.haomeiwen.com/subject/atpilctx.html