第 7 章 使用证书
证书供 OpenShift 中的不同组件用来验证对集群的访问。对于依赖自签名证书的集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包中,并使用 Red Hat OpenShift AI 中的 CA 捆绑包。您还可以在与集群范围捆绑包分开的自定义 CA 捆绑包中使用自签名证书。管理员可以添加 CA 捆绑包,从所有命名空间中删除 CA 捆绑包,从单个命名空间中删除 CA 捆绑包,或者手动管理证书更改,而不是系统。
7.1. 了解 OpenShift AI 中的证书
对于依赖自签名证书的 OpenShift 集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包(ca-bundle.crt
),并使用 Red Hat OpenShift AI 中的 CA 捆绑包。您还可以在与集群范围捆绑包分开的自定义 CA 捆绑包(odh-ca-bundle.crt
)中使用自签名证书。
7.1.1. 如何注入 CA 捆绑包
安装 OpenShift AI 后,Red Hat OpenShift AI Operator 会自动创建一个空的 odh-trusted-ca-bundle
配置文件(ConfigMap),Cluster Network Operator (CNO)将集群范围的 CA 捆绑包注入 odh-trusted-ca-bundle
configMap,标签为 "config.openshift.io/inject-trusted-cabundle"。在受影响命名空间中部署的组件负责将此 configMap 挂载为部署 pod 中的卷。
apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/part-of: opendatahub-operator config.openshift.io/inject-trusted-cabundle: 'true' name: odh-trusted-ca-bundle
在 CNO operator 注入捆绑包后,它会使用包含证书的 ca-bundle.crt
文件更新 ConfigMap。
apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/part-of: opendatahub-operator config.openshift.io/inject-trusted-cabundle: 'true' name: odh-trusted-ca-bundle data: ca-bundle.crt: | <BUNDLE OF CLUSTER-WIDE CERTIFICATES>
7.1.2. ConfigMap 的管理方式
默认情况下,Red Hat OpenShift AI Operator 管理 odh-trusted-ca-bundle
ConfigMap。如果要管理或删除 odh-trusted-ca-bundle
ConfigMap,或者添加与集群范围 CA 捆绑包(ca-bundle.crt
)分开的自定义 CA 捆绑包 (odh-ca-bundle.crt
),您可以在 Operator 的 DSC Initialization (DSCI) 对象中使用 trustedCABundle
属性。
spec: trustedCABundle: managementState: Managed customCABundle: ""
在 Operator 的 DSCI 对象中,您可以将 spec.trustedCABundle.managementState
字段设置为以下值:
-
Managed
: Red Hat OpenShift AI Operator 管理odh-trusted-ca-bundle
ConfigMap,并将其添加到所有非保留现有命名空间和新命名空间中( ConfigMap 不会添加到任何保留或系统命名空间中,如default
,openshift-\*
或kube-*
)。ConfigMap 会自动更新,以反映对customCABundle
字段所做的任何更改。这是安装 Red Hat OpenShift AI 后的默认值。 -
Unmanaged
: Red Hat OpenShift AI Operator 不管理odh-trusted-ca-bundle
ConfigMap,允许管理员管理它。将managementState
从Managed
改为Unmanaged
不会删除odh-trusted-ca-bundle
ConfigMap,但如果对customCABundle
字段进行更改,则不会更新 ConfigMap。
在 Operator 的 DSCI 对象中,您可以将自定义证书添加到 spec.trustedCABundle.customCABundle
字段中。这会将包含证书的 odh-ca-bundle.crt
文件添加到 odh-trusted-ca-bundle
ConfigMap 中,如下例所示:
apiVersion: v1 kind: ConfigMap metadata: labels: app.kubernetes.io/part-of: opendatahub-operator config.openshift.io/inject-trusted-cabundle: 'true' name: odh-trusted-ca-bundle data: ca-bundle.crt: | <BUNDLE OF CLUSTER-WIDE CERTIFICATES> odh-ca-bundle.crt: | <BUNDLE OF CUSTOM CERTIFICATES>