This article is applicable when there is a cluster showing as
“unavailable“ after the user configured a proxy on the server.
If you have a cluster which has not been registered yet (registration command has not been run yet), then refer to Configuring Rancher and Fleet agent to run behind an HTTP
proxy.Note: Replace $PROXY_IP
with the IP:PORT of the corporate proxy server and $NODE_IP
with the IP or CIDR of the server running
Kubernetes.
Steps
-
Run
env
on the user’s server to determine what’s the proxy IP. You should check the following line:
http_proxy=http://X.X.X.X
-
Open the file
/etc/systemd/system/k3s.service.env
and append the following lines:
http_proxy="$PROXY_IP"
https_proxy="$PROXY_IP"
no_proxy="$NODE_IP,localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local"
-
Restart k3s
systemctl restart k3s.service
.
-
Go to the Rancher dashboard and click on Edit Config for your cluster:
-
Go to Advanced Options:
-
Configure the following Agent Environment Variables and press Save:
HTTP_PROXY: $PROXY_IP
HTTPS_PROXY: $PROXY_IP
NO_PROXY: $NODE_IP,localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local
-
Run the command
kubectl edit deployment -n cattle-system cattle-cluster-agent -o yaml
.
-
Type letter “i“ to insert text and on the env section, type the following lines:
- name: HTTP_PROXY
value: $PROXY_IP
- name: HTTPS_PROXY
value: $PROXY_IP
- name: NO_PROXY
value: $NODE_IP,localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local
Example:

Save by pressing ESC and then typing
“wq”
.
-
Now do the same on the fleet-agent by running the command
kubectl edit deployment -n cattle-fleet-system fleet-agent -o yaml
.
-
Repeat the step #6.
-
After applying all the changes, wait for some minutes for the cluster to become Online on Rancher again.