由于我看到的相关帖子很少,但没有人回答我的问题,我想我也会根据其他用户的建议在这里提出一个新问题。
我需要为正在运行的 cronjob 的网络策略创建一个选择器标签,该任务负责连接到集群中的其他一些服务,据我所知,没有简单直接的方法来为作业创建选择器标签因为如果重复的工作标签存在的话,这将会带来问题。不知道为什么 cronjob 本身不能有选择器,然后可以应用于作业和 pod。
也可能有一种可能性只是在它自己的命名空间中设置这个 cronjob,然后允许该命名空间中的所有内容到网络策略中所需的任何内容,但这感觉不是解决该问题的正确方法。
使用k8s v1.20
mat*_*t_j 17
首先,要选择CronJob
应被允许作为NetworkPolicy
入口源或出口目的地的 Pod(由您生成),您可以为这些 Pod 设置特定标签。
Jobs
您可以使用 labels 字段轻松设置生成的标签(可以在OpenShift CronJobs 文档CronJob
中找到另一个带有解释的示例):
---
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: mysql-test
spec:
...
jobTemplate:
spec:
template:
metadata:
labels:
workload: cronjob # Sets a label for jobs spawned by this CronJob.
type: mysql # Sets another label for jobs spawned by this CronJob.
...
Run Code Online (Sandbox Code Playgroud)
由此产生的 PodCronJob
将具有标签type=mysql
和workload=cronjob
,使用此标签您可以创建/自定义您的NetworkPolicy
:
$ kubectl get pods --show-labels
NAME READY STATUS RESTARTS AGE LABELS
mysql-test-1615216560-tkdvk 0/1 Completed 0 2m2s ...,type=mysql,workload=cronjob
mysql-test-1615216620-pqzbk 0/1 Completed 0 62s ...,type=mysql,workload=cronjob
mysql-test-1615216680-8775h 0/1 Completed 0 2s ...,type=mysql,workload=cronjob
$ kubectl describe pod mysql-test-1615216560-tkdvk
Name: mysql-test-1615216560-tkdvk
Namespace: default
...
Labels: controller-uid=af99e9a3-be6b-403d-ab57-38de31ac7a9d
job-name=mysql-test-1615216560
type=mysql
workload=cronjob
...
Run Code Online (Sandbox Code Playgroud)
例如,这允许从带有标签的命名空间mysql-workload
NetworkPolicy
中的任何 pod 连接到命名空间中的所有 pod (逻辑连接):注意:请小心使用正确的 YAML(查看此namespaceSelector 和 podSelector 示例)。mysql
type=mysql
workload=cronjob
namespace-name=default
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: mysql-workload
namespace: mysql
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
namespace-name: default
podSelector:
matchLabels:
type: mysql
workload: cronjob
Run Code Online (Sandbox Code Playgroud)
要使用网络策略,您必须使用支持以下功能的网络解决方案NetworkPolicy
:
网络策略由网络插件实现。要使用网络策略,您必须使用支持 NetworkPolicy 的网络解决方案。创建没有实现它的控制器的 NetworkPolicy 资源将不会产生任何效果。
您可以NetworkPolicies
在网络策略文档中了解有关创建 Kubernetes 的更多信息。
归档时间: |
|
查看次数: |
13222 次 |
最近记录: |