第 9 章 使用证书
OpenShift 中各种组件使用证书来验证对集群的访问。对于依赖自签名证书的集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包中,并使用 Red Hat OpenShift AI 中的 CA 捆绑包。您还可以在与集群范围捆绑包分开的自定义 CA 捆绑包中使用自签名证书。管理员可以添加 CA 捆绑包,从所有命名空间中删除 CA 捆绑包,从单个命名空间中删除 CA 捆绑包,或者手动管理证书更改,而不是系统。
9.1. 了解 OpenShift AI 中的证书 复制链接链接已复制到粘贴板!
对于依赖自签名证书的 OpenShift 集群,您可以将这些自签名证书添加到集群范围的证书颁发机构(CA)捆绑包(ca-bundle.crt)中,并使用 Red Hat OpenShift AI 中的 CA 捆绑包。您还可以在与集群范围捆绑包分开的自定义 CA 捆绑包(odh-ca-bundle.crt)中使用自签名证书。
9.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>
9.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-bundleConfigMap,并将其添加到所有非保留现有命名空间和新命名空间中( ConfigMap 不会添加到任何保留或系统命名空间中,如default,openshift-\*或kube-*)。ConfigMap 会自动更新,以反映对customCABundle字段所做的任何更改。这是安装 Red Hat OpenShift AI 后的默认值。 -
Removed: Red Hat OpenShift AI Operator 删除odh-trusted-ca-bundleConfigMap (如果存在),并禁用在新命名空间中创建 ConfigMap。如果将此字段从Managed改为Removed,则odh-trusted-ca-bundleConfigMap 也会从命名空间中删除。这是将 Red Hat OpenShift AI 从 2.7 或更早版本升级到 2.16 后的默认值。 -
Unmanaged: Red Hat OpenShift AI Operator 不管理odh-trusted-ca-bundleConfigMap,允许管理员管理它。将managementState从Managed改为Unmanaged不会删除odh-trusted-ca-bundleConfigMap,但如果对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>