一文搞懂Kubernetes网络策略(下)

从CNCF基金会的成立,到Kubernetes社区蓬勃发展,历经6载,17年异军突起,在mesos、swarm等项目角逐中,拔得头筹,继而一统容器编排,其成功的关键缘由可归纳为如下几点:git

  • 项目领导者们的坚守与远见
  • 社区的良好的运做与社区文化
  • 社区与企业落地的正反馈

今天zouyee为你们带来《一文搞懂Kubernetes网络策略(下)》,其中《kuberneter调度由浅入深:框架》正在编写中,敬请期待,当前涉及版本均为1.20.+github

4、NetworkPolicy 开发

​ 实现一个支持 Network Policy 的网络扩展须要至少包含两个组件api

  • CNI 网络插件:负责给 Pod 配置网络接口
  • Policy controller:监听 Network Policy 的变化,并将 Policy 应用到相应的网络接口

img

性能测试

下图基于Kubernetes 1.19版本测试了如下特性:安全

1)MTU auto configmarkdown

2) 带宽性能: Pod to Pod、Pod to Service(TCP、UDP)网络

3)资源消耗: Pod to Pod、Pod to Service(TCP、UDP)框架

4)安全特性:Network Policies、 Encryption等工具

Image for post

calico其余详细的能力说明,可参看官网。oop

5、将来展望
a. SCTP特性

支持版本: Kubernetes v1.19 [beta]post

做为一个 Beta 特性,SCTP 默认是被启用的。 要在集群层面禁用 SCTP,须要为 kube-apiserver关闭特性--feature-gates=SCTPSupport=false,... 以禁用 SCTP 。 启用该特性后,用户能够将 NetworkPolicy 的 protocol 字段设置为 SCTP

⚠️ CNI插件须要支持SCTP协议

b. 待开发

截止Kubernetes v1.20 ,NetworkPolicy API 还不支持下述功能。

  • 强制集群内部流量通过某公用网关(可经过服务网格或其余代理来实现)
  • 与 TLS 相关的场景(可以使用服务网格或者 Ingress 控制器)
  • 实现适用于全部名字空间或 Pods 的默认策略(如calico)
  • 高级的策略查询或者策略验证相关工具(如calico)
  • 在同一策略声明中选择目标端口范围的能力
  • 生成网络安全事件日志的能力(例如,被阻塞或接收的链接请求)
  • 禁止本地回路或指向宿主的网络流量(Pod 目前没法阻塞 localhost 访问, 它们也没法禁止来自所在节点的访问请求)。

上述需求能够经过操做系统组件(如 SELinux、OpenVSwitch、IPTables 等) 或者七层技术(Ingress 控制器、服务网格实现)及准入控制器进行功能加强,固然有兴趣的能够参考calico及OPA项目。

后续相关内容,请查看公众号:DCOS

6、参考文档
相关文章
相关标签/搜索