Añadir una CA de confianza a Red Hat OpenShift on IBM Cloud
Nube privada virtual 4.19 y más tarde Nodos trabajadores RHCOS Nodos trabajadores RHEL
Aprenda a añadir una Autoridad de Certificación (CA) de confianza a su cluster Red Hat® OpenShift® on IBM Cloud®. Es posible que tenga que añadir una CA de confianza cuando extraiga imágenes de un registro autoalojado que utilice un certificado firmado por una CA personalizada.
Añadir una CA de confianza a su clúster
Para añadir una CA de confianza a su cluster Red Hat OpenShift on IBM Cloud, debe crear un configmap que contenga su certificado CA y desplegar un daemonset que instale el certificado en todos los nodos trabajadores.
Antes de empezar, asegúrese de tener listo su archivo de certificado CA. El certificado debe estar en formato PEM.
-
Cree el configmap
openshift-config-user-ca-bundlecon su certificado CA. Sustituya<path-to-your-ca-cert>por la ruta a su archivo de certificado 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> -
Crea el script que instala la CA de confianza en cada nodo.
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 -
Crea el daemonset que ejecuta el script en todos los nodos.
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 -
Verifique que se ha instalado la CA de confianza comprobando los registros del conjunto de demonios.
oc logs -n kube-system -l app=update-openshift-config-user-ca-bundle --tail=-1
Una vez completado el daemonset, su CA de confianza estará instalada en todos los nodos trabajadores y su cluster podrá extraer imágenes de registros que utilicen certificados firmados por su CA personalizada.