EKS 训练营-网络安全增强(7)

网友投稿 290 2022-10-10

EKS 训练营-网络安全增强(7)

介绍

Project Calico 是一种适用于 Kubernetes 的网络策略引擎。通过强制实施 Calico 网络策略,您可以实现网络隔离和租户隔离。在必须隔离各个租户的多租户环境中,或者当您要针对开发、暂存和生产创建单独的环境时,这非常有用。网络策略类似于 AWS 安全组的一点是,您可以创建网络传入和传出规则。您使用 Pod 选择器和标签向 Pod 分配网络策略,而不是向安全组分配实例。以下过程介绍如何在 Amazon EKS 集群中的 Linux 节点上安装 Calico。

Calio 免费版

安装 Calico

在 aws 的 cni 网络插件项目里面也有 Calico 的内容 aws/amazon-vpc-cni-k8s GitHub project

通过如下方式部署和启用

mkdir ~/environment/calico && cd ~/environment/calico kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/master/config/master/calico-operator.yaml kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/master/config/master/calico-crs.yaml kubectl get daemonset calico-node --namespace calico-system

返回如下(calico-node的数量等于 eks 中节点的数量)

NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE calico-node 2 2 2 2 2 kubernetes.io/os=linux 70s

部署和测试

本部分演示了 Project Calico 文档提供的 Stars 策略演示。该演示在您的 Amazon EKS 集群上创建前端、后端和客户端服务。该演示还创建管理 GUI,用于显示各服务之间可用的传入和传出路径。

在您创建任何网络策略之前,所有服务可以双向通信。应用网络策略后,您可以看到客户端只能与前端服务进行通信,而后端仅接受来自前端的流量。

资源清理

在完成该演示后,您可以使用以下命令删除其资源:

kubectl delete -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/tutorials/stars-policy/manifests/04-client.yaml kubectl delete -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/tutorials/stars-policy/manifests/03-frontend.yaml kubectl delete -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/tutorials/stars-policy/manifests/02-backend.yaml kubectl delete -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/tutorials/stars-policy/manifests/01-management-ui.yaml kubectl delete -f calico

kubectl delete -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/master/config/master/calico-crs.yaml kubectl delete -f Calico 的唯一可靠方法是终止所有节点并将它们回收。要终止所有节点,请将 Auto Scaling 组所需计数设置为 0,然后备份到所需数量,或者仅终止节点。如果您无法回收节点,请参阅 Calico GitHub 存储库中的禁用和删除 Calico 策略以了解最后的解决方法。

或者创建一些允许的规则覆盖一下:

cd ~/environment/calico cat <allow-all-ingress.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all-ingress spec: podSelector: {} ingress: - {} policyTypes: - Ingress EoF cat <allow-all-egress.yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: allow-all-egress spec: podSelector: {} egress: - {} policyTypes: - Egress EoF kubectl apply -f allow-all-ingress.yaml kubectl apply -f allow-all-egress.yaml

欢迎大家扫码关注,获取更多信息

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决IDEA 2022 Translation 翻译文档失败: 未知错误的问题
下一篇:EKS 训练营-IRSA(6)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~