借助 Calico,管窥 Kubernetes 网络策略

简介: Kubernetes 提出了一系列 CXI 的标准容器接口,其中的 CNI 以插件方式支持多种网络。新增的 networkpolicy API 对象,提供了对网络策略的支持,本文以 Calico 为例,实际操作一个网络策略的创建和测试。

Kubernetes 提出了一系列 CXI 的标准容器接口,其中的 CNI 以插件方式支持多种网络。 新 增的 networkpolicy API 对象,提供了对网络策略的支持,本文以 Calico 为例,实际操作一个网络策略的创建和测试。

环境准备

  • 一个 Kubernetes 集群
  • Kubelet 和 API Server 都开启了 --allow_privileged=true
  • Kubelet 指定使用 CNI :--network-plugin=cni
  • 为了避免某些不可描述的网络设施的影响,建议下载几个镜像
    • quay.io/calico/node:v1.0.2
    • calico/cni:v1.5.6
    • calico/kube-policy-controller:v0.5.2
    • calico/ctl:v1.0.2

运行 Calico

  • 下载 http://docs.projectcalico.org/v2.0/getting-started/kubernetes/installation/hosted/calico.yaml
  • 如果用私库镜像,需要修改其中的几个镜像地址
  • 修改 data/etcd_endpoints 的数据为可访问的 etcd 的地址。
kubectl create -f calico.yaml

这里在 kube-system 中创建了一个 DaemonSet 和一个 Deployment,分别用于提供 CNI 支持和网络策略支持。

$ kubectl get deployment,daemonset,svc --all-namespaces [9:55:14]
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-system deploy/calico-policy-controller 1 1 1 1 10h

NAMESPACE NAME DESIRED CURRENT READY NODE-SELECTOR AGE
kube-system ds/calico-node 2 2 2 <none> 10h

NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default svc/kubernetes 172.200.0.1 <none> 443/TCP 19h default svc/nginx 172.200.183.204 <none> 80/TCP 9h

网络策略

为测试效果,我们首先创建一个 Namespace

kubectl create ns policy

然后是 Nginx 部署和服务:

---
kind: ReplicationController
apiVersion: v1
metadata:
 name: nginx
 labels:
 name: nginx
spec:
 replicas: 1
 selector:
 name: nginx
 template:
 metadata:
 labels:
 name: nginx
 app: nginx
 spec:
 containers: - name: nginx
 image: nginx
 ports: - containerPort: 80
 protocol: TCP

---
kind: Service
apiVersion: v1
metadata:
 name: nginx
 labels:
 name: nginx
spec:
 ports: - protocol: TCP
 port: 80
 targetPort: 80
 selector:
 name: nginx

然后我们用 alpine 镜像测试一下对这一服务进行访问:

kubectl run alpine --rm -it --image=alpine sh

运行成功后,在 Alpine 的 Shell 中输入:

wget -O - -T 5 http://nginx 

会出现 Nginx 的缺省页面的代码。

接下来我们给 Default Namespace 加一个缺省拒绝访问的注解:

$ kubectl annotate ns default "net.beta.kubernetes.io/network-policy={\"ingress\": {\"isolation\": \"DefaultDeny\"}}"

重复测试过程,会发现超时错误。

我们来创建一条策略:

kind: NetworkPolicy
apiVersion: extensions/v1beta1
metadata:
 name: access-nginx
spec:
 podSelector:
 matchLabels:
 run: nginx
 ingress: - from: - podSelector:
 matchLabels:
 access: "true"

很容易理解,对于符合 “run=nginx” 的 Pod,只有 “access=true” 的 Pod 能够访问

给 Alpine 带上标签重新运行:

kubectl run alp --image=alpine --labels="access=true" --rm -ti sh

重新 wget,会发现访问能力已经恢复。

本文主要线索来自官方示例:https://kubernetes.io/docs/getting-started-guides/network-policy/walkthrough/

安装方法来自 Calico 官网。

这只是一个很入门的介绍,后续会有更多进一步的尝试。

