我在IBM云上使用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
不幸的是,这无法正常工作,因为它阻止了所有连接。
我该如何解决?
答案 0 :(得分:0)
在目前的策略中,您允许来自<MY_IP>
的所有流量从该CIDR进入, 。因此,它阻止了来自IP的所有流量。
PS:默认情况下,IBM Cloud Kubernetes Service中的Ingress禁用源IP保留。确保已为Ingress服务启用了它:https://console.bluemix.net/docs/containers/cs_ingress.html#preserve_source_ip