本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

故障排除 nginx-proxy

nginx-proxy 容器是 RKE1 特定组件。如果您使用的是 RKE2 或 K3s,则此容器不会被部署,因为对 API 服务器的负载均衡由代理进程内部的客户端负载均衡器处理。

此外,请注意 RKE1 已达到其 终止服务 (EOL)。因此,本页面上的信息被视为弃用。

nginx-proxy 容器在每个没有 controlplane 角色的节点上部署。它通过根据具有 controlplane 角色的可用节点动态生成 NGINX 配置,提供对所有具有 controlplane 角色的节点的访问。

检查容器是否正在运行

容器名为 nginx-proxy,状态应为 Up。在 Up 之后显示的持续时间是容器运行的时间。

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

示例输出:

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

检查生成的 NGINX 配置

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

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

示例输出:

error_log stderr notice;

worker_processes auto;
events {
  multi_accept on;
  use epoll;
  worker_connections 1024;
}

stream {
        upstream kube_apiserver {

            server ip_of_controlplane_node1:6443;

            server ip_of_controlplane_node2:6443;

        }

        server {
            listen        6443;
            proxy_pass    kube_apiserver;
            proxy_timeout 30;
            proxy_connect_timeout 2s;

        }

}

nginx-proxy 容器日志

容器日志中可能包含有关问题原因的信息。

docker logs nginx-proxy