前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >腾讯云 Lighthouse 服务器 Docker 容器跨主机通信

腾讯云 Lighthouse 服务器 Docker 容器跨主机通信

原创
作者头像
若海
修改于 2024-04-25 03:07:23
修改于 2024-04-25 03:07:23
6480
举报
文章被收录于专栏:云原生拾遗云原生拾遗

之前一直在向大家介绍基于k3s实现的腾讯云Lighthouse集群使用方法,也有声音表示k8s太重了,能不能更轻量一些?答案当然是:可以!

今天,本文将探讨如何利用腾讯云Lighthouse服务器,在 Docker 应用镜像上创建一个 Swarm 集群的,并实现容器跨主机通信的能力。

概念解析

Swarm 是 Docker 官方提供的容器编排工具之一,用于管理多个 Docker 主机上运行的容器。它允许将多个 Docker 主机组成一个集群,并通过统一的接口来管理这些主机上的容器。Swarm 提供了高可用性、伸缩性和容错性,使得在生产环境中部署和管理容器化应用变得更加简单和可靠。

Overlay 网络是 Docker 提供的一种网络模型,采用了多种技术来实现容器间的通信,其中包括了本文中将使用的 VXLAN(Virtual Extensible LAN)技术,VXLAN 可以将容器的数据包封装在 UDP 数据包中,并在底层网络中传输,从而实现跨主机的容器通信。

环境配置

节点名

节点IP

节点服务

dnode0

10.0.0.11

重装为 Docker 应用镜像, 并初始化Swarm集群

dnode1

10.0.0.12

重装为 Docker 应用镜像

dnode2

10.0.0.13

重装为 Docker 应用镜像

在配置过程中,请确保将每个节点的hostname设置为不同的值,本例分别设置为 dnode0、dnode1、dnode2,并放行防火墙所需的端口:

  • TCP端口2376:用于安全的 Docker 客户端通信,这对于Docker Machine(用于编排Docker的主机)的正常运行是必需的。
  • TCP端口2377:用于Docker Swarm或集群中节点之间的通信,只需要在管理节点上打开。
  • UDP端口4789:用于覆盖网络流量(容器入口网络)。
  • TCP和UDP端口7946:用于节点之间的通信(容器网络发现)。

初始化Swarm集群服务

dnode0节点上执行以下命令来初始化Swarm集群:

代码语言:shell
AI代码解释
复制
docker swarm init

如果没有记住加入集群的token,可以通过以下命令重新获取:

代码语言:shell
AI代码解释
复制
docker swarm join-token worker

其他节点分别加入Swarm集群

在其他节点上执行加入Swarm集群的命令。假设已经获得了加入集群的token,然后在各节点上执行如下命令:

代码语言:shell
AI代码解释
复制
docker swarm join --token SWMTKN-1-tokenxxxxxxx 10.0.0.11:2377

确保将token替换为实际获得的值,并将IP地址替换为dnode0节点的IP地址。

在节点上创建网络

在Swarm集群中,可以创建overlay网络以实现容器间的跨主机通信。在主节点上执行以下命令:

代码语言:shell
AI代码解释
复制
docker network create --driver overlay --subnet=172.22.0.0/24 --gateway=172.22.0.1 --attachable ovnet

这将创建一个名为ovnet的overlay网络,其中包括了一个子网范围为172.22.0.0/24,并指定网关为172.22.0.1

测试跨主机网络连通性

在各个节点上创建容器,这些容器可以在overlay网络上互相通信。在各节点上执行如下命令:

代码语言:shell
AI代码解释
复制
docker run -it --rm --network ovnet --ip 172.22.0.5 alpine
docker run -it --rm --network ovnet --ip 172.22.0.6 alpine
docker run -it --rm --network ovnet --ip 172.22.0.7 alpine

这些命令将分别在overlay网络上创建了三个容器,它们分别具有IP地址为172.22.0.5172.22.0.6172.22.0.7,并且它们可以在Swarm集群中的不同节点上互相通信。

