ingress-nginx的日志落地
配置Nginx-Ingress
这里将NG的日志落盘,便于处理。
(1)、修改ConfigMap,如下:
# Source: ingress-nginx/templates/controller-configmap.yaml apiVersion: v1 kind: ConfigMap metadata: labels: helm.sh/chart: ingress-nginx-2.0.3 app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/version: 0.32.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: controller name: ingress-nginx-controller namespace: ingress-nginx data: compute-full-forwarded-for: 'true' enable-underscores-in-headers: 'true' client_max_body_size: "100m" proxy_body_size: "100m" access-log-path: /var/log/nginx/access.log log-format-escape-json: "true" log-format-upstream: '{"timestamp": "$time_iso8601", "requestID": "$req_id", "proxyUpstreamName": "$proxy_upstream_name","host": "$host","body_bytes_sent": "$body_bytes_sent","proxyAlternativeUpstreamName": "$proxy_alternative_upstream_name","upstreamStatus": "$upstream_status", "geoip_country_code": "$geoip_country_code","upstreamAddr": "$upstream_addr","request_time": "$request_time","httpRequest":{"requestMethod": "$request_method", "requestUrl": "$request_uri", "status": $status,"requestSize": "$request_length", "responseSize": "$upstream_response_length", "userAgent": "$http_user_agent", "remoteIp": "$remote_addr", "referer": "$http_referer", "latency": "$upstream_response_time", "protocol":"$server_protocol"}}'
(2)修改NG的deployment,主要增加如下配置
# Source: ingress-nginx/templates/controller-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: labels: helm.sh/chart: ingress-nginx-2.0.3 app.kubernetes.io/name: ingress-nginx app.kubernetes.io/instance: ingress-nginx app.kubernetes.io/version: 0.32.0 app.kubernetes.io/managed-by: Helm app.kubernetes.io/component: controller name: ingress-nginx-controller namespace: ingress-nginx spec: ...... initContainers: - name: adddirperm image: busybox command: - /bin/sh - -c - chown -R ${USER_ID}:${USER_ID} ${LOG_DIR} env: - name: LOG_DIR value: /var/log/nginx - name: USER_ID value: "101" volumeMounts: - name: logdir mountPath: /var/log/nginx containers: - name: controller image: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.32.0 imagePullPolicy: IfNotPresent lifecycle: preStop: exec: command: - /wait-shutdown args: - /nginx-ingress-controller - --publish-service=ingress-nginx/ingress-nginx-controller - --election-id=ingress-controller-leader - --ingress-class=nginx - --configmap=ingress-nginx/ingress-nginx-controller - --validating-webhook=:8443 - --validating-webhook-certificate=/usr/local/certificates/cert - --validating-webhook-key=/usr/local/certificates/key - --log_dir=/var/log/nginx - --logtostderr=false ...... volumeMounts: - name: webhook-cert mountPath: /usr/local/certificates/ readOnly: true - name: logdir mountPath: /var/log/nginx resources: requests: cpu: 100m memory: 90Mi serviceAccountName: ingress-nginx terminationGracePeriodSeconds: 300 volumes: ...... - name: logdir hostPath: path: /var/log/nginx type: DirectoryOrCreate
重新创建后即可在本地的/var/log/nginx下查找到日志。