¿Por qué falla la actualización de mi clúster debido a los requisitos previos de actualización de seguridad de pod?
Al actualizar su IBM Cloud Kubernetes Service desde la versión Kubernetes 1.24 a la versión 1.25, la actualización falla y aparece un mensaje de error similar al del siguiente ejemplo.
Version update canceled. CAE009: Cannot complete cluster master operations because the cluster does not pass Pod Security upgrade prerequisites. Reason: [ClusterRoleBinding 'restricted-psp-user' does not have expected subjects]. For more information, see the troubleshooting docs: 'https://ibm.biz/master_pod_security_upgrade_iks_125'
El controlador de admisión PodSecurityPolicy Kubernetes se eliminó en Kubernetes 1.25 y se sustituyó por un nuevo controlador de admisión de seguridad de pods.
Para actualizar de forma segura los clústeres de IBM Cloud Kubernetes Service de la versión 1.24 a la versión 1.25, el clúster PodSecurityPolicies (PSP) y el control de acceso basado en roles asociado deben cumplir los requisitos
previos siguientes.
- No pueden existir PSP más allá de los 5 IBM Cloud PSP definidos.
- Los enlaces de rol de clúster definidos de IBM Cloud que otorgan a todos los usuarios y cuentas de servicio autorización para utilizar los PSP restringidos y con privilegios definidos de IBM Cloud deben existir.
Estos requisitos previos garantizan que la configuración de la versión 1.24 PodSecurityPolicy del clúster es equivalente a la configuración de Admisión de seguridad de pod de la versión 1.25 y que la actualización y el cambio a Admisión
de seguridad de pod no interrumpen las aplicaciones existentes. Tenga en cuenta que estos requisitos previos no impiden el uso de proveedores de seguridad de pod de terceros.
Antes de empezar
- Consulta la información sobre la versión de 1.25 y las acciones de actualización (versión archivada).
- Revise la guía Migración de PSP a Admisión de seguridad de pod.
Si no está preparado para migrar a Pod Security Admission, puede borrar el mensaje de estado realizando una renovación del nodo maestro del clúster.
Si ya ha realizado las acciones previas necesarias para la actualización de Pod Security Admission, el mensaje de error indica una acción que quizá haya omitido o un cambio inesperado en los recursos definidos c IBM Cloud Kubernetes Service, que debe solucionar. Realice los pasos siguientes basándose en el mensaje que está viendo.
No se ha podido obtener PodSecurityPolicies
- Ejecuta el siguiente comando para obtener tus PSP.
kubectl get podsecuritypolicies - Si no hay ningún error, vuelva a intentar actualizar el maestro de clúster.
Se ha encontrado que no esIBM PodSecurityPolicy
Hay PSP adicionales que deben eliminarse.
Antes de actualizar el clúster a la versión 1.25, verifique que solo existen los siguientes PSP.
ibm-privileged-pspibm-anyuid-pspibm-anyuid-hostpath-pspibm-anyuid-hostaccess-pspibm-restricted-psp
-
Liste los PSP.
kubectl get podsecuritypolicies -
Si la PodSecurityPolicy adicional ya no se utiliza, elimínela. Si hay políticas de seguridad de pod adicionales, revise la guía de migración.
kubectl delete podsecuritypolicies PSP -
Vuelva a intentar la actualización del clúster.
No se pudo obtener ClusterRoleBinding privilegiado-usuario-psp
Este mensaje indica que el enlace de rol de clúster de privileged-psp-user no existe o que algún otro error ha impedido que la operación de actualización leyera el recurso.
ClusterRoleBinding privileged-psp-user no tiene lo esperado roleRef
Este error indica un cambio inesperado y que el enlace de rol de clúster hace referencia al rol de clúster incorrecto.
ClusterRoleBinding privileged-psp-user no tiene los temas esperados
Si este cambio ha sido intencionado, primero debe determinar si las apps se pueden ejecutar con el enlace de rol de clúster. Si pueden, cree o actualice el enlace de rol de clúster restricted-psp-user.
No se pudo obtener ClusterRoleBinding restricted-psp-user
Este mensaje indica que el enlace de rol de clúster restricted-psp-user no existe o que algún otro error ha impedido que la operación de actualización leyera el recurso.
- Obtenga los detalles del enlace de rol de clúster de
restricted-psp-user.kubectl get clusterrolebindings restricted-psp-user - Si obtiene un error
NotFound, cree o actualice el enlace de rol de clúster restricted-psp-user.
ClusterRoleBinding restricted-psp-user no tiene lo esperado roleRef
Este error indica que es un cambio inesperado y que el enlace de rol de clúster hace referencia al rol de clúster incorrecto.
Sigue los siguientes pasos para cambiar el roleRef.
- Elimina la vinculación de la función del clúster.
kubectl delete clusterrolebinding restricted-psp-user - Cree o actualice el enlace de rol de clúster restricted-psp-user.
ClusterRoleBinding restricted-psp-user no tiene los temas esperados
Si este cambio ha sido intencionado, primero debe determinar si las aplicaciones se pueden ejecutar correctamente con el enlace de rol de clúster.
A continuación, cree o actualice el enlace de rol de clúster restricted-psp-user.
Creación o actualización de la privileged-psp-user ClusterRoleBinding
Cree o actualice el enlace de rol de clúster de privileged-psp-user ejecutando el mandato siguiente.
kubectl apply -f - <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: privileged-psp-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: ibm-privileged-psp-user
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:masters
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:nodes
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:serviceaccounts
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
EOF
Creación del enlace de rol de clúster de restricted-psp-user
Cree o actualice el archivo de configuración de la aplicación ( restricted-psp-user ) ClusterRoleBinding ejecutando el siguiente comando.
kubectl apply -f - <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: restricted-psp-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: ibm-restricted-psp-user
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:masters
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:nodes
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:serviceaccounts
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: system:authenticated
EOF