Perché l'aggiornamento del cluster non riesce a causa dei prerequisiti di aggiornamento di Pod Security?
Quando si esegue l'aggiornamento di " IBM Cloud Kubernetes Service " da una versione Kubernetes 1.24 a una versione 1.25, l'aggiornamento non va a buon fine e viene visualizzato un messaggio di errore simile a quello riportato nell'esempio seguente.
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'
Il controller di ammissione " Kubernetes " ( PodSecurityPolicy ) è stato rimosso nella versione Kubernetes ( 1.25 ) e sostituito con un nuovo controller di ammissione denominato "Pod Security".
Per aggiornare in modo sicuro i cluster IBM Cloud Kubernetes Service dalla versione 1.24 alla versione 1.25, il cluster PodSecurityPolicies (PSP) ed il controllo dell'accesso basato sul ruolo associato devono soddisfare i seguenti
prerequisiti.
- Non possono esistere PSP oltre i 5 PSP definiti IBM Cloud.
- Devono esistere i bind del ruolo cluster definiti da IBM Cloud che forniscono a tutti gli utenti e agli account di servizio l'autorizzazione ad utilizzare i PSP con privilegi e limitati definiti da IBM Cloud.
Questi prerequisiti assicurano che la configurazione 1.24 PodSecurityPolicy della versione del cluster sia equivalente alla configurazione 1.25 Pod Security Admission e che l'aggiornamento e il passaggio a Pod Security Admission non
interrompano le applicazioni esistenti. Tieni presente che questi prerequisiti non precludono l'uso di provider di sicurezza pod di terzi.
Prima di iniziare
- Esamina le informazioni sulla versione di “ 1.25 ” e le operazioni di aggiornamento (versione archiviata).
- Consultare la guida Migrating from PSPs to Pod Security Admission.
Se non si è pronti a migrare a Pod Security Admission, è possibile cancellare il messaggio di stato eseguendo un aggiornamento del master cluster.
Se sono già state eseguite le azioni preliminari per l'aggiornamento di Pod Security Admission, il messaggio di errore indica un'azione che potrebbe essere stata tralasciata o una modifica imprevista alle risorse definite d IBM Cloud Kubernetes Service, che è necessario risolvere. Completare la seguente procedura in base al messaggio visualizzato.
Impossibile ottenere PodSecurityPolicies
- Immetti il seguente comando per ottenere i tuoi PSP.
kubectl get podsecuritypolicies - Se non è presente alcun errore, provare di nuovo ad eseguire l'aggiornamento del master cluster.
Trovato non -IBM PodSecurityPolicy
È necessario rimuovere ulteriori PSP.
Prima di aggiornare il tuo cluster alla versione 1.25, verifica che esistano solo i seguenti PSP.
ibm-privileged-pspibm-anyuid-pspibm-anyuid-hostpath-pspibm-anyuid-hostaccess-pspibm-restricted-psp
-
Elencare i propri PSP.
kubectl get podsecuritypolicies -
Se l' PodSecurityPolicy e aggiuntivo non è più in uso, cancellarlo. Se sono presenti ulteriori politiche di sicurezza del pod, esamina la guida alla migrazione.
kubectl delete podsecuritypolicies PSP -
Ripetere l'aggiornamento del cluster.
Impossibile ottenere l' ClusterRoleBinding. privilegiato-psp-utente
Questo messaggio indica che il bind del ruolo cluster privileged-psp-user non esiste o che altri errori hanno impedito all'operazione di aggiornamento di leggere la risorsa.
ClusterRoleBinding privileged-psp-user non ha previsto roleRef
Questo errore indica una modifica non prevista e che il bind del ruolo cluster fa riferimento al ruolo cluster errato.
ClusterRoleBinding privileged-psp-user non ha gli argomenti previsti
Se questa modifica era intenzionale, devi prima determinare se le tue applicazioni possono essere eseguite con il bind del ruolo cluster. Se possibile, creare o aggiornare il bind del ruolo cluster limitato - psp - user.
Impossibile ottenere l' ClusterRoleBinding restricted-psp-user
Questo messaggio indica che il bind del ruolo cluster restricted-psp-user non esiste o che qualche altro errore ha impedito all'operazione di aggiornamento di leggere la risorsa.
- Ottieni i dettagli del bind del ruolo cluster
restricted-psp-user.kubectl get clusterrolebindings restricted-psp-user - Se ricevi un errore
NotFound, crea o aggiorna il bind del ruolo cluster restricted - psp - user.
ClusterRoleBinding restricted-psp-user non ha previsto roleRef
Questo errore indica che si tratta di una modifica non prevista e che il bind del ruolo cluster fa riferimento al ruolo cluster errato.
Per modificare l' roleRef, segui i passaggi riportati di seguito.
- Eliminare il bind del ruolo cluster.
kubectl delete clusterrolebinding restricted-psp-user - Crea o aggiorna il bind del ruolo cluster restricted - psp - user.
ClusterRoleBinding restricted-psp-user non ha argomenti previsti
Se questa modifica era intenzionale, è necessario prima determinare se le applicazioni possono essere eseguite correttamente con il bind del ruolo cluster.
Quindi, crea o aggiorna il bind del ruolo cluster restricted - psp - user.
Creazione o aggiornamento dell' privileged-psp-user ClusterRoleBinding
Crea o aggiorna il bind del ruolo cluster di privileged-psp-user immettendo il seguente comando.
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
Creazione del bind del ruolo cluster restricted-psp-user
Creare o aggiornare l' restricted-psp-user ClusterRoleBinding eseguendo il seguente 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