Configuración de certificados de HTTPS para entradas de Nginx
Los certificados de HTTPS se pueden configurar para el ingreso para proporcionar servicios de seguridad.
- Utilice kubectl para conectarse al clúster. Para obtener más información, véase Conexión a un clúster con kubectl.
- Ingress soporta dos tipos de claves TLS: kubernetes.io/tls y IngressTLS. Se usa como ejemplo IngressTLS. Para obtener más información, véase Creación de un secreto.
Ejecute el siguiente comando para crear un archivo YAML llamado ingress-test-secret.yaml (el nombre del archivo se puede personalizar):
vi ingress-test-secret.yaml
El archivo YAML se configura de la siguiente manera:apiVersion: v1 data: tls.crt: LS0******tLS0tCg== tls.key: LS0tL******0tLS0K kind: Secret metadata: annotations: description: test for ingressTLS secrets name: ingress-test-secret namespace: default type: IngressTLS
En la información anterior, las tls.crt y tls.key solo son ejemplos. Reemplácelos con los archivos reales. Los valores de tls.crt y tls.key están codificados en Base64.
- Cree un secreto.
kubectl create -f ingress-test-secret.yaml
Si se muestra información similar a la siguiente, se está creando el secreto:
secret/ingress-test-secret created
Vea el secreto creado.
kubectl get secrets
Si se muestra la información similar a la siguiente, se ha creado el secreto:
NAME TYPE DATA AGE ingress-test-secret IngressTLS 2 13s
- Cree un archivo YAML denominado ingress-test.yaml. El nombre del archivo se puede personalizar.
vi ingress-test.yaml
Para clústeres de v1.23 y posteriores:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test namespace: default spec: tls: - hosts: - foo.bar.com secretName: ingress-test-secret # Replace it with your TLS key certificate. rules: - host: '' http: paths: - path: / backend: service: name: <your_service_name> # Replace it with the name of your target Service. port: number: <your_service_port> # Replace 8080 with the port number of your target Service. property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: nginx
Para clústeres de v1.21 y anteriores:apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress-test annotations: kubernetes.io/ingress.class: nginx spec: tls: - hosts: - foo.bar.com secretName: ingress-test-secret # Replace it with your TLS key certificate. rules: - host: '' http: paths: - path: '/' backend: serviceName: <your_service_name> # Replace it with the name of your target Service. servicePort: <your_service_port> # Replace 8080 with the port number of your target Service. ingressClassName: nginx
- Cree una entrada.
kubectl create -f ingress-test.yaml
Si se muestra la información similar a la siguiente, se ha creado la entrada.
ingress/ingress-test created
Vea la entrada creada.
kubectl get ingress
Si se muestra la información similar a la siguiente, se ha creado la entrada y se puede acceder a la carga de trabajo.
NAME HOSTS ADDRESS PORTS AGE ingress-test * 121.**.**.** 80 10s
- Introduzca https://121.**.**.**:443 en el cuadro de dirección del navegador para acceder a la carga de trabajo (por ejemplo, Carga de trabajo de Nginx).
121.**.**.** indica la dirección IP del balanceador de carga unificado.