Skip to content

The expansion of worker nodes within the cluster where kube-vip is installed failed #12136

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
MicroWiller opened this issue Apr 18, 2025 · 1 comment · May be fixed by #12137
Open

The expansion of worker nodes within the cluster where kube-vip is installed failed #12136

MicroWiller opened this issue Apr 18, 2025 · 1 comment · May be fixed by #12137
Labels
kind/bug Categorizes issue or PR as related to a bug. triage/needs-information Indicates an issue needs more information in order to work on it. Ubuntu 22

Comments

@MicroWiller
Copy link

What happened?

I have installed a k8s cluster for apiserver load balancing based on kube-vip. When I expanded the cluster nodes, the expansion failed
The following expansion command is executed:

ansible-playbook -i /conf/hosts.yml -b --become-user root -e "@/conf/group_vars.yml" /kubespray/scale.yml -vvv --limit=cluster-3pu8o4k-node02

The following errors occurred:

TASK [kubernetes/kubeadm : Join to cluster with ignores] ***********************
task path: /kubespray/roles/kubernetes/kubeadm/tasks/main.yml:101
fatal: [cluster-3pu8o4k-node02]: FAILED! => {
 "changed": false,
 "cmd": [
 "timeout",
 "-k",
 "120s",
 "120s",
 "/usr/local/bin/kubeadm",
 "join",
 "--config",
 "/etc/kubernetes/kubeadm-client.conf",
 "--ignore-preflight-errors=all",
 "--skip-phases="
 ],
 "delta": "0:00:40.629748",
 "end": "2025-04-15 17:07:40.060799",
 "invocation": {
 "module_args": {
 "_raw_params": "timeout -k 120s 120s /usr/local/bin/kubeadm join --config /etc/kubernetes/kubeadm-client.conf --ignore-preflight-errors=all --skip-phases=",
 "_uses_shell": false,
 "argv": null,
 "chdir": null,
 "creates": null,
 "executable": null,
 "removes": null,
 "stdin": null,
 "stdin_add_newline": true,
 "strip_empty_ends": true
 }
 },
 "msg": "non-zero return code",
 "rc": 1,
 "start": "2025-04-15 17:06:59.431051",
 "stderr": "\t[WARNING FileExisting-socat]: socat not found in system path\n\t[WARNING FileExisting-tc]: tc not found in system path\nerror execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Get \"https://lb-apiserver.kubernetes.local:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)\nTo see the stack trace of this error execute with --v=5 or higher",
 "stderr_lines": [
 "\t[WARNING FileExisting-socat]: socat not found in system path",
 "\t[WARNING FileExisting-tc]: tc not found in system path",
 "error execution phase preflight: unable to fetch the kubeadm-config ConfigMap: failed to get config map: Get \"https://lb-apiserver.kubernetes.local:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s\": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)",
 "To see the stack trace of this error execute with --v=5 or higher"
 ],
 "stdout": "[preflight] Running pre-flight checks\n[preflight] Reading configuration from the cluster...\n[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'",
 "stdout_lines": [
 "[preflight] Running pre-flight checks",
 "[preflight] Reading configuration from the cluster...",
 "[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'"
 ]
}

What did you expect to happen?

Successfully added the node

How can we reproduce it (as minimally and precisely as possible)?

  1. Install kube-vip when creating a cluster
  2. Add the node node

OS

Ubuntu 22

Version of Ansible

PRETTY_NAME="Ubuntu 22.04.1 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.1 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

Version of Python

Python 3.10.13

Version of Kubespray (commit)

v2.25.0

Network plugin used

calico

Full inventory with variables

ansible-playbook -i /conf/hosts.yml -b --become-user root -e "@/conf/group_vars.yml" /kubespray/scale.yml -vvv --limit=cluster-3pu8o4k-node02

Command used to invoke ansible

None

Output of ansible run

None

Anything else we need to know

No response

@VannTen
Copy link
Contributor

VannTen commented May 17, 2025

Could you provide you inventory with variable as asked in the issue template ?

Also, could you explicit how the control plane endpoint is supposed to work here ? I'm not familiar with kube-vip.
Where is that DNS name defined ?

/triage needs-information

@k8s-ci-robot k8s-ci-robot added the triage/needs-information Indicates an issue needs more information in order to work on it. label May 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. triage/needs-information Indicates an issue needs more information in order to work on it. Ubuntu 22
Projects
None yet
3 participants