Docker-进阶知识

2021/7/7 Docker
// Swarm 容器编排,Docker 内置
1. 产生背景
  1. 怎么去管理这么多容器?
  2. 怎么能方便的横向扩展?
  3. 如果容器 down 了,怎么能自动恢复?
  4. 如何去更新容器而不影响业务
  5. 如何去监控追踪这些容器?
  6. 怎么去调度容器的创建?
  7. 保护隐私数据?
2. 底层架构
  1. Manager:相当于 Swarm 的大脑,至少有两个,数据通过一个分布式数据库进行同步(Raft consensus group)
  2. Worker:相当于各个容器,干活的节点,节点通过网络(Gossip Network)进行数据同步
3. 相关命令
  1. docker swarm init --advertise-addr=192.168.205.10 // 初始化 manager 节点
  2. docker swarm join --token... // 初始化 worker 节点,这条命令在运行 1 命令后会在控制台打印可直接复制
  3. docker node ls // 查看 swarm 的节点
  // 在 swarm 下使用 service 相当于在本地使用 run 命令,--mount 相当于在本地使用的 -v
  4. docker service create --mount type=volume,soure=data,destination=/var/lib/data busybox
  5. docker service ls // 查看 service 列表
  6. docker service scale test=5 // 扩展 5 台 service,当某个 service down 掉,swarm 会自动再启动一台 service
  7. docker service rm test // 删除 test service
  8. docker service update --image imgName serviceName // 更新,不会宕机,可以更新端口等内容
4. Routing Mesh 的两种体现
  1. Internal:Container 和 Container 之间的访问通过 overlay 网络(通过 VIP 虚拟 IP2. Ingress:如果服务有绑定接口,则此服务可以通过任意 swarm 节点的相应接口访问
5. Docker Secret
  1. 存在 Swarm Manager 节点 Raft ddatabase 里
  2. Secret 可以 assign 给一个 service,这个 service 就能看到这个 secret
  3. 在 container 内部 Secret 看起来像文件,但是实际是在内存中
  4. 相关命令
    1. docker secret create name password // 文件方式创建:创建名称为 name 的 secret,文件是 password
    2. echo "123" | docker secret create name - // 命令行方式创建
    3. docker secret ls // 查看
    4. docker secret rm name // 删除
----------------------------------------------------------------------------------------------
// Docker Cloud(付费)
1. 提供容器的管理、编排、部署的托管服务
2. 可以监听 Docker hub,实现自动更新 image
----------------------------------------------------------------------------------------------
// Kubenetes(k8s)容器编排
1. 底层架构
  1. Master:相当于 k8s 的大脑
    1. API Server:可使 cli 或 Ui 通过 API 进行访问
    2. Scheduler:调度模块
    3. Controller:控制模块
    4. etcd:分布式存储
  2. Node:相当于各个节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Last Updated: 2024/7/31 12:57:25
    飘向北方
    那吾克热-NW,尤长靖