Hinzufügen einer vertrauenswürdigen CA zu Red Hat OpenShift on IBM Cloud
Virtuelle private Cloud 4.19 und später RHCOS-Arbeiter-Knoten RHEL-Arbeitsknoten
Erfahren Sie, wie Sie eine vertrauenswürdige Zertifizierungsstelle (CA) zu Ihrem Red Hat® OpenShift® on IBM Cloud® Cluster hinzufügen. Sie müssen möglicherweise eine vertrauenswürdige Zertifizierungsstelle hinzufügen, wenn Sie Bilder von einer selbst gehosteten Registrierung abrufen, die ein von einer benutzerdefinierten Zertifizierungsstelle signiertes Zertifikat verwendet.
Hinzufügen einer vertrauenswürdigen CA zu Ihrem Cluster
Um eine vertrauenswürdige CA zu Ihrem Red Hat OpenShift on IBM Cloud Cluster hinzuzufügen, erstellen Sie eine Configmap, die Ihr CA-Zertifikat enthält, und stellen ein Daemonset bereit, das das Zertifikat auf allen Worker Nodes installiert.
Bevor Sie beginnen, stellen Sie sicher, dass Sie Ihre CA-Zertifikatsdatei bereithalten. Das Zertifikat muss im PEM-Format vorliegen.
-
Erstellen Sie die
openshift-config-user-ca-bundleconfigmap mit Ihrem CA-Zertifikat. Ersetzen Sie<path-to-your-ca-cert>durch den Pfad zu Ihrer CA-Zertifikatsdatei.kubectl create cm openshift-config-user-ca-bundle -n kube-system --from-file=openshift-config-user-ca-bundle.crt=<path-to-your-ca-cert> -
Erstellen Sie das Skript, das die vertrauenswürdige CA auf jedem Knoten installiert.
cat > openshift-config-user-ca-script.sh <<EOF #!/bin/bash set -e # Exit on any error set -x # Enable debug output if ! diff /tmp/openshift-config-user-ca-bundle/openshift-config-user-ca-bundle.crt /host/etc/pki/ca-trust/source/anchors ; then cp /tmp/openshift-config-user-ca-bundle/openshift-config-user-ca-bundle.crt /host/etc/pki/ca-trust/source/anchors chroot /host update-ca-trust extract if chroot /host systemctl is-enabled coreos-update-ca-trust.service; then chroot /host systemctl restart coreos-update-ca-trust.service fi chroot /host systemctl restart crio.service; fi # Keep container running to maintain daemonset pod sleep inf EOF kubectl delete cm -n kube-system openshift-config-user-ca-script --ignore-not-found kubectl create cm -n kube-system --from-file openshift-config-user-ca-script.sh openshift-config-user-ca-script -
Erstellen Sie das Daemonset, das das Skript auf allen Knoten ausführt.
OCP_REGISTRY_ENDPOINT=$(kubectl get pod -n kube-system -l k8s-app=kube-apiserver-proxy -o json | jq -r '.items[0].spec.containers[0].image | select( . != null )' | awk -F/ '{ print $1 }') if [[ -z "${OCP_REGISTRY_ENDPOINT}" ]]; then OCP_REGISTRY_ENDPOINT=$(kubectl get pod -n kube-system -l app=ibm-master-proxy-static -o json | jq -r '.items[0].spec.containers[0].image | select( . != null )' | awk -F/ '{ print $1 }') fi OCP_VERSION=$(oc version -o json | jq -r .openshiftVersion) kubectl apply -f - <<EOF --- apiVersion: apps/v1 kind: DaemonSet metadata: name: update-openshift-config-user-ca-bundle namespace: kube-system labels: app: update-openshift-config-user-ca-bundle spec: selector: matchLabels: app: update-openshift-config-user-ca-bundle template: metadata: labels: app: update-openshift-config-user-ca-bundle spec: containers: - command: ["/bin/bash", "-c", "/tmp/openshift-config-user-ca-script/openshift-config-user-ca-script.sh"] image: ${OCP_REGISTRY_ENDPOINT}/armada-master/ocp-release-${OCP_VERSION}-x86_64:cli imagePullPolicy: IfNotPresent name: update-openshift-config-user-ca-bundle resources: requests: cpu: 1m memory: 1Mi securityContext: privileged: true volumeMounts: - name: host-volume mountPath: /host - name: openshift-config-user-ca-bundle mountPath: /tmp/openshift-config-user-ca-bundle - name: openshift-config-user-ca-script mountPath: /tmp/openshift-config-user-ca-script hostIPC: true hostNetwork: true hostPID: true tolerations: - operator: Exists volumes: - name: host-volume hostPath: path: / type: Directory - name: openshift-config-user-ca-bundle configMap: name: openshift-config-user-ca-bundle - name: openshift-config-user-ca-script configMap: name: openshift-config-user-ca-script defaultMode: 0755 EOF kubectl rollout status ds -n kube-system update-openshift-config-user-ca-bundle -
Überprüfen Sie, ob die vertrauenswürdige CA installiert wurde, indem Sie die Daemonset-Protokolle überprüfen.
oc logs -n kube-system -l app=update-openshift-config-user-ca-bundle --tail=-1
Nach Abschluss des Daemonsets ist Ihre vertrauenswürdige Zertifizierungsstelle auf allen Arbeitsknoten installiert und Ihr Cluster kann Bilder aus Registrierungen abrufen, die von Ihrer benutzerdefinierten Zertifizierungsstelle signierte Zertifikate verwenden.