Skip to content

Commit

Permalink
Update format
Browse files Browse the repository at this point in the history
  • Loading branch information
mozhuli committed Apr 26, 2018
1 parent 52b671f commit cff904c
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 20 deletions.
16 changes: 8 additions & 8 deletions introduction/administrative-considerations.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@

  现在我们将从网络管理角度简要讨论您应该注意的一些方面。大多数这些问题对于多主机部署同样重要:

- IP地址分配
## IP地址分配

  当容器频繁创建、销毁时候,手动分配IP地址是不可持续的,桥接模式在一定程度上解决了这个问题。为了防止本地网络上的ARP冲突,Docker守护程序从分配的IP地址生成一个MAC地址。
  当容器频繁创建、销毁时候,手动分配IP地址是不可持续的,桥接模式在一定程度上解决了这个问题。为了防止本地网络上的ARP冲突,Docker守护程序从分配的IP地址生成一个MAC地址。

- 管理端口
## 管理端口

  有两种管理端口的方法:固定端口分配或端口动态分配。对于桥接模式,Docker可以自动分配(UDP或TCP)端口,从而使其可路由。像Kubernetes这样的系统采用扁平的IP容器网络模式,不会遇到这个问题。
  有两种管理端口的方法:固定端口分配或端口动态分配。对于桥接模式,Docker可以自动分配(UDP或TCP)端口,从而使其可路由。像Kubernetes这样的系统采用扁平的IP容器网络模式,不会遇到这个问题。

- 网络安全
## 网络安全

  开箱即用,Docker启用了[容器间通信](https://docs.docker.com/network/)(意味着缺省值为--icc=true)。这意味着主机上的容器可以互相通信而没有任何限制,这可能会导致拒绝服务攻击。此外,Docker通过--ip_forward和--iptables标志来控制容器间和容器与容器外的通信。一种好的做法是,您应该研究这些标志的默认设置,根据公司的实际安全策略在Docker守护程序中设置它们。
  开箱即用,Docker启用了[容器间通信](https://docs.docker.com/network/)(意味着缺省值为--icc=true)。这意味着主机上的容器可以互相通信而没有任何限制,这可能会导致拒绝服务攻击。此外,Docker通过--ip_forward和--iptables标志来控制容器间和容器与容器外的通信。一种好的做法是,您应该研究这些标志的默认设置,根据公司的实际安全策略在Docker守护程序中设置它们。

  [CRI-O](http://cri-o.io)这样的系统,使用的是容器运行时接口(CRI),没有像Docker这样有功能庞大的守护进程,像较于Docker,可能会暴露更小的攻击面。
  [CRI-O](http://cri-o.io)这样的系统,使用的是容器运行时接口(CRI),没有像Docker这样有功能庞大的守护进程,像较于Docker,可能会暴露更小的攻击面。

  另一个网络安全方面是线上加密,通常意味着[RFC 5246](https://tools.ietf.org/html/rfc5246)标准的TLS/SSL。
  另一个网络安全方面是线上加密,通常意味着[RFC 5246](https://tools.ietf.org/html/rfc5246)标准的TLS/SSL。
4 changes: 2 additions & 2 deletions introduction/single-host.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

***分布式系统和数据局部性:***

使用分布式系统(用于计算或存储)的基本思想是受益于并行处理,通常与数据局部性相对应。就数据局部性而言,我的意思是将代码传送到数据所在的位置,而不是(传统的)其他方式。
  *使用分布式系统(用于计算或存储)的基本思想是受益于并行处理,通常与数据局部性相对应。就数据局部性而言,我的意思是将代码传送到数据所在的位置,而不是(传统的)其他方式。*

此时你可以想一下:如果数据集大小在TB范围内,并且代码大小以MB为单位,那么在集群中移动代码比将所有数据传输到中央处理位置更有效。 除了能够并行处理事物之外,通常可以通过分布式系统获得容错能力,因为系统的某些部分可以或多或少独立地继续工作。
  *此时你可以想一下:如果数据集大小在TB范围内,并且代码大小以MB为单位,那么在集群中移动代码比将所有数据传输到中央处理位置更有效。 除了能够并行处理事物之外,通常可以通过分布式系统获得容错能力,因为系统的某些部分可以或多或少独立地继续工作。*

  简而言之,Docker网络是Docker原生提供的本地容器SDN解决方案。
20 changes: 10 additions & 10 deletions motivation/container-networking-stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@

  容器网络技术栈包含以下内容:

- 低层网络层
## 低层网络层

  包括网络设备,iptables,路由,IPVLAN和Linux命名空间。除非你从事容器网络相关的工作,否则通常不需要知道该层的细节,但至少应该知道这一点。请注意,这里的技术已经存在并被使用了十年以上。
  包括网络设备,iptables,路由,IPVLAN和Linux命名空间。除非你从事容器网络相关的工作,否则通常不需要知道该层的细节,但至少应该知道这一点。请注意,这里的技术已经存在并被使用了十年以上。

- 容器网络层

  该层提供了一些抽象,如单主机桥接网络模式和多主机IP-per-container解决方案。我将在第2章和第3章中介绍了这一层。
## 容器网络层

- 容器编排层:

  在这里,容器调度程序在调度容器的时候需要由较低层提供部分网络信息。在第4章中,我们将简要介绍下容器编排系统,在第5章中我们将重点讨论服务发现方面的内容。第6章讨论容器网络标准CNI,最后在第7章讨论Kubernetes网络。
  该层提供了一些抽象,如单主机桥接网络模式和多主机IP-per-container解决方案。我将在第2章和第3章中介绍了这一层。

## 软件定义网络
## 容器编排层

  SDN实际上是一个营销术语。采用SDN,网络管理团队变得更加敏捷,并且可以对不断变化的业务需求做出更快的反应。 SDN是使用软件对网络进行配置,无论是通过API补充[网络功能虚拟化](https://en.wikipedia.org/wiki/Network_function_virtualization)还是通过软件构建网络。特别是如果您是开发人员或架构师,我建议您快速浏览思科对此主题的[精彩概述](https://www.cisco.com/web/solutions/trends/sdn/index.html)以及SDxCentral的文章“[什么是软件定义的网络(SDN)](https://bit.ly/2jvUkiO)?”
  在这里,容器调度程序在调度容器的时候需要由较低层提供部分网络信息。在第4章中,我们将简要介绍下容器编排系统,在第5章中我们将重点讨论服务发现方面的内容。第6章讨论容器网络标准CNI,最后在第7章讨论Kubernetes网络。

***软件定义网络***

  *SDN实际上是一个营销术语。采用SDN,网络管理团队变得更加敏捷,并且可以对不断变化的业务需求做出更快的反应。 SDN是使用软件对网络进行配置,无论是通过API补充[网络功能虚拟化](https://en.wikipedia.org/wiki/Network_function_virtualization)还是通过软件构建网络。特别是如果您是开发人员或架构师,我建议您快速浏览思科对此主题的[精彩概述](https://www.cisco.com/web/solutions/trends/sdn/index.html)以及SDxCentral的文章“[什么是软件定义的网络(SDN)](https://bit.ly/2jvUkiO)?”*

  如果你在网络运维团队,那么你可能很乐意马上阅读下一章。 但是,如果您是架构师或开发人员,并且您的网络知识可能有点生疏,我建议在大概学习完[Linux网络管理员指南](http://www.tldp.org/LDP/nag2/nag2.pdf)之后进行下一步学习。

0 comments on commit cff904c

Please sign in to comment.