利用Flannel在AWS EC2上搭建Docker网络跨机访问网络

一、AWS EC2上踩过的坑

       在AWS EC2上之前搭建过Docker Swarm集群,由于项目还没有正式上生产,所以胆大什么技术都刚上去尝试。Docker Swarm上手很快,很容易建立一个集群。实际中,Docker Swarm发布Service,公布对外端口。发现客户端连接,首次有短暂超时现象,访问速率不及直接用Docker独立部署镜像,暴露端口对外提供服务。查阅了不少资料,都无法解决,Docker Swarm发布Service,客户端访问速率慢的问题,所以决定放弃Docker Swarm。再之前搭建过Kubernetes,后发现搭建Kubernetes 高可用,多Master方式,在EC2搭建不成功,各种问题和坑,网上也没有查到好的解决方案。唯一办法购买AWS Kubernetes服务。

      从成本出发,决定用其他方式来搭建Docker集群。搭建Docker集群,首先也要解决的是跨主机,容器间的网络访问问题。在尝试利用calico方案,来解决Docker 容器跨主机的访问问题。calico在AWS EC2上,也遇到棘手问题。虽然,calico借助ETCD集群,执行calicoctl node status,可以看到calico貌似搭建成功。实际在测试,利用calico作为Docker的网络的时候,发现calico在本机和跨主机的时候,都不能连通。真是崩溃,由于对calico不熟悉,查找网上各种解决方案,都未能解决在AWS EC2上,calico网络连通问题。

   网上给的成功例子,可能都不是在公用云上执行的。由于在公有云上执行,本身公有云有他们自己的产品,可能有诸多限制,导致在物理机上可以搭建成功,在公有云上却不能搭建成功。在遭遇各种坑之后,决定尝试在AWS EC2上搭建flannel网络,结果非常顺利搭建成功,也解决了Docker容器在跨主机网络问题。

二、准备机器

这里我准备了三台机器,三台机器如下:

    IP地址                主机名称      安装服务

    172.31.72.142    master1      Etcd、Maser节点、Docker、Flanne

    172.31.82.187    master2      Etcd、Node节点、Docker、Flanne

    172.31.11.86      master3      Etcd、Node节点、Docker、Flanne

三、搭建ETCD集群

由于篇幅的关系,这里不在阐述。参见我写的搭建ETCD集群文章,

链接地址:https://blog.csdn.net/QFYJ_TL/article/details/81395543

四、搭建Flannel集群

1、安装Flannel,Docker,在所有EC2上安装Flannel,Docker

yum install flannel -y

docker-ce centos参考官网安装:https://docs.docker.com/install/linux/docker-ce/centos/#os-requireme

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值