用途:该技能说明如何在 Kubernetes 集群中部署 Calico 作为 CNI,并使用标准 Kubernetes NetworkPolicy API 及 Calico 扩展策略实施细粒度网络访问控制,适用于部署配置、安全控制建设、合规对齐与安全评估等场景。
主要能力:Calico 是开源 CNI 插件,完整实现 Kubernetes NetworkPolicy API,并扩展出 GlobalNetworkPolicy,支持策略排序、拒绝规则和基于服务账户的选择器。资料覆盖默认拒绝全部流量、允许特定 Pod 间通信、允许 DNS 出站、命名空间隔离、集群级全局策略、含 Deny 规则的 Calico NetworkPolicy、基于 ServiceAccount 的策略、主机端点保护以及策略层级(Tier)划分。
安装与使用:前置条件为 Kubernetes v1.24+、Calico v3.26+、kubectl 与 calicoctl CLI、集群管理员 RBAC 权限。推荐 Operator 方式安装:先执行 kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/tigera-operator.yaml,再执行 kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/custom-resources.yaml,随后可安装 calicoctl。验证方式包括查看 calico-system 命名空间中的 Pod、执行 calicoctl node status 和查询 IP 池。
策略编写:标准策略包括 default-deny-ingress、default-deny-egress、allow-frontend-to-backend、allow-dns-egress、allow-same-namespace 等示例。Calico 专属策略使用 projectcalico.org/v3 API,可设置 order 字段、action 为 Allow 或 Deny、基于 selector、nets、serviceAccounts 进行匹配,并可通过 Tier 定义 security、platform 等层级。
排障:可用 kubectl get networkpolicy --all-namespaces 列出策略,通过 calicoctl 查询 networkpolicy、globalnetworkpolicy、workloadendpoint,查看 calico-node 日志,并用 wget 等命令测试连通性。
建议:从默认拒绝开始,统一使用标签,利用 order 控制优先级,先允许 DNS 出站,集群级基线用 GlobalNetworkPolicy,在测试环境验证,启用流日志监控被拒流量。限制:资料未提供非 Calico 环境兼容性、性能数据及收费信息;具体版本与命令内容以原始资料为准,缺失信息暂未提供。