5.4. 为 single-model 服务平台添加授权供应商
您可以将 Authorino 添加为 single-model 服务平台的授权供应商。通过添加授权供应商,您可以为平台上部署的模型启用令牌授权,这样可确保只有授权方能够对模型发出推测请求。
用于将 Authorino 添加为授权提供程序的方法取决于您如何安装单model服务平台。该平台的安装选项如下所述:
- 自动安装
如果您还没有在 OpenShift 集群上创建
ServiceMeshControlPlane
或KNativeServing
资源,您可以将 Red Hat OpenShift AI Operator 配置为安装 KServe 及其依赖项。您可以包含 Authorino 作为自动安装过程的一部分。有关自动安装的更多信息,包括 Authorino,请参阅配置 KServe 的自动安装。
- 手动安装
如果您已在 OpenShift 集群上创建了
ServiceMeshControlPlane
或KNativeServing
资源,则无法 配置 Red Hat OpenShift AI Operator 来安装 KServe 及其依赖项。在这种情况下,您必须手动安装 KServe。您还必须手动配置 Authorino。有关手动安装的更多信息,包括 Authorino,请参阅 手动安装 KServe。
5.4.1. 手动添加授权供应商 复制链接链接已复制到粘贴板!
您可以将 Authorino 添加为 single-model 服务平台的授权供应商。通过添加授权供应商,您可以为平台上部署的模型启用令牌授权,这样可确保只有授权方能够对模型发出推测请求。
要手动将 Authorino 添加为授权提供程序,您必须安装 Red Hat - Authorino
Operator,创建 Authorino 实例,然后将 OpenShift Service Mesh 和 KServe 组件配置为使用该实例。
要手动添加授权供应商,您必须对 OpenShift Service Mesh 实例进行配置更新。要确保 OpenShift Service Mesh 实例处于支持状态,请只 进行本节中显示的更新。
先决条件
- 您已查看了将 Authorino 作为授权提供程序添加的选项,并将手动安装作为适当的选项。请参阅 添加授权提供程序。
- 您已手动安装 KServe 及其依赖项,包括 OpenShift Service Mesh。请参阅 手动安装 KServe。
-
手动安装 KServe 时,您可以将
serviceMesh
组件的managementState
字段的值设置为Unmanaged
。手动添加 Authorino 需要此设置。请参阅 安装 KServe。
5.4.2. 安装 Red Hat Authorino Operator 复制链接链接已复制到粘贴板!
在将 Autorino 添加为授权提供程序前,您必须在 OpenShift 集群上安装 Red Hat - Authorino
Operator。
先决条件
- 具有集群管理员特权。
流程
- 以集群管理员身份登录 OpenShift Web 控制台。
-
在 Web 控制台中,点 Operators
OperatorHub。 - 在 OperatorHub 页面上,在 Filter by keyword 字段中键入 Red Hat - Authorino。
- 点 Red Hat - Authorino Operator。
- 在 Red Hat - Authorino Operator 页面中,查看 Operator 信息,然后点 Install。
- 在 Install Operator 页面中,保留 Update channel,Version,Installation mode,Installed Namespace 和 Update Approval 的默认值。
- 点 Install。
验证
在 OpenShift Web 控制台中,点 Operators
Installed Operators,并确认 Red Hat - Authorino
Operator 显示了以下状态之一:-
Installing
- 安装正在进行中;等待它变为Succeeded
。这可能需要几分钟。 -
Succeeded
- 安装成功。
-
5.4.3. 创建 Authorino 实例 复制链接链接已复制到粘贴板!
在 OpenShift 集群上安装 Red Hat - Authorino
Operator 时,您必须创建一个 Authorino 实例。
先决条件
-
已安装
Red Hat - Authorino
Operator。 您有将资源添加到创建 OpenShift Service Mesh 实例的项目中的权限。请参阅创建 OpenShift Service Mesh 实例。
如需有关 OpenShift 权限的更多信息,请参阅使用 RBAC 定义和应用权限。
流程
- 打开一个新的终端窗口。
登录到 OpenShift 命令行界面(CLI),如下所示:
oc login <openshift_cluster_url> -u <username> -p <password>
$ oc login <openshift_cluster_url> -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个命名空间来安装 Authorino 实例。
oc new-project <namespace_for_authorino_instance>
$ oc new-project <namespace_for_authorino_instance>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意自动安装过程为 Authorino 实例创建一个名为
redhat-ods-applications-auth-provider
的命名空间。考虑在手动安装时使用相同的命名空间名称。要在现有 OpenShift Service Mesh 实例中为 Authorino 实例注册新命名空间,请创建一个包含以下内容的新 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 YAML 文件。
在集群中创建
ServiceMeshMember
资源。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要配置 Authorino 实例,请创建一个新的 YAML 文件,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 YAML 文件。
在集群中创建
Authorino
资源。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对 Authorino 部署进行补丁以注入 Istio sidecar,这会使 OpenShift Service Mesh 实例的 Authorino 实例的一部分。
oc patch deployment <name_of_authorino_instance> -n <namespace_for_authorino_instance> -p '{"spec": {"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}} }'
$ oc patch deployment <name_of_authorino_instance> -n <namespace_for_authorino_instance> -p '{"spec": {"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}} }'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认 Authorino 实例正在运行,如下所示:
检查您为 Authorino 实例创建的命名空间中运行的 pod (和容器),如下例所示:
oc get pods -n redhat-ods-applications-auth-provider -o="custom-columns=NAME:.metadata.name,STATUS:.status.phase,CONTAINERS:.spec.containers[*].name"
$ oc get pods -n redhat-ods-applications-auth-provider -o="custom-columns=NAME:.metadata.name,STATUS:.status.phase,CONTAINERS:.spec.containers[*].name"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认输出类似以下示例:
NAME STATUS CONTAINERS authorino-6bc64bd667-kn28z Running authorino,istio-proxy
NAME STATUS CONTAINERS authorino-6bc64bd667-kn28z Running authorino,istio-proxy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如示例所示,有一个用于 Authorino 实例的 pod。pod 为 Authorino 和您注入的 Istio sidecar 容器。
5.4.4. 将 OpenShift Service Mesh 实例配置为使用 Authorino 复制链接链接已复制到粘贴板!
创建 Authorino 实例时,您必须将 OpenShift Service Mesh 实例配置为使用 Authorino 作为授权供应商。
为确保 OpenShift Service Mesh 实例处于支持状态,请只 进行以下流程中显示的配置更新。
先决条件
- 您已创建了 Authorino 实例,并在 OpenShift Service Mesh 实例中注册 Authorino 实例的命名空间。
- 有修改 OpenShift Service Mesh 实例的权限。请参阅创建 OpenShift Service Mesh 实例。
流程
在一个终端窗口中,如果您还没有以具有更新 OpenShift Service Mesh 实例的用户身份登录 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
oc login <openshift_cluster_url> -u <username> -p <password>
$ oc login <openshift_cluster_url> -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的新 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 YAML 文件。
使用
oc patch
命令将 YAML 文件应用到 OpenShift Service Mesh 实例。oc patch smcp <name_of_service_mesh_instance> --type merge -n <namespace_for_service_mesh_instance> --patch-file <file_name>.yaml
$ oc patch smcp <name_of_service_mesh_instance> --type merge -n <namespace_for_service_mesh_instance> --patch-file <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要只有在 OpenShift Service Mesh 实例中尚未指定其他扩展供应商时,才能应用显示的配置作为补丁。如果您已经指定了其他扩展供应商,则必须手动编辑
ServiceMeshControlPlane
资源来添加配置。
验证
验证您的 Authorino 实例是否已作为扩展供应商添加到 OpenShift Service Mesh 配置中,如下所示:
检查 OpenShift Service Mesh 实例的
ConfigMap
对象:oc get configmap istio-<name_of_service_mesh_instance> -n <namespace_for_service_mesh_instance> --output=jsonpath={.data.mesh}
$ oc get configmap istio-<name_of_service_mesh_instance> -n <namespace_for_service_mesh_instance> --output=jsonpath={.data.mesh}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认您看到与以下示例类似的输出,这表明 Authorino 实例已成功添加为扩展提供程序。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4.5. 为 KServe 配置授权 复制链接链接已复制到粘贴板!
要将 single-model 服务平台配置为使用 Authorino,您必须创建一个全局 AuthorizationPolicy
资源,该资源应用到部署模型时创建的 KServe predictor pod。另外,要考虑在对模型发出 inference 请求时发生的多个网络跃点,您必须创建一个 EnvoyFilter
资源,以持续将 HTTP 主机标头重置为最初包含在ference 请求中的标头。
先决条件
- 您已创建了 Authorino 实例,并将 OpenShift Service Mesh 配置为使用它。
- 有更新集群中的 KServe 部署的权限。
- 您有将资源添加到创建 OpenShift Service Mesh 实例的项目中的权限。请参阅创建 OpenShift Service Mesh 实例。
流程
在一个终端窗口中,如果您还没有以具有更新 KServe 部署权限的用户身份登录 OpenShift 集群,请登录 OpenShift CLI,如下例所示:
oc login <openshift_cluster_url> -u <username> -p <password>
$ oc login <openshift_cluster_url> -u <username> -p <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的新 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您指定的名称必须与添加到 OpenShift Service Mesh 实例的扩展供应商名称匹配。
- 保存 YAML 文件。
在命名空间中为 OpenShift Service Mesh 实例创建
AuthorizationPolicy
资源。oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
$ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的另一个新 YAML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示的
EnvoyFilter
资源持续将 HTTP 主机标头重置为最初包含在任何推销请求中的标头。在命名空间中为您的 OpenShift Service Mesh 实例创建
EnvoyFilter
资源。oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
$ oc create -n <namespace_for_service_mesh_instance> -f <file_name>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
检查
AuthorizationPolicy
资源是否已成功创建。oc get authorizationpolicies -n <namespace_for_service_mesh_instance>
$ oc get authorizationpolicies -n <namespace_for_service_mesh_instance>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认输出类似以下示例:
NAME AGE kserve-predictor 28h
NAME AGE kserve-predictor 28h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查
EnvoyFilter
资源是否已成功创建。oc get envoyfilter -n <namespace_for_service_mesh_instance>
$ oc get envoyfilter -n <namespace_for_service_mesh_instance>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认输出类似以下示例:
NAME AGE activator-host-header 28h
NAME AGE activator-host-header 28h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow