apiVersion: flows.netobserv.io/v1beta2
kind: FlowCollector
metadata:
name: cluster
spec:
namespace: netobserv
networkPolicy:
enable: true (1)
additionalNamespaces: ["openshift-console", "openshift-monitoring"] (2)
# ...
作为具有 `admin` 角色的用户,您可以为 `netobserv` 命名空间创建网络策略,以保护对网络可观测性操作员的入站访问。
您可以通过将 `spec.NetworkPolicy.enable` 规范设置为 `true` 来配置 `FlowCollector` 自定义资源 (CR) 以为网络可观测性部署入口网络策略。默认情况下,此规范为 `false`。
如果您在另一个也具有网络策略的命名空间中安装了 Loki、Kafka 或任何导出器,则必须确保网络可观测性组件可以与它们通信。请考虑以下关于您的设置的信息
连接到 Loki(如 `FlowCollector` CR `spec.loki` 参数中所定义)
连接到 Kafka(如 `FlowCollector` CR `spec.kafka` 参数中所定义)
连接到任何导出器(如 FlowCollector CR `spec.exporters` 参数中所定义)
如果您正在使用 Loki 并将其包含在策略目标中,则连接到外部对象存储(如您的 `LokiStack` 相关密钥中所定义)
在 Web 控制台中,转到**操作员** → **已安装的操作员**页面。
在**网络可观测性**的**提供的 API** 标题下,选择**Flow Collector**。
选择**集群**,然后选择**YAML** 选项卡。
配置 `FlowCollector` CR。示例配置如下所示
apiVersion: flows.netobserv.io/v1beta2
kind: FlowCollector
metadata:
name: cluster
spec:
namespace: netobserv
networkPolicy:
enable: true (1)
additionalNamespaces: ["openshift-console", "openshift-monitoring"] (2)
# ...
1 | 默认情况下,`enable` 值为 `false`。 |
2 | 默认值为 `["openshift-console", "openshift-monitoring"]`。 |
如果您想进一步自定义 `netobserv` 和 `netobserv-privileged` 命名空间的网络策略,则必须禁用来自 `FlowCollector` CR 的策略的托管安装,并创建您自己的策略。您可以使用从 `FlowCollector` CR 启用的网络策略资源作为以下步骤的起点
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
spec:
ingress:
- from:
- podSelector: {}
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: netobserv-privileged
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: openshift-console
ports:
- port: 9001
protocol: TCP
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: openshift-monitoring
podSelector: {}
policyTypes:
- Ingress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: netobserv
namespace: netobserv-privileged
spec:
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: openshift-monitoring
podSelector: {}
policyTypes:
- Ingress
导航到**网络** → **NetworkPolicies**。
从**项目**下拉菜单中选择 `netobserv` 项目。
命名策略。在此示例中,策略名称为 `allow-ingress`。
单击**添加入口规则**三次以创建三个入口规则。
在表单中指定以下内容
为第一个**入口规则**进行以下规范
从**添加允许的源**下拉菜单中,选择**允许来自同一命名空间的 Pod**。
为第二个**入口规则**进行以下规范
从**添加允许的源**下拉菜单中,选择**允许来自集群内部的 Pod**。
单击**+ 添加命名空间选择器**。
添加标签 `kubernetes.io/metadata.name` 和选择器 `openshift-console`。
为第三个**入口规则**进行以下规范
从**添加允许的源**下拉菜单中,选择**允许来自集群内部的 Pod**。
单击**+ 添加命名空间选择器**。
添加标签 `kubernetes.io/metadata.name` 和选择器 `openshift-monitoring`。
导航到**观察** → **网络流量**。
查看**流量流**选项卡或任何选项卡,以验证是否显示数据。
导航到**观察** → **仪表盘**。在 NetObserv/Health 选择中,验证流是否正在被摄取并发送到 Loki,这在第一个图表中表示。