10.4. 部署 Zero Trust Workload Identity Manager 操作对象
Zero Trust Workload Identity Manager 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
您可以通过创建对应的自定义资源(CR)来部署以下操作对象。您必须按照以下序列部署操作对象,以确保安装成功。
- SPIRE 服务器
- SPIRE 代理
- SPIFFE CSI 驱动程序
- SPIRE OIDC 发现供应商
10.4.1. 部署 SPIRE 服务器 复制链接链接已复制到粘贴板!
您可以配置 SpireServer
自定义资源(CR)来部署和配置 SPIRE 服务器。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 已在集群中安装了 Zero Trust Workload Identity Manager。
流程
创建
SpireServer
CR:创建一个 YAML 文件来定义
SpireServer
CR,如SpireServer.yaml
:SpireServer.yaml
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 用于 SPIFFE 标识符的信任域。
- 2
- 集群的名称。
- 3
- SPIRE 服务器 CA 的通用名称。
- 4
- SPIRE 服务器 CA 的国家/地区。
- 5
- SPIRE 服务器 CA 的组织。
- 6
- 用于持久性的卷类型。有效选项为
pvc
和hostPath
。 - 7
- 用于持久性的卷大小
- 8
- 用于持久性的访问模式。有效选项有
ReadWriteOnce
,ReadWriteOncePod
, 和ReadWriteMany
。 - 9
- 开放数据库连接的最大数量。
- 10
- 池中的最大闲置连接数。
- 11
- 可重复使用连接的最大时间量。要指定无限时间,您可以将值设为
0
。 - 12
- JSON Web Token (JWT) 签发者域。默认值为
oidc-discovery.$trustDomain
中指定的值。
运行以下命令来应用配置:
oc apply -f SpireServer.yaml
$ oc apply -f SpireServer.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证有状态的 SPIRE 服务器是否已就绪并可用:
oc get statefulset -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
$ oc get statefulset -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY AGE spire-server 1/1 65s
NAME READY AGE spire-server 1/1 65s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 SPIRE 服务器 pod 的状态是否为
Running
:oc get po -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE spire-server-0 2/2 Running 1 (108s ago) 111s
NAME READY STATUS RESTARTS AGE spire-server-0 2/2 Running 1 (108s ago) 111s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证持久性卷声明 (PVC) 是否已绑定:
oc get pvc -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
$ oc get pvc -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTECLASS AGE spire-data-spire-server-0 Bound pvc-27a36535-18a1-4fde-ab6d-e7ee7d3c2744 5Gi RW0 gp3-csi <unset> 22m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTECLASS AGE spire-data-spire-server-0 Bound pvc-27a36535-18a1-4fde-ab6d-e7ee7d3c2744 5Gi RW0 gp3-csi <unset> 22m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.2. 部署 SPIRE 代理 复制链接链接已复制到粘贴板!
您可以配置 SpireAgent
自定义资源(CR)来部署和配置 SPIRE 代理。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 已在集群中安装了 Zero Trust Workload Identity Manager。
流程
创建
SpireAgent
CR:创建一个定义
SpireAgent
CR 的 YAML 文件,如SpireAgent.yaml
:SpireAgent.yaml
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用配置:
oc apply -f SpireAgent.yaml
$ oc apply -f SpireAgent.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 SPIRE Agent 的守护进程集是否已就绪并可用:
oc get daemonset -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
$ oc get daemonset -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-agent 3 3 3 3 3 <none> 10m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-agent 3 3 3 3 3 <none> 10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 SPIRE Agent pod 的状态是否为
Running
:oc get po -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE spire-agent-dp4jb 1/1 Running 0 12m spire-agent-nvwjm 1/1 Running 0 12m spire-agent-vtvlk 1/1 Running 0 12m
NAME READY STATUS RESTARTS AGE spire-agent-dp4jb 1/1 Running 0 12m spire-agent-nvwjm 1/1 Running 0 12m spire-agent-vtvlk 1/1 Running 0 12m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.3. 部署 SPIFFE 容器存储接口驱动程序 复制链接链接已复制到粘贴板!
您可以配置 SpiffeCSIDriver
自定义资源(CR)来部署和配置 SPIFFE Container Storage Interface (CSI)驱动程序。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 已在集群中安装了 Zero Trust Workload Identity Manager。
流程
创建
SpiffeCSIDriver
CR:创建一个定义
SpiffeCSIDriver
CR 对象的 YAML 文件,如SpiffeCSIDriver.yaml
:SpiffeCSIDriver.yaml
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 到 SPIRE 代理的 UNIX 套接字路径。
运行以下命令来应用配置:
oc apply -f SpiffeCSIDriver.yaml
$ oc apply -f SpiffeCSIDriver.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 SPIFFE CSI 驱动程序的守护进程集是否已就绪并可用:
oc get daemonset -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
$ oc get daemonset -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-spiffe-csi-driver 3 3 3 3 3 <none> 114s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-spiffe-csi-driver 3 3 3 3 3 <none> 114s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 SPIFFE Container Storage Interface (CSI) Driver pod 的状态是否为
Running
:oc get po -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE spire-spiffe-csi-driver-gpwcp 2/2 Running 0 2m37s spire-spiffe-csi-driver-rrbrd 2/2 Running 0 2m37s spire-spiffe-csi-driver-w6s6q 2/2 Running 0 2m37s
NAME READY STATUS RESTARTS AGE spire-spiffe-csi-driver-gpwcp 2/2 Running 0 2m37s spire-spiffe-csi-driver-rrbrd 2/2 Running 0 2m37s spire-spiffe-csi-driver-w6s6q 2/2 Running 0 2m37s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.4. 部署 SPIRE OpenID Connect Discovery 提供程序 复制链接链接已复制到粘贴板!
您可以配置 SpireOIDCDiscoveryProvider
自定义资源(CR) 来部署和配置 SPIRE OpenID Connect (OIDC) 发现供应商。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 已在集群中安装了 Zero Trust Workload Identity Manager。
流程
创建
SpireOIDCDiscoveryProvider
CR:创建一个 YAML 文件来定义
SpireOIDCDiscoveryProvider
CR,例如SpireOIDCDiscoveryProvider.yaml
:SpireOIDCDiscoveryProvider.yaml
示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用配置:
oc apply -f SpireOIDCDiscoveryProvider.yaml
$ oc apply -f SpireOIDCDiscoveryProvider.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 OIDC Discovery Provider 的部署是否已就绪并可用:
oc get deployment -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
$ oc get deployment -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY UP-TO-DATE AVAILABLE AGE spire-spiffe-oidc-discovery-provider 1/1 1 1 2m58s
NAME READY UP-TO-DATE AVAILABLE AGE spire-spiffe-oidc-discovery-provider 1/1 1 1 2m58s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 OIDC Discovery Provider pod 的状态是否为
Running
:oc get po -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE spire-spiffe-oidc-discovery-provider-64586d599f-lcc94 2/2 Running 0 7m15s
NAME READY STATUS RESTARTS AGE spire-spiffe-oidc-discovery-provider-64586d599f-lcc94 2/2 Running 0 7m15s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow