Co-authored-by: Sunil Singh <sunil.singh@suse.com>
2.3 KiB
title
| title |
|---|
| Troubleshooting nginx-proxy |
:::caution
The nginx-proxy container is an RKE1-specific component. If you are using RKE2 or K3s, this container is not deployed, as load balancing to the API servers is handled internally by a client-side load balancer within the agent process itself.
Additionally, please note that RKE1 has reached its End of Life (EOL). Therefore, the information on this page is considered deprecated.
:::
The nginx-proxy container is deployed on every node that does not have the controlplane role. It provides access to all the nodes with the controlplane role by dynamically generating the NGINX configuration based on available nodes with the controlplane role.
Check if the Container is Running
The container is called nginx-proxy and should have status Up. The duration shown after Up is the time the container has been running.
docker ps -a -f=name=nginx-proxy
Example output:
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
Check Generated NGINX Configuration
The generated configuration should include the IP addresses of the nodes with the controlplane role. The configuration can be checked using the following command:
docker exec nginx-proxy cat /etc/nginx/nginx.conf
Example output:
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 Container Logging
The logging of the containers can contain information on what the problem could be.
docker logs nginx-proxy