跳至主要内容

疑難排解 nginx-proxy

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