在Kubernetes中实现Artifactory的网络策略

Vignesh Surendrababu
2023-01-22十一10

控制pod或网络端点之间流量的2022世界杯阿根廷预选赛赛程Kubernetes资源称为NetworkPolicy。通过使用NetworkPolicy,您可以将流量限制到特定的pod,同时允许名称空间中的其他pod接受来自任何地方的流量。要明智地做到这一点,你需要知道在实现NetworkPolicy时,有哪些不同的策略规范可供你使用:

podSelector:每个NetworkPolicy包括一个podSelector,它选择给定策略应用到的pod的分组。
入口:每个NetworkPolicy可能包含一个允许的入口规则列表。每个规则允许同时匹配from和ports部分的流量。
出口:每个NetworkPolicy可能包含一个允许的出口规则列表。每个规则允许同时匹配to和ports部分的流量。
policyTypes:每个NetworkPolicy包含一个policyTypes列表,该列表可能包含入口、出口或两者都包含。policyTypes字段指示给定的NetworkPolicy是否应用于进入所选pod的流量,从所选pod的出口流量,或者两者都应用。

遵循以下步骤来应用网络策略:

1.在做其他事情之前,您可能首先需要启用网络策略实施并安装NetworkPolicy-supporting-容器网络接口(CNI),如Calico, Cilium, Weave等。
例如:

亚马逊的
https://www.eksworkshop.com/beginner/120_network-policies/calico/stars_policy_demo/apply_network_policies/
GKE
https://cloud.google.com/kubernetes-engine/docs/how-to/network-policy#gcloud_1

https://docs.microsoft.com/en-us/azure/aks/use-network-policies#create-an-aks-cluster-and-enable-network-policy

2.创建一个配置图阁下的网络政策:$ cat configmaps.yaml
networkpolicy:
#允许所有的入/出artifactory。
—名称:artifactory
podSelector:
matchLabels:
应用:artifactory
入口:
——从:
- podSelector:
matchLabels:
组件:nginx
#允许从artifactory pod连接到postgresql pod,但不允许流量离开postgresql pod。
—名称:postgres
podSelector:
matchLabels:
应用:postgresql
入口:
——从:
- podSelector:
matchLabels:
应用:Artifactoryv

3.安装Artifactory使用创建的configmaps.yaml使用以下命令打开文件:

$ helm install -name artifactory -set artifactory.image.version=6.16.0 jfrog/artifactory -version 8.3.6 -f configmaps. exeYaml -命名空间artifactory

4.尝试访问您的Artifactory豆荚没有正确的标签(这将允许您观察网络超时)。
例如:

运行busybox容器
$ kubectl运行busybox - rm -ti - image=busybox - /bin/sh

5.从busybox容器,尝试运行一个旋度wget命令来ping你的Artifactory pod:$ curl https://artifactory-artifactory:8081/artifactory/api/system/ping
请注意:您应该观察由于强制网络策略而发生的超时。

6.接下来,尝试从两者中运行步骤#5中的相同命令PostgreSQL而且Nginx豆荚.你可能会观察到ping请求只能从Nginx pod中成功,而不能从任何其他外部客户端中成功。

7.如果您想启用您的网络策略人工HA节点,你可能需要添加/附加以下YAML的配置到你的configmaps.yaml使用以下命令应用网络策略:$ kubectl应用-f configmaps。Yaml -n artifactory

例如:入口:
——从:
- podSelector:
matchLabels:
组件:nginx
—名称:artifactory-ha
podSelector:
matchLabels:
应用:artifactory
入口:
——从:
- podSelector:
matchLabels:
组件:artifactory

发布日期:2020年8月19日
最后更新:2021年5月14日