在具有2个命名空间(ns1
和ns2
)的集群中,我部署了相同的应用程序(deployment
),并使用服务将其公开。
我认为单独的名称空间将阻止从curl http://deployment.ns1
中的pod执行ns2
,但是显然,这是可能的。
所以我的问题是,如何允许/拒绝这种跨名称空间的操作?例如:
ns1
中的ns2
中的答案 0 :(得分:3)
很好,您正在使用名称空间隔离。
在具有ingress all的ns1中部署一种新型的网络策略。您可以查找文档以定义允许所有入站流量的网络入口策略
与ns2一样,您可以创建一种新的网络策略并在ns2中部署配置以拒绝所有入口。再次,文档将来帮助您使用yaml构造。
它可能看起来像这样:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
namespace: ns1
name: web-allow-all-namespaces
spec:
podSelector:
matchLabels:
app: app_name_ns1
ingress:
- from:
- namespaceSelector: {}
答案 1 :(得分:1)
这不是您想要的答案,但是我可以提供有用的功能信息来满足您的要求。
AFAIK Kubernetes
可以定义network policy
来限制网络访问。
有关Network Policy
的更多信息,请参考Declare Network Policy。