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

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

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

之前一直在向大家介绍基于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
复制
docker swarm init

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

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

其他节点分别加入Swarm集群

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

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

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

在节点上创建网络

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

代码语言:shell
复制
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
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念解析
  • 环境配置
  • 初始化Swarm集群服务
  • 其他节点分别加入Swarm集群
  • 在节点上创建网络
  • 测试跨主机网络连通性
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com