Ajout d'une autorité de certification de confiance à Red Hat OpenShift on IBM Cloud
Cloud privé virtuel 4.19 et plus tard Nœuds de travail RHCOS Nœuds de travail RHEL
Découvrez comment ajouter une autorité de certification (CA) de confiance à votre cluster Red Hat® OpenShift® on IBM Cloud®. Il peut être nécessaire d'ajouter une autorité de certification de confiance lorsque vous récupérez des images à partir d'un registre auto-hébergé qui utilise un certificat signé par une autorité de certification personnalisée.
Ajout d'une autorité de certification de confiance à votre cluster
Pour ajouter une autorité de certification de confiance à votre cluster Red Hat OpenShift on IBM Cloud, vous devez créer une carte de configuration contenant votre certificat d'autorité de certification et déployer un daemonset qui installe le certificat sur tous les nœuds de travail.
Avant de commencer, assurez-vous que votre fichier de certificat CA est prêt. Le certificat doit être au format PEM.
-
Créez le configmap
openshift-config-user-ca-bundleavec votre certificat d'autorité de certification. Remplacez<path-to-your-ca-cert>par le chemin d'accès à votre fichier de certificat CA.kubectl create cm openshift-config-user-ca-bundle -n kube-system --from-file=openshift-config-user-ca-bundle.crt=<path-to-your-ca-cert> -
Créez le script qui installe l'autorité de certification de confiance sur chaque nœud.
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 -
Créer le daemonset qui exécute le script sur tous les nœuds.
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 -
Vérifiez que l'autorité de certification approuvée a été installée en consultant les journaux du jeu de démons.
oc logs -n kube-system -l app=update-openshift-config-user-ca-bundle --tail=-1
Une fois le daemonset terminé, votre autorité de certification de confiance est installée sur tous les nœuds de travail et votre cluster peut extraire des images des registres qui utilisent des certificats signés par votre autorité de certification personnalisée.