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下很容易,只需要在啟動映象的時候將裝置掛載上去即可。檢視顯示卡裝置名 ...