本文转自中文社区-借助 Calico,管窥 Kubernetes 网络策略

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
6天前
|
存储 安全 网络安全
网络安全与信息安全:防御前线的科学与策略
【4月更文挑战第10天】 在数字化时代,数据成为了新的货币,信息流成了掌控权的象征。然而,随着信息技术的迅猛发展,网络安全漏洞、加密技术以及用户的安全意识构成了维护网络空间安全的三大支柱。本文将深入探讨网络安全中存在的风险点,分析加密技术的演进及其在保护数据完整性、机密性方面的重要性,并强调提升个人和组织的安全意识的必要性。通过科学的分析与策略的制定,我们旨在为读者提供一幅全面的网络安全蓝图,以应对日益繁复的网络威胁。
|
7天前
|
安全 网络安全 数据安全/隐私保护
网络堡垒的构建者:洞悉网络安全与信息安全的深层策略
【4月更文挑战第9天】在数字化时代,数据成为了新的价值核心。然而,随之而来的是日益复杂的网络安全威胁。从漏洞利用到信息泄露,从服务中断到身份盗用,攻击手段不断演变。本文深入剖析了网络安全的关键组成部分:识别和防范安全漏洞、加密技术的应用以及提升个体和企业的安全意识。通过探讨这些领域的最佳实践和最新动态,旨在为读者提供一套全面的策略工具箱,以强化他们在数字世界的防御能力。
|
9天前
|
运维 Kubernetes Cloud Native
探索Kubernetes的大二层网络:原理、优势与挑战🚀
在云原生领域,Kubernetes (K8s) 已经成为容器编排的事实标准☁️📦。为了支撑其灵活的服务发现和负载均衡🔍🔄,K8s采用了大二层网络的设计理念🕸️。本文将深入探讨大二层网络的工作原理、带来的好处✨,以及面临的挑战和解决方案❗🛠️。
探索Kubernetes的大二层网络:原理、优势与挑战🚀
|
1天前
|
监控 安全 网络安全
云端防御:云计算环境中的网络安全策略与实践
【4月更文挑战第15天】 在数字化转型的时代,云计算已成为企业运营不可或缺的技术支撑。然而,随着云服务模式的广泛采纳,网络安全挑战亦随之而来。本文深入探讨了云计算环境下的安全威胁,分析了云服务模型对安全策略的影响,并提出了一系列创新的网络安全防护措施。通过研究最新的加密技术、访问控制机制和持续监控方法,文章旨在为企业提供一个综合性的网络安全框架,以确保其云基础设施和数据的安全性和完整性。
19 8
|
1天前
|
云安全 安全 网络安全
构筑防御堡垒:云计算环境下的网络安全策略
【4月更文挑战第15天】 在数字转型的浪潮中,云计算已成为企业部署应用和存储数据的首选平台。然而,随着云服务的普及,网络安全威胁也随之增加,给企业带来了前所未有的挑战。本文深入探讨了云计算环境中的网络安全问题,分析了云服务模型(IaaS, PaaS, SaaS)的安全风险,并提出了一系列针对性的安全措施。通过对最新的安全技术、合规性要求及最佳实践的综合评述,本文旨在为读者提供一套全面的云安全策略框架,以增强云环境下的信息安全。
|
4天前
|
存储 缓存 自动驾驶
缓存策略与Apollo:优化网络请求性能
缓存策略与Apollo:优化网络请求性能
|
4天前
|
人工智能 安全 网络安全
云端守卫:云计算环境中的网络安全与信息保护策略
【4月更文挑战第12天】 随着企业与个人日益依赖云服务,数据存储、处理和流通的边界愈发模糊。本文探讨了在动态且复杂的云计算环境中,如何通过创新的安全技术和策略来维护网络安全和保障信息完整性。重点分析了包括身份认证、数据加密、访问控制及入侵检测等在内的关键安全措施,并提出了多层次防御模型,以增强云服务用户的信心,同时促进云计算生态系统的健康发展。
|
8天前
|
存储 安全 网络安全
云端防御策略:确保云服务中的网络安全与信息完整性
【4月更文挑战第8天】在数字化转型的浪潮中,云计算已成为企业存储、处理和分析数据的首选平台。然而,随着云服务的广泛采用,网络安全和信息完整性的挑战也日益凸显。本文将深入探讨针对云环境的安全威胁、当前的防御机制以及未来发展趋势,旨在为读者提供一个全面了解如何在享受云计算便利的同时,确保网络和信息的安全。
|
12天前
|
机器学习/深度学习 安全 网络安全
网络安全与信息安全:防御前沿的技术与策略
【4月更文挑战第4天】在数字化时代,数据成为了新的货币,而网络安全则是保护这种“货币”不被盗窃的关键。本文将深入探讨网络安全漏洞的概念、加密技术的最新进展以及提升个人和企业安全意识的策略。我们将分析当前网络威胁的面貌,探索如何通过多层次的防护手段来构建坚固的信息防线,并强调教育与培训在维护网络安全中的核心作用。
|
13天前
|
人工智能 安全 网络安全
云端防御战线:融合云计算与网络安全的未来策略
【4月更文挑战第3天】 在数字化的浪潮中,云计算已成为企业运营的核心动力,与此同时,网络安全威胁亦如影随形。本文深入剖析了云服务模型和网络安全策略如何相互融合,以构筑更为坚固的信息防线。文中不仅探讨了当前云平台所面临的安全挑战,还提出了一系列创新性的安全措施,旨在提升系统的整体安全性和响应能力。通过分析最新的技术进展,本文为读者提供了一个关于如何在保障业务连续性的同时,确保数据安全的全面视角。

推荐镜像

更多