Uso de kubectl para crear una entrada de Nginx
Escenario
Esta sección utiliza una carga de trabajo de Nginx como ejemplo para describir cómo crear una entrada de Nginx con kubectl.
Requisitos previos
- El complemento nginx-ingress se ha instalado en un clúster. Para obtener más información, véase Instalación del complemento.
- Un ingreso proporciona acceso a la red para cargas de trabajo backend. Asegúrese de que una carga de trabajo esté disponible en un clúster. Si no hay ninguna carga de trabajo disponible, desplegue una carga de trabajo haciendo referencia a Creación de una Deployment, Creación de un StatefulSet o Creación de un DaemonSet.
- Se ha configurado un Service ClusterIP o NodePort para la carga de trabajo. Para obtener más información acerca de cómo configurar el Service, consulte ClusterIP o NodePort.
- Si se utiliza HTTPS para el acceso externo, debe crear un secreto de IngressTLS por adelantado. Para obtener más información sobre cómo crear un secreto, consulte Creación de un secreto.
Descripción de ingreso de networking.k8s.io/v1
En los clústeres de CCE de v1.23 o posterior, la versión de ingreso se cambia a networking.k8s.io/v1.
Comparado con v1beta1, v1 tiene las siguientes diferencias en parámetros:
- El tipo de entrada se cambia de kubernetes.io/ingress.class en annotations a spec.ingressClassName.
- Se cambia el formato de backend.
- El parámetro pathType debe especificarse para cada ruta. Las opciones son las siguientes:
- ImplementationSpecific: El método de coincidencia depende del controlador de entrada. El método de coincidencia definido por ingress.beta.kubernetes.io/url-match-mode se usa en CCE, que es el mismo que v1beta1.
- Exact: coincidencia exacta del URL, que distingue entre mayúsculas y minúsculas.
- Prefix: coincidencia basada en el prefijo de URL separado por una barra diagonal (/). La coincidencia distingue entre mayúsculas y minúsculas, y los elementos de la ruta se hacen coincidir uno por uno. Un elemento de trazado hace referencia a una lista de etiquetas en el trazado separadas por una barra diagonal (/).
Creación de un ingreso de Nginx
- Utilice kubectl para conectarse al clúster. Para obtener más información, véase Conexión a un clúster con kubectl.
- Cree un archivo YAML denominado ingress-test.yaml. El nombre del archivo se puede personalizar.
vi ingress-test.yaml
A partir del clúster v1.23, la versión de ingreso cambia de networking.k8s.io/v1beta1 a networking.k8s.io/v1. Para obtener más información sobre las diferencias entre v1 y v1beta1, consulte Descripción de ingreso de networking.k8s.io/v1.
A continuación se utiliza HTTP como ejemplo para describir cómo configurar el archivo YAML:
Si el nodo está en un clúster de v1.23 o posterior:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test spec: 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 it with the port number of your target Service. property: ingress.beta.kubernetes.io/url-match-mode: STARTS_WITH pathType: ImplementationSpecific ingressClassName: nginx # Nginx ingress is used.
Si el nodo está en un clúster de v1.21 o anterior:apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress-test namespace: default annotations: kubernetes.io/ingress.class: nginx # Nginx ingress is used. spec: rules: - host: '' http: paths: - path: '/' backend: serviceName: <your_service_name> # Replace it with the name of your target Service. servicePort: <your_service_port> # Replace it with the port number of your target Service.
- 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 información similar a la siguiente, la entrada se ha creado correctamente y se puede acceder a la carga de trabajo.
NAME HOSTS ADDRESS PORTS AGE ingress-test * 121.**.**.** 80 10s
- Ingrese http://121.**.**.**:80 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.