总目录索引:K8s网络Calico 从入门到放弃系列

1、创建前端,后端,客户端和管理用户界面应用程序

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/00-namespace.yaml

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/01-management-ui.yaml

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/02-backend.yaml

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/03-frontend.yaml

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/manifests/04-client.yaml

等待所有pod状态为running

kubectl get pod --all-namespaces

Calico策略演示_第1张图片

可以通过http://worker IP:30002在浏览器中访问来查看UI 。

Calico策略演示_第2张图片

一旦所有Pod启动,它们就应该具有完全的连接性。您可以通过访问UI来查看。每个服务由图中的单个节点表示。

  • backend   ->节点“ B”

  • frontend ->节点“ F”

  • client     ->节点“ C”

Calico策略演示_第3张图片

2、启用隔离

运行以下命令将阻止所有对前端,后端和客户端服务的访问

kubectl create -n stars -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/default-deny.yaml

kubectl create -n client -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/default-deny.yaml

确认隔离

    刷新管理用户界面(更改最多可能需要10秒钟才能反映在用户界面中)。现在我们启用了隔离,UI将不再能够访问窗格,因此它们将不再显示在UI中。

Calico策略演示_第4张图片

3、允许UI使用网络策略对象访问服务

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/allow-ui.yaml

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/allow-ui-client.yaml

几秒钟后,刷新UI-现在应该显示服务,但它们之间不再能够访问彼此

Calico策略演示_第5张图片

4、创建backend-policy.yaml文件,以允许从前端到后端的流量

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/backend-policy.yaml

刷新UI。您应该看到以下内容:

  • 前端现在可以访问后端(仅在TCP端口6379上)。

  • 后端根本无法访问前端。

  • 客户端无法访问前端,也无法访问后端。

Calico策略演示_第6张图片

5、将前端服务公开到客户端名称空间

kubectl create -f https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/policies/frontend-policy.yaml

客户端现在可以访问前端,但不能访问后端。前端和后端都无法启动与客户端的连接。前端仍然可以访问后端

Calico策略演示_第7张图片

6、清理名称空间

kubectl delete ns client stars management-ui

参考文章:https://docs.projectcalico.org/security/tutorials/kubernetes-policy-demo/kubernetes-demo