当前位置:  首页>> 技术小册>> Kubernets合辑2-部署Ingress

通常使用Deployment或者Daemonset部署多个Pod,每个Pod 内部有三类进程:
● IC :根据集群中Ingress或者其它CRD资源生成nginx配置
● Nginx Master:Nginx 的 Master 进程,用来控制Nginx Worker进程
● Nginx Worker:Nginx 的 Worker 进程,处理用户请求流量的进程

上述架构图中每个阶段的详细描述如下:

  1. (HTTP) IC 可以通过HTTP接口暴露自身和Nginx指标,Prometheus通过接口采集相关信息并展示。默认情况下接口为:9113/metrics,这个功能可以关闭
  2. (HTTPS) IC 通过Kubernetes API 获取资源(Ingress, nginx CRD)的更新,处理后并更新资源状态
  3. (HTTP) Kubelet 通过 IC 的 Readiness 接口判断 IC Pod 是否就绪
  4. (File I/O) IC 进程启动时,会读取来自文件系统的配置生成所需的配置模板。这些模板位于容器的 /目录中,并具有.tmpl扩展名
  5. (File I/O) IC将日志写入标准输出和标准错误,由容器运行时收集
  6. (File I/O) IC根据 Kubernetes资源生成配置文件,并写入 /etc/nginx 目录下,以 .conf结尾
  7. (File I/O) IC根据 Ingress 或者其它资源 获取的TLS 证书和私钥写入 文件中
  8. (HTTP) IC通过unix:/var/lib/nginx/nginx-status.sock 获取Nginx指标,并以Promethues格式暴露出去
  9. (HTTP) 为了确保配置文件加载成功,IC 会通过unix:/var/lib/nginx/nginx-config-version.sock确保至少有一个worker进程使用了最新的配置
  10. (N/A) IC 启动Nginx Master进程
  11. (Signal) IC 通过nginx -s reload重载Nignx 配置文件
  12. (Signal) IC 通过nginx -s quit停止Nginx进程
  13. (File I/O) master 将日志写入标准输出和标准错误,由容器运行时收集
  14. (File I/O) master 在启动和reload时从文件读取 TLS 证书和私钥
  15. (File I/O) master 在启动和reload时从文件读取 配置
  16. (Signal) master 控制worker进程的生命周期
  17. (File I/O) worker 将日志写入标准输出和标准错误,由容器运行时收集
  18. (UDP) worker 将upstream端点的响应延迟日志通过unix:/var/lib/nginx/nginx-syslog.sock发送给IC,由IC通过Metrics暴露
  19. (HTTP,HTTPS,TCP,UDP) worker 承接来自客户端的请求
  20. (HTTP,HTTPS,TCP,UDP) worker 将请求转发到后端的Pod上
  21. (HTTP) admin 通过 woker 的8080端口访问nginx的状态页,默认仅 localhost能访问

该分类下的相关小册推荐: