• 跨主机Docker容器通信的学习


    背景

    骨折在家找自己的人比较少.
    又因为出不去也没法做运动,就不如将之前没学习深入的地方学习下
    先是进行Docker 搭建 redis cluster的处理.
    当时发现必须使用 --net=host进行.
    本来想尝试进行 overlay的网咯进行搭建
    当然有一个目的是验证 overlay的性能损耗
    结果使用了很多招都没有成功
    但是想着至少可以记录下 跨主机 容器通信. 
    
    第一步学习consul
    https://www.jb51.net/article/237838.htm
    

    下载与安装

    wget https://releases.hashicorp.com/consul/1.13.3/consul_1.13.3_linux_amd64.zip
    unzip consul_1.13.3_linux_amd64.zip
    scp consul /usr/bin/
    第一台机器执行
    docker run -d --network host -h consul01 --name=consul01  --restart=always -e CONSUL_BIND_INTERFACE=ens192  harbor.xxxx.online/xxxx/consul
    第台机器执行
    docker run -d --network host -h consul02 --name=consul02  --restart=always -e CONSUL_BIND_INTERFACE=ens192  harbor.xxxx.online/xxxx/consul
    

    修改 Docker 与consul通信

    • 第一台机器的修改
    • 注意需要修改 docker 的 /usr/lib/systemd/system/docker.service 配置文件
    ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store consul://10.110.139.194:8500 --cluster-advertise ens192:2376
    
    • 另外一台机器的修改
    ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --cluster-store consul://10.110.139.194:8500 --cluster-advertise ens192:2376
    
    • 注意 还需要增加几个条件
    --iptables=false \
    --live-restore=false \
    
    • 注意需要重启
      systemctl daemon-reload && systemctl restart docker

    创建consul的简单集群

    主要命令如下:
    consul01 节点不需要做任何操作可以进行查看
    consul operator  raft list-peers
    另外一个机器执行命令就可以加入
    但是我搞不明白谁是主谁是从.
    consul join 10.110.139.94
    然后再查看一下 list 就有了. 
     consul operator  raft list-peers
    Node      ID                                    Address              State     Voter  RaftProtocol
    consul02  2edd71b2-85dc-6c25-0000-5af80e10318e  10.110.139.196:8300  leader    true   3
    consul01  59e32106-916c-bafc-7d5d-19f19679ac92  10.110.139.194:8300  follower  false  3
    
    

    创建overlay的网卡

    docker network create -d overlay multi_host
    

    基于Kylin银河麒麟的镜像进行地址连通性检查

    分别再两台机器上面执行命令:
    docker run -it --net=multi_host harbor.xxxx.online/xxxx/kylinv10sp2:withFonts /bin/bash
    然后执行
    ip addr
    然后可以验证可以互相ping同.
    

    Redis Cluster的验证

    我用了很多招,发现不行...
    
  • 相关阅读:
    HttpURLConnection用法详解
    Docker应用场景
    算法1
    Postman 使用详解
    Postman用法简介
    cookie和session
    HTTP简介
    get和post的区别
    git 同步非master分支
    SparseArray类
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/16863904.html
Copyright © 2020-2023  润新知