12.4. 创建 Skupper 策略 CR
skupper Policy CR 允许集群管理员从集群中控制跨服务网络的通信。
先决条件
-
使用
cluster-admin
帐户访问集群。 - Skupper 策略 CRD 已安装在集群中。
通常,您可以创建一个 Skupper 策略 CR,它将以下步骤中的多个元素合并。请参阅 第 12.1 节 “关于 Skupper 策略” 中的一个示例 CR。
12.4.1. 实施策略以允许传入的链接
使用 allowIncomingLinks
允许开发人员创建令牌并配置传入的链接。
流程
- 决定您要将此策略应用到的命名空间。
-
创建 CR,并将
allowIncomingLinks
设为true
或false
。 - 创建并应用 CR。
例如,以下 CR 允许所有命名空间的传入链接:
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowincominglinks spec: namespaces: - "*" allowIncomingLinks: true
12.4.2. 实施策略以允许到特定主机的传出链接
使用 allowedOutgoingLinksHostnames
指定开发人员可以创建链接到的主机。您无法创建 allowedOutgoingLinksHostnames
策略来禁止之前允许的特定主机。
- 决定您要将此策略应用到的命名空间。
-
创建一个 CR,并将
allowedOutgoingLinksHostnames
设置为允许的主机模式。 - 创建并应用 CR。
例如,以下 CR 允许链接到所有命名空间的 example.com
的所有子域:
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedoutgoinglinkshostnames spec: namespaces: - "*" allowedOutgoingLinksHostnames: ['.*\.example\.com']
12.4.3. 实施策略以允许特定的服务
使用 allowedServices
指定开发人员可以在服务网络上创建和使用的服务。您无法创建 allowedServices
策略来禁止之前允许的特定服务。
流程
- 决定您要将此策略应用到的命名空间。
-
创建具有
allowedServices
设置的 CR,以指定服务网络中允许的服务。 - 创建并应用 CR。
例如,以下 CR 允许用户公开和使用所有命名空间的前缀 backend-
的服务:
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedservices spec: namespaces: - "*" allowedServices: ['^backend-']
在公开服务时,您可以使用 skupper
CLI 的 --address <name>
参数来命名服务以匹配您的策略。
12.4.4. 实施策略以允许特定资源
使用 allowedExposedResources
指定开发人员可在服务网络上公开的资源。您无法创建 allowedExposedResources
策略来禁止之前允许的特定资源。
流程
- 决定您要将此策略应用到的命名空间。
-
创建带有
allowedExposedResources
设置的 CR,以指定开发人员可以在服务网络上公开的资源。 - 创建并应用 CR。
例如,以下 CR 允许您为所有命名空间公开 nginx
部署:
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedexposedresources spec: namespaces: - "*" allowedExposedResources: ['deployment/nginx']
对于 allowedExposedResources
,每个条目都必须符合 type/name
语法。