开始
在搭建Kubernetes的环境的时候,你可能会遇到一些问题,不!你会遇到很多问题。比如,首先你要实现跨物理机的容器访问——是不同物理内的容器能够互相访问,而不是你平常所看到的乱七八糟的端口映射。方案有很多,比如OVS、flannel、socketplane什么的,下面是我搭建etcd和flannel的过程,希望对需要这样的环境的人有所帮助,少走弯路。再说一次:跨物理机的容器之间能直接访问
架构
实验的架构非常简单,三台机器,为了简化,我只设置了一台etcd,没有做集群,三台机器安装flannel和Docker。
- 172.16.164.5 //etcd、flannel、docker
- 172.16.164.6 //flannel、docker
- 172.16.164.7 //flannel、docker
安装etcd
- 172.16.164.5
etcd的安装是尤其简单的——如果你有的话,下载二进制直接运行就是了,在这里我设置成了一个新的集群。
二进制的程序可以直接启动,为了方便,我们将其加入Systemd管理,并且为了以后扩展,我还设置了集群,大家可以不必添加集群设置。#也许你需要,github使用的是amazon的s3存储 wget https://github.com/coreos/etcd/releases/download/v2.3.2/etcd-v2.3.2-linux-amd64.tar.gz tar xvf etcd-v2.3.2-linux-amd64.tar.gz cd etcd-v2.3.2-linux-amd64 mv etcd* /usr/bin
添加后执行cat /usr/lib/systemd/system/etcd.service [Unit] Description=etcd [Service] Environment=ETCD_NAME=kubernetes Environment=ETCD_DATA_DIR=/var/lib/etcd Environment=ETCD_LISTEN_CLIENT_URLS=http://172.16.164.5:4001,http://localhost:4001 Environment=ETCD_LISTEN_PEER_URLS=http://172.16.164.5:7001,http://localhost:7001 Environment=ETCD_INITIAL_ADVERTISE_PEER_URLS=http://172.16.164.5:7001,http://localhost:7001 Environment=ETCD_ADVERTISE_CLIENT_URLS=http://172.16.164.5:4001,http://localhost:4001 Environment=ETCD_INITIAL_CLUSTER_STATE=new Environment=ETCD_INITIAL_CLUSTER_TOKEN=Kubernetes Environment=ETCD_INITIAL_CLUSTER=kubernetes=http://172.16.164.5:7001,kubernetes=http://localhost:7001 ExecStart=/usr/bin/etcd [Install] WantedBy=multi-user.target
systemctl start etcd
启动etcd,可以通过etcdctl ls /
或者etcdctl mkdir /test
测试etcd可用性。添加网段
确定etcd可以使用之后,我们需要设置分配给docker网络的网段etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16", "SubnetMin": "172.17.1.0", "SubnetMax": "172.17.254.0"}'
安装flannel
以下是旧内容,更新请看下一篇博文
- 172.16.164.5
- 172.16.164.6
- 172.16.164.7
三台主机都要执行
其实flannel也是和etcd一样,不用安装的,直接从官方下载二进制执行文件就可以了,当然,你也可以自己编译。
同样,我们添加一个flannel服务的System单元,简单的就可以。wget https://github.com/coreos/flannel/releases/download/v0.5.5/flannel-0.5.5-linux-amd64.tar.gz tar xvf flannel-0.5.5-linux-amd64.tar.gz mv flannel-0.5.5-linux-amd64 /opt/flannel
通过cat /usr/lib/systemd/system/flanneld.service [Unit] Description=flannel [Service] ExecStart=/opt/flannel/flanneld \ -etcd-endpoints=http://172.16.164.5:4001 [Install] WantedBy=multi-user.target
systemctl start flanneld
启动服务,正常情况下,你执行ip a
已经可以看到flannel0
桥接网卡了,etcd上执行etcdctl ls /coreos.com/network/subnets
也能够看到flannel申请的网段。修改Docker参数
要像使docker使用flannel的网络传递数据,要修改一些启动参数。
通过cd /opt/flannel/ ./mk-docker-opts.sh -i
mk-docker-opts.sh --help
可一直到这个脚本会生成一些docker参数,放到/run/docker_opts.env文件中,我们只需要将这些参数,加入到docker的启动参数cat /etc/sysconfig/docker | grep OPT OPTIONS='--selinux-enabled --bip=172.17.64.1/24 --ip-masq=true --mtu=1472'
配置完毕后,便可以启动docker了。
sytemctl stop docker
ifconfig down docker0
systemctl start docker
ip a s docker0
#可以看到docker0已经获取了flannel网段的地址
最后
三台机器都配置好了之后,我们在三台机器上分别开启一个docker容器,测试它们的网络是不是通的。
docker run -ti centos bash
#一次查看容器IP
cat /etc/hosts
172.17.97.2 334cec104721
#测试连通性,都成功就OK了
#到跨物理机容器
ping -c 1 172.16.164.7
ping -c 1 172.17.67.1
#到宿主机
ping -c 1 172.16.164.7
#到别的物理机
ping -c 1 172.16.164.6
很多东西还需要继续学(zhe)习(teng),本文就到此结束了,如果你什么建议或者意见,可以评论留言,如果对你能产生帮助,欢迎打赏●v●
文/岦_(简书作者)
原文链接:http://www.jianshu.com/p/a2039a8855ec
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/a2039a8855ec
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
http://www.iyunv.com/thread-58817-1-1.html
http://blog.liuker.cn/index.php/docker/30.html
http://www.cnblogs.com/xuxinkun/p/5696031.html
http://www.dataguru.cn/thread-581573-1-1.html
相关推荐
yum -y install --enablerepo=virt7-docker-common-release kubernetes etcd flannel ``` 3. **修改配置文件**: - 对于Kubernetes、Etcd、Flannel等组件,需要根据实际情况进行相应的配置调整。 ### 第二种方式...
1、系统环境: centos 7 纯净系统; 2、只适用部署1台master + 2台node ; 3、在脚本 install-etcd-flannel-k8s.sh 中设置 3台的IP; 4、做好master到两台node的免密登陆; 5、将安装包放在master上,直接执行bash ...
在本教程中,我们将深入探讨如何在 CentOS 7 环境中安装 Kubernetes (k8s) 版本 1.14.1。Kubernetes 是一个强大的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。在开始之前,请确保所有服务器已更新至...
这次的分享内容将从Flannel的介绍、工作原理及安装和配置三方面来介绍这个工具的使用方法。 Flannel通过给每台宿主机分配一个子网的方式为容器提供虚拟网络,它基于Linux TUN/TAP,使用UDP封装IP包来创建overlay网络...
- etcd 3.1.5 和 flannel 0.7 vxlan 版本已准备好。 - 网络连接正常且有足够的资源支持 Kubernetes 的运行。 2. **软件版本确认**: - Kubernetes 1.6.0 - Docker 1.12.5 - etcd 3.1.5 - Flannel 0.7 vxlan ...
本文将详细介绍在CentOS 7上安装和配置k8s集群的步骤。 首先,了解为何选择Kubernetes而非其他容器管理工具,如Docker Swarm。虽然Docker Swarm易于使用,但在特定情况下,例如VIP负载均衡问题或端口映射错误,可能...
Kubernetes 是goole开源的大规模容器集群管理系统,使用centos7 自带的Kubernetes 组件、分布式键值存储系统etcd 以及flannel 实现Docker容器中跨容器访问
在部署Flannel时,我们需要配置Kubernetes API服务器以启用网络插件,并在每个节点上安装和配置Flannel。这通常涉及以下几个步骤: 1. 安装Flannel二进制文件。 2. 配置Flannel以连接到Etcd并获取网络配置。 3. 在...
### CentOS 7.5 安装 K8S v1.11.0 集群部署 #### 一、概述 随着容器技术的发展,越来越多的企业选择使用容器化部署应用程序以提高资源利用率和应用的可移植性。Kubernetes(简称 K8S)作为目前最流行的容器编排...
在IT行业中,Linux系统是服务器领域广泛采用的操作系统,尤其在云计算、容器化技术中扮演着核心角色...通过深入理解Kubernetes、CentOS7和脚本背后的逻辑,开发者和运维人员可以更好地管理和维护自己的Kubernetes集群。
在本例中,我们有两个 Node 节点,所有节点都需要安装 etcd,Master 节点还负责运行 kube-apiserver、kube-controller-manager 和 kube-scheduler。 Kubernetes 的网络模型采用的是 flannel 网络插件,它提供了一种...
所有主机上都安装了 Kubernetes 1.17.3 版本,以及 Docker 19.03.7 和 Flannel v0.11.0 版本。etcd 的版本为 3.4.4。这些组件共同构成了一个完整的 Kubernetes 集群环境。 ### 2. 高可用架构 #### 2.1 高可用架构...
三、Docker的安装四、Docker容器在不同宿主机间通信4.1、不同宿主机间容器通信原理图4.2、不同宿主机间容器通信安装部署4.2.1、宿主机环境准备4.2.2、安装Etcd4.2.3、安装Flannel4.2.4、配置docker0虚拟网桥4.2.5、...
由于CentOS 7自2015年9月起已将Kubernetes加入官方源,因此可以直接通过CentOS的YUM源进行安装。 #### 二、服务器环境准备 1. **关闭防火墙**: - 使用`systemctl stop firewalld`命令临时关闭防火墙。 - 使用`...
- 安装Flannel并配置etcd以存储网络配置。 6. 启动Flannel和Docker以及Kubernetes相关的服务,并重启Docker和Kubernetes服务以使配置生效。 7. 查看集群状态: - 使用`kubectl get nodes`命令查看集群节点的状态...
2. **网络插件**:选择和安装合适的网络插件,如Calico、Flannel或Weave Net,以实现Pod间的网络通信。 3. **初始化集群**:运行`kubeadm init`命令,这会创建控制平面节点,生成配置文件,并将必要的Pod调度到该...