在bare mental上部署私有化的容器平台,由于资源池计算节点都是在一个IP段内(小一点是一个C段),在上面部署的应用系统A如果要访问自己的数据库X,就得开通整个IP段的硬件层面防火墙策略,这样另一个应用系统B其实也能访问数据库X(网络层面)。有了Kubernetes,我们可以尝试解决这个应用访问隔离的问题。

Network Policy,kubernetes的网络资源

Network policy(下文简称为np)的本质是通过Kubernetes(下文简称k8s)的网络插件,创建一系列的网络规则,实现细粒度控制出入口流量,从而解决应用访问隔离的问题。因此选用哪种k8s网络方案很重要,如果这个方案没有实现np,那么k8s就不具备应用访问隔离的能力了,具体可以参见官方文档

GKE Demo

谷歌家的GKE可以通过命令创建一个开启network policy的k8s集群,它选用的calico网络方案的实现,目前开源世界里支持 NetworkPolicy 最好的解决方案了。为此,我创建了一个git repo,里面有基于GKE的详细例子:

https://github.com/nevermosby/k8s-network-policy101

还包括以下内容:

  • 创建带特别标签(label)的workload:pod和namespace
  • pod level
    • ingress example
    • egress example
  • namespace level
    • ingress example
    • egress example
  • 企业内使用的默认网络策略:默认无法访问集群外服务,需手动配置白名单;集群内跨namespace可通

2 对 “Kubernetes Network Policy 101”的想法;

发表评论

电子邮件地址不会被公开。 必填项已用*标注