nginx-proxy 故障排除

每个没有 controlplane 角色的节点上都部署了 nginx-proxy 容器。nginx-proxy 基于具有 controlplane 角色的可用节点来动态生成 NGINX 配置,从而提供对这些 controlplane 角色节点的访问。

检查容器是否正在运行

该容器称为 nginx-proxy,它的状态应该是 UpUp 后面显示的时间指的是容器运行的时间。

  1. docker ps -a -f=name=nginx-proxy

输出示例:

  1. docker ps -a -f=name=nginx-proxy
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. c3e933687c0e rancher/rke-tools:v0.1.15 "nginx-proxy CP_HO..." 3 hours ago Up 3 hours nginx-proxy

检查生成的 NGINX 配置

生成的配置包括了具有 controlplane 角色的节点的 IP 地址。你可以使用以下命令来检查配置:

  1. docker exec nginx-proxy cat /etc/nginx/nginx.conf

输出示例:

  1. error_log stderr notice;
  2. worker_processes auto;
  3. events {
  4. multi_accept on;
  5. use epoll;
  6. worker_connections 1024;
  7. }
  8. stream {
  9. upstream kube_apiserver {
  10. server ip_of_controlplane_node1:6443;
  11. server ip_of_controlplane_node2:6443;
  12. }
  13. server {
  14. listen 6443;
  15. proxy_pass kube_apiserver;
  16. proxy_timeout 30;
  17. proxy_connect_timeout 2s;
  18. }
  19. }

nginx-proxy 容器日志记录

容器的日志记录可能包含问题的信息。

  1. docker logs nginx-proxy