文档错误??NetworkPolicy吗?



我在一个3节点的K8集群中浏览了代码,似乎我无法在部署pod上使用networkpolicy阻止流量。

下面是练习的输出。

user@myk8master:~$ kubectl get deployment,svc,networkpolicy
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   X.X.X.X    <none>        443/TCP   20d
user@myk8master:~$
user@myk8master:~$
user@myk8master:~$ kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
user@myk8master:~$ kubectl expose deployment nginx --port=80
service/nginx exposed
user@myk8master:~$ kubectl run busybox --rm -ti --image=busybox -- /bin/sh
If you don't see a command prompt, try pressing enter.
/ # wget --spider --timeout=1 nginx
Connecting to nginx (X.X.X.X:80)
remote file exists
/ # exit
Session ended, resume using 'kubectl attach busybox -c busybox -i -t' command when the pod is running
pod "busybox" deleted
user@myk8master:~$
user@myk8master:~$
user@myk8master:~$ vi network-policy.yaml
user@myk8master:~$ cat network-policy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: access-nginx
spec:
podSelector:
matchLabels:
app: nginx
ingress:
- from:
- podSelector:
matchLabels:
access: "true"
user@myk8master:~$
user@myk8master:~$
user@myk8master:~$ kubectl apply -f network-policy.yaml
networkpolicy.networking.k8s.io/access-nginx created
user@myk8master:~$
user@myk8master:~$
user@myk8master:~$ kubectl run busybox --rm -ti --image=busybox -- /bin/sh
If you don't see a command prompt, try pressing enter.
/ # wget --spider --timeout=1 nginx
Connecting to nginx (10.100.97.229:80)
remote file exists. <<<<  THIS SHOULD NOT WORK 

我遵循了所有的步骤,但似乎我无法阻止流量,即使定义了网络策略。

有人可以帮助我,让我知道如果我在这里做蠢事吗?

如文档中所述,限制客户端访问应该通过使用网络插件来工作。由于一些冲突或故障,它可能不会限制访问。所以尝试重新安装/重新配置。

你也可以尝试另一种方法,比如在NGINX中阻塞它们

可以通过IP地址限制访问。NGINX可以根据特定的IP地址或客户端计算机的IP地址范围允许或拒绝访问。要允许或拒绝访问,请在流上下文或服务器块中使用allow和deny指令:

stream {
#...
server {
listen 12345;
deny   192.168.1.2;
allow  192.168.1.1/24;
allow  2001:0db8::/32;
deny   all;
}
}

限制TCP连接数。您可以限制来自一个IP地址的TCP同时连接的数量:

stream {
#...
limit_conn_zone $binary_remote_addr zone=ip_addr:10m;
#...
}

你还可以限制带宽和ip范围等,使用NGINX更灵活。

有关网络插件的更多信息,请参阅链接。

我的错。我忘记设置任何一个支持的网络服务,正如文档中指出的那样。从那以后,它就完美地工作了。

相关内容

  • 没有找到相关文章

最新更新