我在IBM Cloud 上使用Kubernetes .
我想创建一个网络策略,拒绝所有到pod的传入连接(在端口3000上公开应用程序),但是它允许仅来自特定IP(MY_IP)的传入连接 .
我写了这个:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: <MY_POLICY_NAME>
namespace: <MY_NAMESPACE>
spec:
podSelector:
matchLabels:
app: <MY_APP>
env: <MY_ENV>
policyTypes:
- Ingress
ingress:
- from:
- ipBlock:
cidr: <MY_IP>/24
except:
- <MY_IP>/32
ports:
- protocol: TCP
port: 3000
不幸的是,这不起作用,因为它会阻止所有连接 .
我怎样才能解决这个问题?
1 回答
在您现在的政策中,您允许从该CIDR进入,但来自您的
<MY_IP>
的所有流量除外 . 因此它会阻止来自您IP的所有流量 .PS:IBM Cloud Kubernetes Service中的Ingress默认禁用源IP保留 . 确保您已为Ingress服务启用它:https://console.bluemix.net/docs/containers/cs_ingress.html#preserve_source_ip