摘要:是用于组建容器间网络的工具,用于解决跨主机的之间的连通性问题。最近在尝试手动部署集群,这是这个系列的第一篇。我们需要两台虚拟机如下创建一个目录,把放置其中,运行进入后,可以先更新一下源,一下。另一台虚拟机的过程类似。
Flannel with Docker
</>复制代码
Flannel 是用于组建容器间网络的工具,用于解决跨主机的docker containers之间的连通性问题。最近在尝试手动部署kubernetes集群,这是这个系列的第一篇。
准备工作
首先安装vagrant, 用来创建虚拟节点。我们需要两台虚拟机.
Vagrantfile 如下:
</>复制代码
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.network "private_network", type: "dhcp"
vb.memory = "1024"
end
创建一个 centos 目录,把 Vagrantfile 放置其中,运行:
</>复制代码
vagrant up
vagrant ssh
进入后,可以先更新一下 yum源,yum makecache, yum update 一下。ip addr 看下本机的ip。
另一台虚拟机的过程类似。
两台ip分别为: 172.28.128.3, 172.28.128.4
关于Flannel原理:
docker官网有详细的步骤,大致如下:
</>复制代码
$ sudo tee /etc/yum.repos.d/docker.repo <<-"EOF"
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
$ sudo yum install docker-engine
$ sudo systemctl enable docker.service
$ sudo systemctl start docker
确认安装完成: sudo docker version, 然后关闭 dockerd, sudo systemctl stop docker.service
安装 golang 编译环境编译 flannel 会需要,如果你的vagrant 使用了host的共享目录,那么这个步骤只需要在其中一台虚拟机执行就行,第二台虚拟机直接拷贝文件就可以了。 如果你的host机有golang的编译环境,直接在host编译即可,记得使用 GOOS=linux GOARCH=amd64 作为编译时候的环境变量。
如果你选择在虚拟机中编译,那么内存最好设置为 2G.
</>复制代码
wget -c https://storage.googleapis.com/golang/go1.7.3.linux-amd64.tar.gz
tar xf go1.7.3.linux-amd64.tar.gz
把解压出来的 go 目录放到合适的位置,并把 go/bin 加入 PATH 环境变量, 并设置 GOPATH 环境变量。
安装 Flannel</>复制代码
$ sudo yum install linux-libc-dev gcc
$ git clone https://github.com/coreos/flannel
$ cd flannel
$ make dist/flanneld
编译完成后的文件在 dist 目录中, 可以拷贝到 /usr/local/bin/ 下
安装 etcd</>复制代码
$ curl -L https://github.com/coreos/etcd/releases/download/v3.0.15/etcd-v3.0.15-linux-amd64.tar.gz
$ tar xf etcd-v3.0.15-linux-amd64.tar.gz
把 etcd, etcdctl 拷贝到 /usr/local/bin 下
运行IP: 172.28.128.3
首先运行etcd: $ etcd --listen-client-urls "http://0.0.0.0:2379,http://0.0.0.0:4001" --advertise-client-urls "http://172.28.128.3:2379,http://172.28.128.3:4001" >/dev/null 2>&1
设置flannel子网范围:
</>复制代码
etcdctl rm /coreos.com/network/ --recursive
etcdctl mk /coreos.com/network/config "{"Network":"11.0.0.0/16"}"
IP: 172.28.128.3, 172.28.128.4 两台机器
ifconfig 查看一下,ip为172.28.128.3 的 interface 的名称,我的情况为 eth1. 运行 flannel. subnet.env 是根据 etcd中的配置自动生成的环境变量,需要导出一下.
</>复制代码
sudo flanneld -etcd-endpoints="http://172.28.128.3:2379,http://172.28.128.3:4001" -iface=eth1 &
source /run/flannel/subnet.env
修改docker0 网络的ip, 并开启 dockerd
</>复制代码
sudo ifconfig docker0 ${FLANNEL_SUBNET}
sudo dockerd --bip=${FLANNEL_SUBNET} --mtu=${FLANNEL_MTU} &
测试连通性
在两台机器上分别 sudo docker run -it bash
进入bash后,ip addr 查看各自ip,互相 ping 一下对方的ip,应该是可以ping通的。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26771.html
摘要:每个都是从一个更大的池中划分的,会在每个主机上运行一个叫的,职责是从池中分配。为了在各个主机间共享信息,用存放网络配置已分配的的等信息。同一主机的容器通过连接,跨主机流量通过转发。 主要参考每天5分钟玩转docker容器技术博客。 记录下自己的实验过程。 如果想学习,请直接参考该博客http://www.cnblogs.com/CloudMan6/ 网络概述 flannel为每个hos...
摘要:在节点上执行命令使用节点执行命令的输出,在上执行,使其加入集群。在两个节点上,执行完毕上述命令后,在上查看部署成功。部署完成后的观察检查现在正在运行的可以发现,,,运行在上,在三个节点上均有运行在三个节点均有运行 集群规划 网络配置 节点网络: 192.168.18.0/24 service网络: 10.96.0.0/12 pod网络: 10.244.0.0/16 etcd 部署在...
摘要:才云科技云开源高级工程师唐继元受邀社群,在线分享高级实践,介绍如何构建环境。除命令外的停止都是异常停止。 才云科技云开源高级工程师唐继元受邀DBAplus社群,在线分享《Kubernetes Master High Availability 高级实践》,介绍如何构建Kubernetes Master High Availability环境。 以下是分享实录: 大家好,我是才云科技的唐继...
摘要:源配置需要和先操作,在把源过去。总用量月月月安装引擎设置相关系统内核参数安装相关组件导入所需要的镜像为什么要导入镜像呢因为会去谷歌的镜像源上面下载,大家都懂得所以我下载下来,使用的时候直接导入就好了。 2019年3月6日:出版安装kubeadmin部署k8s集群教程 本次安装采用kubeadmin ! 安装的k8s版本为1.13.3版,是当前最新版本! 本篇文章,所使用的任何镜像和ya...
阅读 3907·2021-11-25 09:43
阅读 2635·2021-11-18 13:11
阅读 2327·2019-08-30 15:55
阅读 3308·2019-08-26 11:58
阅读 2872·2019-08-26 10:47
阅读 2275·2019-08-26 10:20
阅读 1311·2019-08-23 17:59
阅读 3065·2019-08-23 15:54
极致性价比!云服务器续费无忧!
Tesla A100/A800、Tesla V100S等多种GPU云主机特惠2折起,不限台数,续费同价。
NVIDIA RTX 40系,高性价比推理显卡,满足AI应用场景需要。
乌兰察布+上海青浦,满足东推西训AI场景需要