Adição de uma CA confiável a Red Hat OpenShift on IBM Cloud
Nuvem privada virtual 4.19 e posteriormente Nós de trabalho do RHCOS Nós de trabalho RHEL
Saiba como adicionar uma autoridade de certificação (CA) confiável ao seu cluster Red Hat® OpenShift® on IBM Cloud®. Talvez seja necessário adicionar uma CA confiável ao extrair imagens de um registro auto-hospedado que usa um certificado assinado por uma CA personalizada.
Adição de uma CA confiável ao seu cluster
Para adicionar uma CA confiável ao cluster Red Hat OpenShift on IBM Cloud, crie um configmap que contenha o certificado da CA e implante um daemonset que instale o certificado em todos os nós de trabalho.
Antes de começar, certifique-se de que seu arquivo de certificado CA esteja pronto. O certificado deve estar no formato PEM.
-
Crie o mapa de configuração
openshift-config-user-ca-bundlecom seu certificado CA. Substitua<path-to-your-ca-cert>pelo caminho para o arquivo de certificado da 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> -
Crie o script que instala a CA confiável em cada nó.
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 -
Crie o conjunto de daemons que executa o script em todos os nós.
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 se a CA confiável foi instalada verificando os registros do daemonset.
oc logs -n kube-system -l app=update-openshift-config-user-ca-bundle --tail=-1
Após a conclusão do conjunto de daemons, a CA confiável é instalada em todos os nós de trabalho e o cluster pode extrair imagens de registros que usam certificados assinados pela CA personalizada.