hello, i'm trying to provision a rke2 cluster manu...
# general
a
hello, i'm trying to provision a rke2 cluster manually, i've created 3 controlplane nodes with etcd, how do i add worker nodes at this point?
c
add agents.
a
this is the part i'm unclear about
install rke2, set the server address and token in the config, start the rke2-agent service.
a
so to clarify, i add the config.yaml, identical to how i have it for the master node, but instead of starting rke2-server service i start rke2-agent?
c
yes.
a
ok, thank you
c
well your first server probably doesn’t have server set, but the others will.
what docs were you looking at previously?
a
yes, first one doesn't have
server
line
i had experience building the rancher cluster itself, but all the nodes in the cluster has all roles
i was looking at this page but was kinda confused
should i expect to see something more than this? it seems to be just sitting here, the worker nodes do not have a role
Copy code
Apr 02 23:20:44 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:20:44Z" level=info msg="Server 10.3.220.126:6443@RECOVERING->PREFERRED from successful health check"
Apr 02 23:20:45 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:20:45Z" level=info msg="Pulling images from /var/lib/rancher/rke2/agent/images/kube-proxy-image.txt"
Apr 02 23:20:45 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:20:45Z" level=info msg="Pulling image <http://index.docker.io/rancher/hardened-kubernetes:v1.31.7-rke2r1-build20250312|index.docker.io/rancher/hardened-kubernetes:v1.31.7-rke2r1-build20250312>"
Apr 02 23:20:57 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:20:57Z" level=error msg="Failed to import /var/lib/rancher/rke2/agent/images/kube-proxy-image.txt: failed to pull images from /var/lib/rancher/rke2/agent/images/kube-proxy-image.txt: image \"<http://index.docker.io/rancher/hardened-kubernetes:v1.31.7-rke2r1-build20250312\|index.docker.io/rancher/hardened-kubernetes:v1.31.7-rke2r1-build20250312\>": not found"
Apr 02 23:20:57 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:20:57Z" level=error msg="Failed to process image event: failed to pull images from /var/lib/rancher/rke2/agent/images/kube-proxy-image.txt: image \"<http://index.docker.io/rancher/hardened-kubernetes:v1.31.7-rke2r1-build20250312\|index.docker.io/rancher/hardened-kubernetes:v1.31.7-rke2r1-build20250312\>": not found"
Apr 02 23:21:28 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:21:28Z" level=info msg="Tunnel authorizer set Kubelet Port 0.0.0.0:10250"
Apr 02 23:21:44 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:21:44Z" level=info msg="Server 10.3.220.146:9345@PREFERRED->HEALTHY from successful health check"
Apr 02 23:21:44 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:21:44Z" level=info msg="Server 10.3.220.23:9345@PREFERRED->HEALTHY from successful health check"
Apr 02 23:21:44 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:21:44Z" level=info msg="Server 10.3.220.23:6443@PREFERRED->HEALTHY from successful health check"
Apr 02 23:21:44 internal-aws-worker-01 rke2[16157]: time="2025-04-02T23:21:44Z" level=info msg="Server 10.3.220.126:6443@PREFERRED->HEALTHY from successful health check"
Copy code
NAME                     STATUS   ROLES                       AGE     VERSION
internal-aws-master-01   Ready    control-plane,etcd,master   19m     v1.31.7+rke2r1
internal-aws-master-02   Ready    control-plane,etcd,master   14m     v1.31.7+rke2r1
internal-aws-master-03   Ready    control-plane,etcd,master   14m     v1.31.7+rke2r1
internal-aws-worker-01   Ready    <none>                      4m      v1.31.7+rke2r1
internal-aws-worker-02   Ready    <none>                      3m49s   v1.31.7+rke2r1
internal-aws-worker-03   Ready    <none>                      3m44s   v1.31.7+rke2r1
internal-aws-worker-04   Ready    <none>                      3m40s   v1.31.7+rke2r1
c
that is correct. rke2 doesn’t really have workers, just agents and servers. “worker” is an arbitrary node label, you can add it if it makes you feel better.
it will indeed just sit there unless you give it something to run. were you expecting it to do something else?
a
no, i guess as long as it works that's fine