15.4. 创建 Skupper 策略 CR
skupper Policy CR 允许集群管理员从集群控制跨服务网络的通信。
先决条件
-
使用
cluster-admin
帐户访问集群。 - 在集群中安装了 Skupper 策略 CRD。
通常,您可以创建一个 Skupper 策略 CR,它组合了以下步骤中的多个元素。请参阅 第 15.1 节 “关于 Skupper 策略” 中的一个示例 CR。
15.4.1. 实施策略以允许传入的链接
使用 allowIncomingLinks
允许开发人员创建令牌并配置传入的链接。
流程
- 决定您要将此策略应用到的命名空间。
-
创建 CR,并将
allowIncomingLinks
设为true
或false
。 - 创建并应用 CR。
例如,以下 CR 允许所有命名空间的传入链接:
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowincominglinks spec: namespaces: - "*" allowIncomingLinks: true
15.4.2. 实施策略以允许到特定主机的传出链接
使用 allowedOutgoingLinksHostnames
指定开发人员可以创建链接到的主机。您无法创建 allowedOutgoingLinksHostnames
策略来禁止之前允许的特定主机。
- 决定您要将此策略应用到的命名空间。
-
创建一个 CR,并将
allowedOutgoingLinksHostnames
设置为允许的主机模式。 - 创建并应用 CR。
例如,以下 CR 允许链接到所有命名空间的 example.com
的所有子域:
apiVersion: skupper.io/v1alpha1 kind: SkupperClusterPolicy metadata: name: allowedoutgoinglinkshostnames spec: namespaces: - "*" allowedOutgoingLinksHostnames: ['.*\.example\.com']
15.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>
参数来命名服务以匹配您的策略。
15.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
语法。