Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)

上一节我们部署了 Calico 网络,今天将运行容器并分析 Calico 的网络结构。

在 host1 中运行容器 bbox1 并连接到 cal_net1:

docker container run --net cal_net1 --name bbox1 -tid busybox

查看 bbox1 的网络配置。

cali0 是 calico interface,分配的 IP 为 192.168.119.2。cali0 对应 host1 编号 11 的 interface cali5f744ac07f0

host1 将作为 router 负责转发目的地址为 bbox1 的数据包。

所有发送到 bbox1 的数据都会发给 cali5f744ac07f0,因为 cali5f744ac07f0 与 cali0 是一对 veth pair,bbox1 能够接收到数据。

host1 网络结构如图所示:

接下来我们在 host2 中运行容器 bbox2,也连接到 cal_net1:

docker container run --net cal_net1 --name bbox2 -tid busybox

IP 为 192.168.183.65

host2 添加了两条路由:

  1. 目的地址为 host1 容器 subnet 192.168.119.0/26 的路由。
  2. 目的地址为本地 bbox2 容器 192.168.183.65 的路由。

同样的,host1 也自动添加了到 192.168.183.64/26 的路由。

完成了上面这些准备工作,下一节我们将讨论 Calico 网络的连通性。

时间: 2024-08-26 00:14:18

Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)的相关文章

如何定制 Calico 的 IP 池?- 每天5分钟玩转 Docker 容器技术(71)

在前面的小节中,我们没有特别配置,calico 会为自动为网络分配 subnet,当然我们也可以定制. 首先定义一个 IP Pool,比如: cat << EOF | calicoctl create -f - - apiVersion: v1 kind: ipPool metadata: cidr: 17.2.0.0/16 EOF 用此 IP Pool 创建 calico 网络. docker network create --driver calico --ipam-driver cali

k8s 各种网络方案 - 每天5分钟玩转 Docker 容器技术(170)

网络模型有了,如何实现呢? 为了保证网络方案的标准化.扩展性和灵活性,Kubernetes 采用了 Container Networking Interface(CNI)规范. CNI 是由 CoreOS 提出的容器网络规范,它使用了插件(Plugin)模型创建容器的网络栈. CNI 的优点是支持多种容器 runtime,不仅仅是 Docker.CNI 的插件模型支持不同组织和公司开发的第三方插件,这对运维人员来说很有吸引力,可以灵活选择适合的网络方案. 目前已有多种支持 Kubernetes

Network Policy - 每天5分钟玩转 Docker 容器技术(171)

Network Policy 是 Kubernetes 的一种资源.Network Policy 通过 Label 选择 Pod,并指定其他 Pod 或外界如何与这些 Pod 通信. 默认情况下,所有 Pod 是非隔离的,即任何来源的网络流量都能够访问 Pod,没有任何限制.当为 Pod 定义了 Network Policy,只有 Policy 允许的流量才能访问 Pod. 不过,不是所有的 Kubernetes 网络方案都支持 Network Policy.比如 Flannel 就不支持,Ca

如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)

Rex-Ray 是一个优秀的 Docker volume driver,本节将演示其安装和配置方法. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单,在需要使用 Rex-Ray driver 的主机 docker1 和 docker2 上运行如下命令: curl -sSL https://dl.bintray.com/emccode/rexray/install | sh - 然后创建并编辑 Rex-Ray 的配置文件 /etc/rexray/c

新书发布《每天5分钟玩转Docker容器技术》

后台不时收到关于纸质版教程书籍的询问,今天终于可以给大家一个交代了. <每天5分钟玩转Docker容器技术>现已在各大书城上架. 比较了一下,目前京东上最实惠:https://item.jd.com/16936307278.html 下面回答几个大家可能关心的问题. 1. 这本书包含哪些内容? 按照年初的计划,整个教程会涵盖容器生态系统中最重要的容器技术和平台技术. 由于版面篇幅的限制,这次出版的<每天5分钟玩转Docker容器技术>内容就是容器技术部分,具体内容如下: 平台技术部

万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)

前面的 ELK 中我们是用 Filebeat 收集 Docker 容器的日志,利用的是 Docker 默认的 logging driver json-file,本节我们将使用 fluentd 来收集容器的日志. Fluentd 是一个开源的数据收集器,它目前有超过 500 种的 plugin,可以连接各种数据源和数据输出组件.在接下来的实践中,Fluentd 会负责收集容器日志,然后发送给 Elasticsearch.日志处理流程如下: 这里我们用 Filebeat 将 Fluentd 收集到的

ELK 完整部署和使用 - 每天5分钟玩转 Docker 容器技术(90)

上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示. 几乎所有的软件和应用都有自己的日志文件,容器也不例外.前面我们已经知道 Docker 会将容器日志记录到 /var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log,那么只要我们能够将此文件发送给 ELK 就可以实现日志管理. 要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日

初探 ELK - 每天5分钟玩转 Docker 容器技术(89)

在开源的日志管理方案中,最出名的莫过于 ELK 了.ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch一个近乎实时查询的全文搜索引擎.Elasticsearch 的设计目标就是要能够处理和搜索巨量的日志数据. Logstash读取原始日志,并对其进行分析和过滤,然后将其转发给其他组件(比如 Elasticsearch)进行索引或存储.Logstash 支持丰富的 Input 和 Output 类型,能够处理各种应用的日志. Kiba

部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 Dashboard.本节将实践用 Graylog 来管理 Docker 日志. Graylog 架构 Graylog 架构如下图所示: Graylog 负责接收来自各种设备和应用的日志,并为用户提供 Web 访问接口. Elasticsearch 用于索引和保存 Graylog 接收到的日志. MongoDB 负责保存 Graylog 自身的配置信息. 与 ELK 一样,Graylog 的部署方案很灵

如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-address=udp://localhost:12201 \ --log-opt tag="log-test-container-A" \ busybox sh -c 'while true; do echo "This is a log message from container A&