Kubewarden en Rancher Manager Server
La UI Extension para Kubewarden se intregra perfectamente con la consola de Rancher Manager Server. La extensión UI automatiza la instalación y configuración de Kubewarden y configura el acceso a las políticas mantenidas por SUSE. La extensión UI brinda acceso a un catálogo seleccionado de políticas listas para usar. Con la extensión UI, se pueden explorar, instalar y configurar estas políticas.
La UI Extension para Kubewarden proporciona una descripción general de los componentes de Kubewarden y su comportamiento. Esto incluye el acceso a las métricas de Kubewarden y a los eventos de seguimiento. Un operador puede comprender el impacto de las políticas en el clúster y solucionar problemas.
Además, La UI Extension para Kubewarden interfaz de usuario de Policy Reporter, que brinda una descripción visual del estado de cumplimiento del clúster de Kubernetes. Con esta interfaz de usuario, un operador puede identificar rápidamente todos los recursos de Kubernetes que no cumplen, comprender los motivos de las infracciones y actuar en consecuencia.
Instalación de UI Extension para Kubewarden
- Ingresar a la consola web de Rancher Manager Server y dirigirse al botón de Extensiones ubicado en la parte inferior izquierda 🧩
- Cuando se encuentre en la pantalla de Extensions, agregar el Repositorio de Extensions de Rancher, en la pantalla de Extensions, en el menú de los tres puntos verticales, seleccionar la opción Manage Repositories
- A continuación dar click en el botón Create
- En el campo Name colocar: rancher-ui-plugins
- En Target seleccionar Git repository...
- En el campo Git Repo URL colocar lo siguiente: https://github.com/rancher/ui-plugin-charts y dar click en Create
- Verifica que en la página de Repositories aparezca un nuevo Repositorio llamado Rancher Extensions y que se encuentre en estado Active
- Regresar a la consola web de Rancher Manager Server y dirigirse al botón de Extensiones ubicado en la parte inferior izquierda, debes comprobar que en la pestaña Available tengas como opción Kubewarden
- Dar click en el botón Install de la Extension Kubewarden
- Selecciona la versión 2.1.0 y dar click en el botón Install
- Aparecerá un mensage como el siguiente: Extensions changed - reload required, debes dar click en el botón Reload
- Dirigirse al Cluster de Kubernetes llamado cluster1
- En el menú principal del cluster, veras una nueva opción llamada Kubewarden, debes dar click en ese menú.
Instalación Kubewarden (cluster1)
ESTA PRACTICA SE REALIZARA EN CLUSTER1
- En este punto nos encontramos listos para instalar Kubewarden en el cluster de Kubernetes y administrar políticas desde la Consola Wen de Rancher Manager con la Extension de Kubewarden, debes dar click en el botón Install Kubewarden
- A continiación aparecerá el siguiente mensaje: You will need the Kubewarden Helm repository (https://charts.kubewarden.io) to install the
kubewardenchart, por lo que debes dar click en el botón Add Kubewarden Repository - Nos aparecerá el siguiente mensage: Kubewarden App Install This will take you to the app installation page for Kubewarden. Dar click en el botón Install Kubewarden
- En la siguiente pantalla Install: Step 1 dar click en el botón Next
- En la siguiente pantalla Install: Step 2 marcar con un check la opción Enable Policy Reporter UI y dar click en el botón Install
- Esperar a que finalice la instalación de Kubewarden, se mostrará un log que hasta el final debe mostrar mensaje similar al siguiente:
SUCCESS: helm upgrade --install=true --namespace=cattle-kubewarden-system --timeout=10m0s --values=/home/shell/helm/values-kubewarden-controller-2.0.11.yaml --version=2.0.11 --wait=true rancher-kubewarden-controller /home/shell/helm/kubewarden-controller-2.0.11.tgz - En el menú principal del cluster, veras una nueva opción llamada Kubewarden, debes dar click en ese menú y llegarás a la ventana Welcome to Kubewarden
- Se te mostrará el mensaje: The default PolicyServer and policies are not installed, click the button below to begin installing this chart. A continuación dar click en el botón Install Chart
- En la siguiente pantalla Install: Step 1 dar click en el botón Next
- En la siguiente pantalla Install: Step 2 dar click en el botón Install
- Esperar a que finalice la instalación de Kubewarden-defaults, se mostrará un log que hasta el final debe mostrar mensaje similar al siguiente:
SUCCESS: helm upgrade --install=true --namespace=cattle-kubewarden-system --timeout=10m0s --values=/home/shell/helm/values-kubewarden-defaults-2.0.0.yaml --version=2.0.0 --wait=true rancher-kubewarden-defaults /home/shell/helm/kubewarden-defaults-2.0.0.tgz - En el menú principal del cluster, veras una nueva opción llamada Kubewarden, debes dar click en ese menú y llegarás a la ventana Welcome to Kubewarden en donde debe aparecer del Policy Servers como Active
Crear una nueva Política: Pod Privileged Policy
- Expandir el menú Kubewarden y dirigirse a la opción ClusterAdmissionPolicies y dar click en el botón Create
- Aparecera el siguiente mensaje: Official Kubewarden policies are hosted on ArtifactHub, in order to show these you will need to add
artifacthub.ioto the whitelist-domain setting., por lo que debes dar click en el botón Add ArtifactHub To Whitelist - A continuación aparecerán una serie de opciones con las políticas disponibles en ArtifactHub para poder utilizar, por lo que debes ubicar la política llamada Pod Privileged Policy y seleccionarla.
- En la siguiente pantalla, bajar hasta el final de la página y dar click en el botón Next
- En la siguiente pantalla, en la pestaña General en el campo Name colocar lo siguiente: privileged-pods
- Verificar que el campo llamado Policy Server, este seleccionado con el nombre default
- Revisar las configuraciones definidas en la pestaña Rules, no hacer ningún cambio.
- Revisar las configuraciones definidas en la pestaña Namespace Selector, no hacer ningún cambio.
- Posteriormente dar click en el botón Finish
- Esperar a que la configuración finalice y que aparezca la política en estado Active
Validando la Política: Pod Privileged Policy
-
Ingresar como usuario administrador al cluster de Kubernetes con el siguiente comando:
export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml -
Creemos un Pod con un Contenedor que no está en modo privileged:
Esto producirá el siguiente resultado:kubectl apply -f - <<EOF apiVersion: v1 kind: Pod metadata: name: unprivileged-pod spec: containers: - name: nginx image: nginx:latest EOFEl Pod se creó exitosamente, con lo que comprobamos que contenedores que NO esten en modo privilegiado se crearan sin ningún inconveniente.pod/unprivileged-pod created -
Ahora, creemos un Pod con securityContext en privileged con valor true, la configuración securityContext: privileged: true proporciona a los contenedores permisos extendidos en el host, lo que puede ser necesario para ciertas aplicaciones pero conlleva riesgos significativos de seguridad.
La política ha denegado la creación del Pod y debería ver el siguiente mensaje:kubectl apply -f - <<EOF apiVersion: v1 kind: Pod metadata: name: privileged-pod spec: containers: - name: nginx image: nginx:latest securityContext: privileged: true EOFLo anterior comprueba que la politica creada anteriormente esta funcionando correctamente, ya que NO permite crear contnedores en modo privilegedError from server: error when creating "STDIN": admission webhook "clusterwide-privileged-pods.kubewarden.admission" denied the request: Privileged container is not allowed
Limpieza del ambiente
- Eliminar los recursos tipo ClusterAdmissionPolicies y/o AdmissionPolicies que haya creado, para lo cual debes seleccionarlos y dar click en el botón Delete
- Eliminar los recursos tipo PolicyServers que haya creado, para lo cual debes seleccionarlos y dar click en el botón Delete
- En la consola web de Rancher Manager Server dirigirse al botón de Extensiones ubicado en la parte inferior izquierda.
- En la pestaña Installed ubicar Kubewarden y dar click en el botón Uninstall
- Aparecerá un mensage como el siguiente: Extensions changed - reload required, debes dar click en el botón Reload
- Aperturar una terminal en el servidor proporcionado con usuario student e ingresar el cluster utilizando la opción de KUBECONFIG:
export KUBECONFIG=/home/student/rke2_conn/cluster1/cluster1_kubeconfig.yaml - Eliminar los CDRs creados en la instalación de Kubewarden
kubectl delete crd admissionpolicies.policies.kubewarden.io clusteradmissionpolicies.policies.kubewarden.io policyservers.policies.kubewarden.io clusterpolicyreports.wgpolicyk8s.io policyreports.wgpolicyk8s.io - Eliminar los clusterrole creados en la instalación de Kubewarden
kubectl delete clusterrole kubewarden-controller-manager-cluster-role kubewarden-controller-metrics-reader kubewarden-controller-proxy-role audit-scanner-cluster-role kubewarden-controller-manager-cluster-role kubewarden-context-watcher - Eliminar los clusterrolebinding creados en la instalación de Kubewarden
kubectl delete clusterrolebinding kubewarden-controller-manager-cluster-role kubewarden-controller-proxy-rolebinding audit-scanner-cluster-role-viewer audit-scanner-cluster-role kubewarden-context-watcher - Eliminar los mutatingwebhookconfiguration creados en la instalación de Kubewarden
kubectl delete mutatingwebhookconfiguration kubewarden-controller-mutating-webhook-configuration - Eliminar los kubectl delete validatingwebhookconfiguration kubewarden-controller-validating-webhook-configuration creados en la instalación de Kubewarden
kubectl delete validatingwebhookconfiguration kubewarden-controller-validating-webhook-configuration - Eliminar los namespaces: rancher-kubewarden-crds y cattle-kubewarden-system
kubectl delete ns rancher-kubewarden-crds cattle-kubewarden-system