工作記錄四-etcd與flanneld


#######################
## etcd用來做flannld的數據中心,記錄flannld各主機子網的配置
## flannld使各容器實例處於同一子網內,可以相互訪問
#######################

### 一、etcd安裝及使用
## 1. 下載編譯二進制包
git clone https://github.com/coreos/etcd.git
cd etcd # 進入相關目錄
./build # 編譯
# cd bin目錄下,將相關的生成文件cp到/usr/bin目錄下
sudo cp etcd* /usr/bin

# 先取etcd發現的key,后面的size表示有幾個etcd實例,單機測試可以size=1
https://discovery.etcd.io/new?size=3 中獲取一個discovery地址

# 2. 啟動etcd相關腳本

etcd -initial-advertise-peer-urls http://192.168.1.110:2380 \
-listen-peer-urls http://192.168.1.110:2380 \
-listen-client-urls http://0.0.0.0:2379 \
-advertise-client-urls http://0.0.0.0:2379 \
-initial-cluster-state new \
-discovery https://discovery.etcd.io/f65861ba56d34ab3857836a6c57d1a2c &

  

# 3. 校驗
# 插入一條記錄 {"AAA" :"this is awesome"}

curl -L http://192.168.1.110:2379/v2/keys/AAA -XPUT -d value="this is awesome"

# 查詢相關的記錄

curl -L http://192.168.1.110:2379/v2/keys/AAA

### 二、安裝flannel
# 1. 下載編譯

git clone https://github.com/coreos/flannel.git
cd flannel 
./build 

# 復制到相關目錄下

sudo cp flanneld /usr/bin

# 在dist目錄下,將mk-docker-opts.sh 復制到/usr/bin中

sudo cp mk-docker-opts.sh /usr/bin

# 切換回docker用戶,在節點上執行

sudo mk-docker-opts.sh -i # 自動生成subnet.env文件

# 2. flannld配置及啟動
# 在etcd中配置flannld需要使用的子網記錄

etcdctl rm /coreos.com/network/config
etcdctl mk /coreos.com/network/config '{"Network":"10.0.0.0/16"}'

#切換到root用戶下,啟動

nohup flanneld -iface=virbr0 & # 啟動,由於在虛擬機只有virbr0
source /run/flannel/subnet.env # 生效環境
echo ${FLANNEL_SUBNET}  # 檢查環境配置
# 配置docker0
sudo ifconfig docker0 ${FLANNEL_SUBNET}

# 3. 重新啟動docker以生效

sudo systemctl stop docker.service
sudo systemctl start docker.service # 可能會報一個錯,但不影響使用

# 4. 效果檢查
#查看配置:

etcdctl ls /coreos.com/network/subnets 

=> 輸出/coreos.com/network/subnets/172.17.99.0-24
# 查看容器ip 

docker ps #查看運行中的容器
docker inspect f5ca21b47cef # 可以發現所有容器都在172.17.99.x這一子網段中即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM