He configurado las configuraciones del controlador de ingreso nginx en la propiedad de datos como se muestra en el archivo yaml a continuación.
Me gustaría saber si esta es la forma correcta de establecer configuraciones de nginx en lugar de proporcionar un archivo nginx.conf.
En segundo lugar, me gustaría saber si las configuraciones proporcionadas están establecidas. Para averiguar si se aplican las nuevas configuraciones, ¿debo ejecutar en el pod y ejecutar nginx -T o hay alguna otra forma de encontrarlo?
kind: ConfigMap apiVersion: v1 metadata: name: nginx-configuration namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx data: worker-processes: "24" worker-connections: "100000" worker-rlimit-nofile: "102400" worker-cpu-affinity: "auto 111111111111111111111111" keepalive: "200" main-template: | user nginx; worker_processes {{.WorkerProcesses}}; {{- if .WorkerRlimitNofile}} worker_rlimit_nofile {{.WorkerRlimitNofile}};{{end}} {{- if .WorkerCPUAffinity}} worker_cpu_affinity {{.WorkerCPUAffinity}};{{end}} {{- if .WorkerShutdownTimeout}} worker_shutdown_timeout {{.WorkerShutdownTimeout}};{{end}} daemon off; error_log /var/log/nginx/error.log {{.ErrorLogLevel}}; pid /var/run/nginx.pid; {{- if .MainSnippets}} {{range $value := .MainSnippets}} {{$value}}{{end}} {{- end}} events { worker_connections {{.WorkerConnections}}; } http { include /etc/nginx/mime.types; default_type application/octet-stream; ... sendfile on; access_log off; tcp_nopush on; tcp_nodelay on; keepalive_timeout 315; keepalive_requests 10000000; #gzip on; ... } --- kind: ConfigMap apiVersion: v1 metadata: name: tcp-services namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx --- kind: ConfigMap apiVersion: v1 metadata: name: udp-services namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginx --- apiVersion: v1 kind: ServiceAccount metadata: name: nginx-ingress-serviceaccount namespace: ingress-nginx labels: app.kubernetes.io/name: ingress-nginx app.kubernetes.io/part-of: ingress-nginxHay muchas maneras de instalar NGINX Ingress Controller , sin embargo, dependen de los entornos en los que se implementan. Por ejemplo para minikube:
Para uso estándar:
minikube addons enable ingress
Para comprobar si los pods del controlador de entrada se han iniciado, ejecute el siguiente comando:
$ kubectl get pods -n ingress-nginx \ -l app.kubernetes.io/name=ingress-nginx --watch
Puedes usar helm (pero solo v3 ):
NGINX Ingress controller se puede instalar a través de Helm utilizando el gráfico del repositorio del proyecto. Para instalar el gráfico con el nombre de versión ingress-nginx :
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx $ helm repo update $ helm install ingress-nginx ingress-nginx/ingress-nginxLuego intente detectar la versión instalada:
POD_NAME=$(kubectl get pods -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}') kubectl exec -it $POD_NAME -- /nginx-ingress-controller --version
Sin embargo, la forma más común es instalar NGINX Ingress Controller en su clúster de Kubernetes usando manifiestos de Kubernetes y luego modificar nginx-config.yaml
Resumiendo: tienes que modificar el archivo nginx.conf. Está proporcionando una especificación clara y luego puede depurarla fácilmente.
Leer más: nginx-ingress-controller-installation-manifest , nginx-ingress-controller .
Incluso durante la resolución de problemas, tiene ejemplos para verificar el archivo nginx.conf . Para comprobar el controlador de entrada, puede, por ejemplo:
verifique los eventos de recursos de ingreso
$ kubectl get ing -n <namespace-of-ingress-resource> NAME $ kubectl describe ing <ingress-resource-name> -n <namespace-of-ingress-resource>verifique los registros del controlador de ingreso
$ kubectl get pods -n <namespace-of-ingress-controller> $ kubectl logs -n <namespace> nginx-ingress-controllerverifique la configuración de Nginx
$ kubectl get pods -n <namespace-of-ingress-controller> $ kubectl exec -it -n <namespace-of-ingress-controller> nginx-ingress-controller -- cat /etc/nginx/nginx.confcomprobar si existen servicios utilizados
$ kubectl get svc --all-namespacesVer más: resolución de problemas de ingreso .