文章思路来自 若海の技术写真,有问题请留言。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
docker--搭建docker swarm集群
Swarm这个项目名称特别贴切。在Wiki的解释中,Swarm behavior是指动物的群集行 为。比如我们常见的蜂群,鱼群,秋天往南飞的雁群都可以称作Swarm behavior。 Swarm项目正是这样,通过把多个Docker Engine聚集在一起,形成一个大的docker- engine,对外提供容器的集群服务。同时这个集群对外提供Swarm API(命令,docker engine的命令),用户可以像使用Docker Engine一样使用Docker集群。
eadela
2019/11/26
1.1K0
docker-swarm
使用 label可以精细控制 Service 的运行位置呢。 逻辑分两步: 1、为每个 node 定义 label。 2、设置 service 运行在指定 label 的 node 上。
用户10325771
2023/03/01
6440
docker swarm 跨主机容器互联
docker swarm join --token SWMTKN-1-0p89ldytfq18roe0snxunylwq0q95um36qpnf896ogqil7uci5-0bw2g0fu2ug0ehf8vojo9s20t 192.168.1.21:2377
用户10125653
2022/11/10
1.4K0
docker swarm 跨主机容器互联
Docker集群网络的配置和使用
在大多数情况下,在一台机器上运行所有的应用程序通常是不实际的,这种情况下,您将需要一种方法来跨许多机器分发应用程序。
程序你好
2018/07/31
1.6K0
Docker集群网络的配置和使用
Docker Swarm——集群管理
前言 之前在总结docker machine的时候,当时对docker理解还不够深入,甚至还不知道 docker machine 与 docker swarm 的区别。 在查阅资料以及官方文档之后,今天基本彻底搞明白了。其实 docker machine 只是一个docker多节点的管理工具,它的作用是帮助我们在其他节点上安装docker、运行docker容器等;而 docker swarm 则是一个docker集群管理工具,有了它整个集群就能协同工作,从容器的角度来说有点像是openstack的感觉,能够
魏守峰
2018/04/28
1K0
Docker Swarm部署集群
Swarm是Docker的一个编排工具,参考官网:https://docs.docker.com/engine/swarm/
py3study
2020/03/05
3.8K0
Docker Swarm部署集群
DockerSwarm 集群环境搭建
Swarm 在 Docker 1.12 版本之前属于一个独立的项目,在 Docker 1.12 版本发布之后,该项目合并到了 Docker 中,成为 Docker 的一个子命令。目前,Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具。它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
程序员果果
2019/05/28
8170
理解Docker跨多主机容器网络
在Docker 1.9 出世前,跨多主机的容器通信方案大致有如下三种: 1、端口映射 将宿主机A的端口P映射到容器C的网络空间监听的端口P’上,仅提供四层及以上应用和服务使用。这样其他主机上的容器通过访问宿主机A的端口P实 现与容器C的通信。显然这个方案的应用场景很有局限。 2、将物理网卡桥接到虚拟网桥,使得容器与宿主机配置在同一网段下 在各个宿主机上都建立一个新虚拟网桥设备br0,将各自物理网卡eth0桥接br0上,eth0的IP地址赋给br0;同时修改Docker daemon的DOCKER_OPTS
Rainbond开源
2018/05/31
1.7K0
Docker Swarm 集群部署笔记
swarm集群分为管理节点和工作节点,管理节点可以操作swarm命令控制swarm集群,工作节点是用于运行服务的节点,理论上管理节点也可以是工作节点,一样可以用于运行服务。
张乘辉
2020/05/07
1.9K0
容器网络的跨宿主机通信
通过第一章容器网络基础的学习,我们已经实现了单机容器间的互通、容器访问外部网络及容器对外提供服务。 在实际的应用场景中,为了保证业务的高可用性,我们的容器多是跨宿主机部署的,并且部署在不同宿主机上的容器会进行大量的网络通信。那么,怎么实现容器的跨宿主机通信呢?
智零办法就是多
2022/04/14
1.9K0
Docker Swarm主机编排
Swarm 是 Docker 公司推出的用来管理 docker 集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm, 它是将一群 Docker 宿主机变成一个单一的虚拟主机,Swarm 使用标准的 Docker API 接口作为其前端的访问入口,换言之,各种形式的Docker Client (compose,docker-py等) 均可以直接与 Swarm 通信,甚至 Docker 本身都可以很容易的与 Swarm 集成,这大大方便了用户将原本基于单节点的系统移植到 Swarm 上,同时 Swarm 内置了对 Docker 网络插件的支持,用户也很容易的部署跨主机的容器集群服务。
星哥玩云
2022/09/15
1K0
容器集群管理工具 Docker Swarm
《Docker 镜像仓库基本使用》中有提到容器编排工具 docker compose ,不过只限于单机。
王二蛋
2024/05/04
2800
Docker Swarm 零基础入门
Docker Swarm 是 Docker 官方项目之一,提供 Docker 容器集群服务,是 Docker 官方对容器云生态进行支持的核心方案。使用它,用户可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平台。
羽月
2022/10/08
1.2K0
Docker Swarm 零基础入门
Docker Swarm 初步认识 及 集群搭建
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第23天,点击查看活动详情
鳄鱼儿
2024/05/22
2180
Docker Swarm 初步认识 及 集群搭建
Docker的集群实战之Swarm模式
随着业务规模的扩大,一台机器的Docker已经无法满足我们的要求,为了保证性能和高可用,Docker提供了一种叫Swarm的解决方案。
机智的程序员小熊
2019/12/12
1K0
Docker的集群实战之Swarm模式
《Docker极简教程》--Docker网络--Docker网络的配置和使用
创建自定义桥接网络 在Docker中,创建自定义桥接网络是一种常见的网络配置方式,特别适用于单主机环境,可以帮助容器相互通信并与外部网络进行通信。下面我将介绍如何在单主机上创建自定义桥接网络,并提供一个简单的例子。
喵叔
2024/05/24
2K0
7-docker容器的网络通信
Docker 网络从覆盖范围可分为单个 host 上的容器网络和跨多个 host 的网络,多host网络又分为原生网络和第三方网络,如下:
jackxiao
2021/11/16
6870
Docker 网络模型
单机容器内的通信是通过 docker 自带的网桥连接互通的,如果是集群,那么做这些单机网络模型就行不通了,因为集群必然会将一个服务的多个任务需要分布到不同的机器上进行部署,因为如果把所有的任务都分配到一台机器部署了,这台服务器有故障,就会导致这个服务不能正常运行了,而且一个集群内,不同主机之间的容器是怎么进行通信的呢,这里我们就涉及到 docker 网络模型。
张乘辉
2020/05/07
9410
Docker的集群实战之Swarm模式
随着业务规模的扩大,一台机器的Docker已经无法满足我们的要求,为了保证性能和高可用,Docker提供了一种叫Swarm的解决方案。 他可以跨多个Docker主机来部署容器,具有完备的安全机制、内置负载均衡器;支持扩缩容、升级和回滚。 这次让我们用Swarm来部署一个2节点集群,并使用其负载均衡特性部署一个2副本Web应用。 何谓Swarm? 一个Swarm集群由一个或多个Docker节点组成。这些节点可以是物理机、虚拟机等。只要保证节点之间的网络通畅即可。Docker Swarm的结构如下:
腾讯云TStack
2019/08/09
1.8K0
Docker的集群实战之Swarm模式
Docker Swarm搭建集群和常用命令操作
Docker自诞生以来,其容器特性以及镜像特性给DevOps爱好者带来了诸多方便。然而在很长的一段时间内,Docker只能在单host上运行,其跨host的部署、运行与管理能力颇受外界诟病。跨host能力的薄弱,直接导致Docker容器与host的紧耦合,这种情况下,Docker容器的灵活性很难令人满意,容器的迁移、分组等都成为很难实现的功能点。
菲宇
2022/12/21
7720
相关推荐
docker--搭建docker swarm集群
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档