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

Network Policy 是 Kubernetes 的一种资源。Network Policy 经过 Label 选择 Pod,并指定其余 Pod 或外界如何与这些 Pod 通讯。html

默认状况下,全部 Pod 是非隔离的,即任何来源的网络流量都可以访问 Pod,没有任何限制。当为 Pod 定义了 Network Policy,只有 Policy 容许的流量才能访问 Pod。git

不过,不是全部的 Kubernetes 网络方案都支持 Network Policy。好比 Flannel 就不支持,Calico 是支持的。咱们接下来将用 Canal 来演示 Network Policy。Canal 这个开源项目颇有意思,它用 Flannel 实现 Kubernetes 集群网络,同时又用 Calico 实现 Network Policy。github

部署 Canal

部署 Canal 与部署其余 Kubernetes 网络方案很是相似,都是在执行了 kubeadm init 初始化 Kubernetes 集群以后经过 kubectl apply 安装相应的网络方案。也就是说,没有太好的办法直接切换使用不一样的网络方案,基本上只能从新建立集群。api

要销毁当前集群,最简单的方法是在每一个节点上执行 kubeadm reset。而后就能够按照咱们在前面 “部署 Kubernetes Cluster” 一章的 “初始化 Master” 小节中的方法初始化集群。网络

kubeadm init --apiserver-advertise-address 192.168.56.105 --pod-network-cidr=10.244.0.0/16

而后按照文档 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/ 安装 Canal。文档列出了各类网络方案的安装方法:app

执行以下命令部署 Canalspa

kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.7/rbac.yaml
kubectl apply -f https://raw.githubusercontent.com/projectcalico/canal/master/k8s-install/1.7/canal.yaml

部署成功后,能够查看到 Canal 相关组件:code

Canal 做为 DaemonSet 部署到每一个节点,地属于 kube-system 这个 namespace。server

Canal 准备就绪,下节咱们将实践 Network Policy。htm

书籍:

1.《天天5分钟玩转Kubernetes》
https://item.jd.com/26225745440.html

2.《天天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

3.《天天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

相关文章
相关标签/搜索