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。
流程
创建
SpireServerCR:创建一个 YAML 文件来定义
SpireServerCR,如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) 签发者域。该值必须是有效的 URL。
运行以下命令来应用配置:
oc apply -f SpireServer.yaml
$ oc apply -f SpireServer.yamlCopy 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-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY AGE spire-server 1/1 65s
NAME READY AGE spire-server 1/1 65sCopy 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-managerCopy 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) 111sCopy 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-managerCopy 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> 22mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.2. 部署 SPIRE 代理 复制链接链接已复制到粘贴板!
您可以配置 SpireAgent 自定义资源 (CR) 来部署和配置 SPIRE 代理。
先决条件
-
您可以使用具有
cluster-admin角色的用户访问集群。 - 已在集群中安装了 Zero Trust Workload Identity Manager。
流程
创建
SpireAgentCR:创建一个定义
SpireAgentCR 的 YAML 文件,如SpireAgent.yaml:SpireAgent.yaml示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用配置:
oc apply -f SpireAgent.yaml
$ oc apply -f SpireAgent.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令,验证 SPIRE 代理的守护进程集是否已就绪并可用
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-managerCopy 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> 10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证 SPIRE 代理 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-managerCopy 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 12mCopy 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。
流程
创建
SpiffeCSIDriverCR:创建一个定义
SpiffeCSIDriverCR 对象的 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.yamlCopy 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-managerCopy 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> 114sCopy 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-managerCopy 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 2m37sCopy 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。
流程
创建
SpireOIDCDiscoveryProviderCR:创建一个 YAML 文件来定义
SpireOIDCDiscoveryProviderCR,例如SpireOIDCDiscoveryProvider.yaml:SpireOIDCDiscoveryProvider.yaml示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用配置:
oc apply -f SpireOIDCDiscoveryProvider.yaml
$ oc apply -f SpireOIDCDiscoveryProvider.yamlCopy 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-managerCopy 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 2m58sCopy 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-managerCopy 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 7m15sCopy to Clipboard Copied! Toggle word wrap Toggle overflow