这个一键脚本是我的一个毕设,目前还是一个测试版
实验使用的是:intel 82599 网卡 支持SRIOV
容器使用的是 Docker Ubuntu
系统使用的是:Centos 7.4
欢迎访问我的GitHub 为了提供一系列建议
作者:ZD
一、优化之前
同主机不同服务进行一系列请求

不同主机跨主机访问

二、优化之后
同主机不同服务进行一系列请求

不同主机跨主机访问

Docker镜像请自己准备,此脚本和本人并不提供!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
| #!bin/sh
haproxycfg() { sleep 1 rm -rf /haproxy_test mkdir /haproxy_test echo "输入的参数个数为: $#" echo "所有参数为: $@" echo "$1: $1" echo "$2: $2" echo "$3: $3" native_ip=$1 next_ip1=$2 next_ip2=$3 echo " #--------------------------------------------------------------------- # Example configuration for a possible web application. See the # full configuration options online. # # http://haproxy.1wt.eu/download/1.4/doc/configuration.txt # #---------------------------------------------------------------------
#--------------------------------------------------------------------- # Global settings #--------------------------------------------------------------------- global # to have these messages end up in /var/log/haproxy.log you will # need to: # # 1) configure syslog to accept network log events. This is done # by adding the '-r' option to the SYSLOGD_OPTIONS in # /etc/sysconfig/syslog # # 2) configure local2 events to go to the /var/log/haproxy.log # file. A line like the following can be added to # /etc/sysconfig/syslog # # local2.* /var/log/haproxy.log # log 127.0.0.1 local2
chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 1000000 user haproxy group haproxy daemon
# turn on stats unix socket stats socket /var/lib/haproxy/stats
#--------------------------------------------------------------------- # main frontend which proxys to the backends #--------------------------------------------------------------------- frontend haproxy $native_ip:80 mode tcp log global option tcplog timeout client 3600s backlog 4096 maxconn 1000000 default_backend sink
#--------------------------------------------------------------------- # round robin balancing between the various backends #--------------------------------------------------------------------- backend sink balance roundrobin mode tcp option log-health-checks option redispatch option tcplog server app1 $next_ip1 server app2 $next_ip2 #server app1 172.88.0.4:80 # server app1 172.18.60.100:50001 # server app2 173.168.100.7:50002 # server app3 173.168.100.7:50003 # server app4 173.168.100.7:50004 timeout connect 1s timeout queue 5s timeout server 3600s ">>/haproxy_test/haproxy.cfg } iptablescfg(){ sleep 1 iptables_sriov=$1 ip=$2 ip2=$3 next_ip=$4 netcard_name1=$5 netcard_name2=$6 ip3=$7 sleep 1 docker run -itd --privileged=true --net=none --name=$iptables_sriov 6d6fd32fa013 /bin/bash sleep 1 pipework --direct-phys $netcard_name1 -i eth0 $iptables_sriov $ip/24 sleep 1 ovs-docker add-port br0 eth1 $iptables_sriov --ipaddress=$ip2/24 pipework --direct-phys $netcard_name2 -i eth2 $iptables_sriov $ip3/24 sleep 1 docker exec -it $iptables_sriov iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to $next_ip:80 sleep 1 docker exec -it $iptables_sriov iptables -t nat -A POSTROUTING -j MASQUERADE -o eth1 } haproxy_run(){ sleep 1 haproxy_name=$1 sriov_ip=$2 haproxy_next_ip1=$3 haproxy_next_ip2=$4 haproxy_netcardname=$5 ovs_briage=$6 ovs_address=$7 docker run -itd --privileged=true --net=none --name=$haproxy_name 878f003a137e /bin/bash pipework --direct-phys $haproxy_netcardname -i eth0 $haproxy_name $sriov_ip/24 add_ovs_switch $ovs_briage eth1 $haproxy_name $ovs_address sleep 1 docker exec -it $haproxy_name iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to $haproxy_next_ip1:80 sleep 1 docker exec -it $haproxy_name iptables -t nat -A POSTROUTING -j MASQUERADE -o eth1 haproxycfg $ovs_address $haproxy_next_ip1 $haproxy_next_ip2 docker cp /haproxy_test/haproxy.cfg $haproxy_name:/root/ docker exec -it $haproxy_name haproxy -f /root/haproxy.cfg >/dev/null } apache_run(){ sleep 1 apache2_name=$1 apache2_ip=$2 apache_netcardname=$3 apache_ovs_brige=$4 apache_ovs_ip=$5 docker run -itd --privileged=true --net=none --name=$apache2_name 42468c9f6ce6 /bin/bash pipework --direct-phys $apache_netcardname -i eth0 $apache2_name $apache2_ip/24 ovs-docker add-port $apache_ovs_brige eth1 $apache2_name --ipaddress=$apache_ovs_ip/24 docker exec -it $apache2_name /etc/init.d/apache2 start >/dev/null } add_ovs_switch(){ sleep 1 ovs_briage=$1 docker_netcard=$2 docker_name=$3 docker_ipaddress=$4 ovs-docker add-port $ovs_briage $docker_netcard $docker_name --ipaddress=$docker_ipaddress/24 }
haproxy_run_ovs(){ sleep 1 haproxy_name=$1 current_ip=$2 haproxy_next_ip1=$3 haproxy_next_ip2=$4 ovs_briage=$5 netcardname=$6 ip_sriov=$7 docker run -itd --privileged=true --net=none --name=$haproxy_name 878f003a137e /bin/bash ovs-docker add-port $ovs_briage eth0 $haproxy_name --ipaddress=$current_ip/24 pipework --direct-phys $netcardname -i eth1 $haproxy_name $ip_sriov/24 haproxycfg $current_ip $haproxy_next_ip1 $haproxy_next_ip2 docker cp /haproxy_test/haproxy.cfg $haproxy_name:/root/ docker exec -it $haproxy_name haproxy -f /root/haproxy.cfg >/dev/null } on_start(){
iptablescfg iptables_sriov 192.168.1.3 172.17.1.2 172.17.1.3 enp9s21f6 enp9s22 192.168.1.21 haproxy_run_ovs haproxy_sriov3 172.17.1.3 172.17.1.4 172.17.1.5 br0 enp9s27f6 192.168.1.22 haproxy_run haproxy_sriov4 192.168.1.23 172.17.1.6 172.17.1.6 enp9s28 br0 172.17.1.4 haproxy_run haproxy_sriov5 192.168.1.24 172.17.1.6 172.17.1.6 enp9s28f2 br0 172.17.1.4 haproxy_run haproxy_sriov6 192.168.1.25 172.17.1.7 172.17.1.7 enp9s28f4 br0 172.17.1.5 haproxy_run haproxy_sriov7 192.168.1.26 172.17.1.8 172.17.1.8 enp9s28f6 br0 172.17.1.6 haproxy_run haproxy_sriov8 192.168.1.27 172.17.1.9 172.17.1.9 enp9s29 br0 172.17.1.7 haproxy_run haproxy_sriov9 192.168.1.28 172.17.1.10 172.17.1.10 enp9s29f2 br0 172.17.1.8 haproxy_run haproxy_sriov10 192.168.1.29 172.17.1.11 172.17.1.11 enp9s29f4 br0 172.17.1.9 haproxy_run haproxy_sriov11 192.168.1.30 172.17.1.12 172.17.1.12 enp9s29f6 br0 172.17.1.10 haproxy_run haproxy_sriov12 192.168.1.31 172.17.1.13 172.17.1.13 enp9s30 br0 172.17.1.11 haproxy_run haproxy_sriov13 192.168.1.32 172.17.1.14 172.17.1.14 enp9s30f2 br0 172.17.1.12 haproxy_run haproxy_sriov14 192.168.1.33 172.17.1.15 172.17.1.15 enp9s30f4 br0 172.17.1.13 haproxy_run haproxy_sriov15 192.168.1.34 172.17.1.16 172.17.1.16 enp9s30f6 br0 172.17.1.14 haproxy_run haproxy_sriov16 192.168.1.35 172.17.1.17 172.17.1.17 enp9s16 br0 172.17.1.15 haproxy_run haproxy_sriov17 192.168.1.36 172.17.1.18 172.17.1.18 enp9s16f4 br0 172.17.1.16 haproxy_run haproxy_sriov18 192.168.1.37 172.17.1.19 172.17.1.19 enp9s16f6 br0 172.17.1.17 haproxy_run haproxy_sriov19 192.168.1.38 172.17.1.20 172.17.1.20 enp9s17 br0 172.17.1.18 haproxy_run haproxy_sriov20 192.168.1.39 172.17.1.21 172.17.1.21 enp9s17f2 br0 172.17.1.19 apache_run apaches21_sriov1 192.168.1.40 enp9s17f4 br0 172.17.1.20 apache_run apaches22_sriov2 192.168.1.41 enp9s17f6 br0 172.17.1.21 } on_start
|
Create By ZD-CNU