Lvs下使用Docker擴容實驗

2021-07-07 05:59:29 字數 4289 閱讀 1216

lvs下使用docker擴容實驗

1. 安裝元件:keepalived和lvs

apt-getupdate

apt-getinstall ipvsadm

apt-getinstall keepalived

2. 配置

主要是/etc/keepalived/keepalived.conf檔案。

root@ubuntu:~/dev/keepalived-1.2.19#cat /etc/keepalived/keepalived.conf

#globalconfiguration

global_defs

#vrrpconfiguration

vrrp_instancezgye_lvs

virtual_ipaddress

#virtual server configu - for www service

virtual_server 172.18.2.100 80

}real_server 172.18.2.85 80

}real_server 172.18.2.125 80 }}

}vm

1.        安裝元件: nginx

apt-get install nginx

2.        配置nginx

主要是修改 /usr/share/nginx/html/index.html,以區分哪個rs做了應答。

3.        增加vip

ifconfig eth0:0 172.18.2.100 broadcast172.18.2.100 netmask 255.255.255.255 up

route add -host 172.18.2.100 deveth0:0

4.        修改arp過濾

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

docker

1.        安裝docker

apt-key adv --keyserverhkp: --recv-keys36a1d7869245c8950f966e92d8576a8ba88d21e9

sh -c "echo deb docker main >/etc/apt/sources.list.d/docker.list"

apt-get update

apt-get install -y lxc-docker gitmake

source/etc/bash_completion.d/docker

docker pull nginx

3.        執行nginx容器

docker run -it --net=none--name=nginx2 nginx /bin/bash

4.        配置固定ip

使用指令碼配置:

./docker_static_ip.sh a2ad572f9ca2172.18.2.125 255.255.255.128 172.18.2.1 nginx_2

其中指令碼為:

root@oa-72:~# catdocker_static_ip.sh

#/bin/bash

br_dev=br0

if [ -z $1 ] || [ -z $2 ] || [ -z$3 ] || [ -z $4 ] || [ -z $5 ];

then

echo "*****input the necessaryparameters: containerid ip mask gateway ethname"

echo "*****call the script like:sh manual_con_static_ip.sh  b0e18b6a4432192.168.5.123 24 192.168.5.1 deth0"

exit

ficontainerid=$1

setip=$2

setmask=$3

gateway=$4

ethname=$5

ifconfig $ethname > /dev/null2>&1

if [ $? -eq 0 ]; then

read -p "$ethname exist,do you want delelte it? y/n " del

if [[ $del == 'y' ]]; then

ip link del $ethname

else

exit

fifi

#pid=`docker inspect -f'}' $containerid`

mkdir -p /var/run/netns

find -l /var/run/netns -type l-delete

if [ -f /var/run/netns/$pid ]; then

rm -f /var/run/netns/$pid

filn -s /proc/$pid/ns/net/var/run/netns/$pid

#ip link add $ethname type veth peername b

brctl addif $br_dev $ethname

ip link set $ethname up

ip link set b netns $pid

#delete eth0 in docker

ip netns exec $pid ip link del eth0> /dev/null 2>&1

#set eth0 in docker

ip netns exec $pid ip link set devb name eth0

ip netns exec $pid ip link set eth0up

ip netns exec $pid ip addr add$setip/$setmask dev eth0

ip netns exec $pid ip route adddefault via $gateway

5.        配置vip

ip netns exec 7397 ip addr add 172.18.2.100/25dev eth0

6.        啟動nginx服務

docker exec -d nginx2 service nginxstart

client:發請求到vip上。

lvs:只接收請求,並修改請求發到rs,由rs做應答。

rs:收到第乙個syn的smac為lvs的,但回的syn\ack的dmac變成了client的mac。

在cilent上通過

root@ubuntu:~# for ((i=0; i<100; i++)); do curl done

訪問來測試均衡情況

在113上可以看到:

root@ubuntu:~# ipvsadm -ln

ip virtual server version 1.2.1 (size=4096)

prot localaddress:port scheduler flags

->remoteaddress:port           forwardweight activeconn inactconn

tcp 172.18.2.100:80 rr

->172.18.2.83:80               route   1     0          33       

->172.18.2.85:80               route   1     0          33       

->172.18.2.125:80              route   1     0          34   

CentOS下docker的使用

1 docker包的安裝 yum install docker y 2 檢視安裝的docker包 yum list installed grep docker 3 啟動docker服務 systemctl start docker 4 檢視docker的版本 docker version 5 檢視 ...

docker下使用gdb除錯

安全計算模式 secure computing mode,seccomp 是 linux 核心功能。可以使用它來限制容器內可用的操作。預設的 seccomp 配置檔案為使用 seccomp 執行容器提供了乙個合理的設定,並禁用了大約 44 個超過 300 的系統呼叫。之前知道docker為了保護容器...

在Docker下使用Nvidia GPU進行計算

系統 centos 7,nvidia titan x 最近在使用gpu計算,同時也在使用docker做虛擬化環境。那麼問題來了,在虛擬機器下如何使用gpu呢?在網上找到了很多答案,例如使用lxc等。實際上將gpu對映到docker下很容易,只需要在啟動映象的時候將裝置掛載上去即可。檢視顯示卡裝置名 ...