Docker与Kubernetes系列(七): Docker Swarm

这段时间工作中用到了Docker以及Kubernetes(简称K8S),现在整理下我学习Docker以及K8S过程中看的一些比较好的资料,方便自己回顾,也希望能给容器小白一些帮助。给自己定一个小目标,二月底之前完成。


这是本系列的第七篇文章, 先不介绍K8S了, 我打算先来介绍Docker Swarm(K8S以后再说吧)。

本篇文章基本翻译和总结自Docker官方文档, 做了精简和改动。


一、Swarm的一些核心概念

Docker engine中已经内嵌了集群管理和编排的特性,加入到集群中的docker engine就是以swarm模式运行的。 我们可以以初始化一个swarm或者加入一个swarm的方式来使docker engine进入swarm模式。

一个Swarm就是一个docker engine的集群,我们可以在上面部署services。 我们也可以同时在同一台Docker实例上部署service和单独的docker容器。

Node


一个节点就是一台加入到swarm中的docker实例。
要在swarm上部署应用,我们需要向集群的管理节点提交我们对service的定义, manager node会把一个个的task(下文会说到)分发到集群的工作节点上。默认情况下,manager node同时也是一个worker node。

Service和Task


service是对于要运行在worker node上的task的定义, 当我们创建一个service的时候,我们需要制定要run哪个image,以及在这个container里要run什么commands。

在replicated service模式下,manager node会根据我们scale的大小来决定在各个节点上运行多少个task。

一个task包含一个docker容器以及在这个容器中要运行的指令。 它是swarm调度的原子单位。

Swarm模式有一个内部的DNS组件,这个组件可以自动把Swarm内的每个service作为一个DNS入口,manager node使用内部的负载均衡器把请求分发给各个worker node。


二、在Swarm上部署一个service


我们需要做以下的事情:
  • 初始化一个以swarm模式运行的docker engine集群
  • 向这个集群中加入两个worker node
  • 部署一个service

初始化Swarm


首先我们通过SSH登录到用来做manager node的机器上, 如 ssh root@10.66.137.222

然后运行以下指令创建一个swarm:

docker swarm init --advertise-addr 10.66.137.222

加入Worker nodes


我们在manager node上运行以下指令:
docker swarm join-token worker,
会输出:

docker swarm join \
    --token XXX \
    10.66.137.222:2377

这就是我们要在worker node上要运行的指令, 运行之后, worker node 就加入到了这个swarm集群中。

加入之后,在manager node上运行 docker node ls, 会有类似以下输出:

[root@localhost ~]# docker node ls
ID                           HOSTNAME               STATUS  AVAILABILITY  MANAGER STATUS
dsu1tginb4deet36qqzo4bbr3    localhost.localdomain  Ready   Active        Reachable
t2213ncsiy7oxfg73umm7fnyh    localhost.localdomain  Ready   Active
wbbl4h5qldptdaq6ogawvonhi *  localhost.localdomain  Ready   Active        Leader

部署service


比如 : docker service create --replicas 3 --name my-web -p 8080:80 nginx
我通过--replicas来定义task的数量,通过-p来使外部可以访问。之后我就可以通过http://10.66.137.222:8080/ 来访问到我的服务了:



  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于DockerKubernetes,以下是我推荐的一些书籍: 1. 《Docker入门与实践》 - 这本书是学习和理解Docker的绝佳起点。它从基础概念开始,详细介绍了Docker的核心功能,包括容器的创建、管理和部署。此外,它还涵盖了Docker的生态系统和实践案例,帮助读者快速上手并应用Docker。 2. 《Kubernetes权威指南》 - 这本书是学习和使用Kubernetes的权威指南。它从Kubernetes的架构和核心概念开始,然后逐步介绍了集群的创建、应用和管理。此外,它还涵盖了高级特性如自动扩展、负载均衡和监控,以及运维实践和实例分析,帮助读者深入理解和应用Kubernetes。 3. 《Docker容器与容器云》 - 这本书全面介绍了Docker容器技术和容器云平台。它从容器的基本概念和Docker的安装开始,然后深入介绍了容器的创建、管理和监控,以及Docker Compose和Docker Swarm等工具的使用。此外,它还涵盖了容器云平台的架构和应用,帮助读者理解和应用容器技术在云端的实际场景。 4. 《Kubernetes in Action(实战Kubernetes)》 - 这本书是学习和应用Kubernetes的实战指南。它以场景驱动的方式介绍了Kubernetes的核心概念和实践,包括应用的构建、部署和管理,以及监控、日志和运维等方面。此外,它还涵盖了CI/CD集成、安全性和最佳实践,帮助读者在实际项目中使用Kubernetes。 这些书籍涵盖了DockerKubernetes的基础知识、实践技巧和高级特性,适合初学者和有一定基础的开发人员或运维人员阅读。读者可以根据自己的需求和水平选择适合自己的书籍,加深对DockerKubernetes的理解和应用能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈鸿斌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值