首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查应用于kubernetes集群上nginx入口控制器的配置

检查应用于kubernetes集群上nginx入口控制器的配置
EN

Stack Overflow用户
提问于 2021-01-16 19:49:21
回答 1查看 2.1K关注 0票数 3

我在数据属性下设置了nginx入口控制器配置,如下面的yaml文件所示。

  1. 我想知道这是设置nginx配置的正确方法,而不是提供nginx.conf文件。
  2. 其次,我想知道是否设置了所提供的配置。要找出是否应用了新的配置,我是应该在吊舱中执行并运行nginx -T,还是有其他方法可以找到它?
代码语言:javascript
复制
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-nginx
EN

回答 1

Stack Overflow用户

发布于 2021-01-18 08:34:00

如何安装NGINX Ingress Controller有很多方法,但是它们取决于它们正在部署的环境。例如,迷你车:

minikube

用于标准使用:

minikube addons enable ingress

若要检查入口控制器荚是否已启动,请运行以下命令:

$ kubectl get pods -n ingress-nginx \ -l app.kubernetes.io/name=ingress-nginx --watch

您可以使用helm (但只有v3):

NGINX Ingress controller可以通过掌舵安装,使用项目存储库中的图表。安装带有发布名ingress-nginx的图表

代码语言:javascript
复制
$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
$ helm repo update
$ helm install ingress-nginx ingress-nginx/ingress-nginx

然后尝试检测已安装的版本:

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

不过,最常见的方法是使用Kubernetes清单在Kubernetes集群中安装NGINX in,然后修改nginx-config.yaml。

总结:您必须修改nginx.conf文件。您正在提供明确的规范,然后您可以轻松地调试它。

阅读更多信息:nginx-ingress-controller-installation-manifestnginx-入口控制器

即使在排除故障时,也有一些示例要检查nginx.conf文件。要检查“大会控制器”,您可以例如:

  • 检查侵入资源事件 $ kubectl得到ing -n名称$ kubectl描述ing -n
  • 检查侵入控制器日志 $ kubectl获得豆荚-n $ kubectl日志-n nginx入口-控制器
  • 检查Nginx配置 $ kubectl获得豆荚-n $ kubectl exec -it -n nginx入口-控制器- cat /etc/nginx/nginx.conf
  • 检查使用的服务是否存在 $ kubectl获得svc --所有名称空间

参见更多信息:入口-故障排除

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65753988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档