¡Hola!
¡Bienvenido/a a Microsoft Q&A!
Problema: No se Puede Enlazar el Certificado al Ingress de AKS
Descripción del Problema
El problema de no poder enlazar el certificado al Ingress de Azure Kubernetes Service (AKS) utilizando Azure Key Vault puede deberse a varias razones, incluyendo configuraciones incorrectas o falta de permisos adecuados. A continuación, se detallan los pasos para solucionar este problema.
Pasos para Solucionar el Problema
Configurar el SecretProviderClass:
- Descripción: Asegúrese de que el
SecretProviderClass
esté configurado correctamente para acceder al certificado almacenado en Azure Key Vault. - Ejemplo:
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
secretObjects:
- secretName: ingress-tls
type: kubernetes.io/tls
data:
- objectName: tls-cert
key: tls.crt
- objectName: tls-key
key: tls.key
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "true"
userAssignedIdentityID: <your-identity-id>
keyvaultName: <your-keyvault-name>
objects: |
array:
- |
objectName: tls-cert
objectType: secret
objectVersion: ""
- |
objectName: tls-key
objectType: secret
objectVersion: ""
tenantId: <your-tenant-id>
Crear el Secreto TLS en Kubernetes:
- Descripción: Cree un secreto TLS en Kubernetes que haga referencia al certificado y la clave privada obtenidos de Azure Key Vault.
- Ejemplo:
apiVersion: v1
kind: Secret
metadata:
name: ingress-tls
namespace: default
data:
tls.crt: <base64-encoded-cert>
tls.key: <base64-encoded-key>
type: kubernetes.io/tls
Configurar el Ingress para Usar el Secreto TLS:
- Descripción: Configure el recurso Ingress para utilizar el secreto TLS creado.
- Ejemplo:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- example.com
secretName: ingress-tls
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
Verificar Permisos en Azure Key Vault:
- Descripción: Asegúrese de que la identidad asignada (ya sea administrada por el sistema o asignada por el usuario) tenga los permisos adecuados para acceder a los secretos en Azure Key Vault.
- Ejemplo:
- Navegue a Azure Key Vault en el portal de Azure.
- Seleccione "Access policies" y asegúrese de que la identidad tenga permisos de "Get" y "List" para secretos.
Revisar Logs y Eventos:
- Descripción: Revise los logs y eventos del Ingress y del controlador de Ingress para identificar cualquier error específico.
- Comando:
sh kubectl describe ingress <ingress-name> -n <namespace> kubectl logs <ingress-controller-pod> -n <namespace>
Referencias - Microsoft Learn: Set up Secrets Store CSI Driver to enable NGINX Ingress Controller with TLS
Espero que estos consejos ayuden a resolver el problema. Si necesitas más asistencia, estoy a tu disposición.
Saludos,
Jonathan
Tu opinión es muy importante para nosotros. Si esta respuesta resolvió tu consulta, por favor haz clic en 'SÍ'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones. ¡Gracias por tu colaboración!