-
Notifications
You must be signed in to change notification settings - Fork 716
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
graduate WaitForAllControlPlaneComponents to GA #2907
Comments
it has been by design like that since kubeadm early days. we need to make sure this is not changing user expectations - e.g. in strange cases where there is a custom scheduler with a delayed start (?). @SataQiu @pacoxu @chendave |
In my case, controller manager never startup, since kubeadm uses wrong arguments to create static pod. And because it finished execution with success messages printed, I quite spent some time to investigate
获取 Outlook for iOS<https://aka.ms/o0ukef>
…________________________________
发件人: Lubomir I. Ivanov ***@***.***>
发送时间: Thursday, July 27, 2023 3:07:12 AM
收件人: kubernetes/kubeadm ***@***.***>
抄送: Tommas Yuan ***@***.***>; Author ***@***.***>
主题: Re: [kubernetes/kubeadm] kubeadm init wait control plane phase dose not check health status of all components (Issue #2907)
kubeadm init command of phase wait-control-plane dose not check health status of all control plane component but only api server. So when controller manager or scheduler dose not startup properly, init command will still pass this phase.
it has been by design like that since kubeadm early days.
at some point phases were added and "wait-control-plane" just encapsulated waiting for api-server.
we need to make sure this is not changing user expectations - e.g. in strange cases where there is a custom scheduler with a delayed start (?).
@SataQiu<https://github.com/SataQiu> @pacoxu<https://github.com/pacoxu> @chendave<https://github.com/chendave>
are you aware of use cases where kubelet / API server starting is all we care about to complete kubeadm init and the rest of the components may or may not start later?
―
Reply to this email directly, view it on GitHub<#2907 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AA2TS4R3K2Z4M7A7CXN2YRDXSFTGBANCNFSM6AAAAAA2Y224NA>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Kubeadm check the health status of kubelet as well.
I haven't noticed that. |
As the component-status API is deprecated, would we just check the pod running status for a short while or print the control-plane status at the end? |
kubeadm did check kubelet and api server, but not include controller manager and scheduler
create a config file something like: kind: ClusterConfiguration
apiVersion: kubeadm.k8s.io/v1beta3
controllerManager:
extraArgs:
"not-supported-options": "foo" will reproduce this bug |
I have createa a PR for this, but it seems violate import rules |
How to make a custom scheduler to delay startup? |
thank you for updating the PR to not use the pkg package which is internal to k/k and kubeadm must not use it! it seems like a nice to have, as it "completes" the component check on startup.
also @tommas1988 the code you are adding is only for init, but it must also be added for join. |
since a clusterconfiguration like that can hit the situation where the control manager is not up while kubeadm just say the cluster is ready, I am incline to +1 to fix it as long as it is not breaking anything (I assume any action on a cluster which is not really up is not expected to happen). |
As mentioned earlier, How about just raising the pod-failing information and not failing the init process? |
this is tracked for 1.30. |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues. This bot triages un-triaged issues according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
the feature was added here we have an e2e test that is green docs will be added in |
reopened for feature gate graudation tracking. |
edit neolit123
alpha 1.31
alpha 1.32
beta 1.33 (enabled by default)
GA
TODO
original report:
Is this a BUG REPORT or FEATURE REQUEST?
BUG REPORT
Versions
kubeadm version (use
kubeadm version
): kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.2", GitCommit:"7f6f68fdabc4df88cfea2dcf9a19b2b830f1e647", GitTreeState:"clean", BuildDate:"2023-05-17T14:18:49Z", GoVersion:"go1.20.4", Compiler:"gc", Platform:"linux/amd64"}Environment:
kubectl version
):# kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --
output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.2",
GitCommit:"7f6f68fdabc4df88cfea2dcf9a19b2b830f1e647", GitTreeState:"clean", BuildDate:"2023-05-17T14:20:07Z",
GoVersion:"go1.20.4", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v5.0.1
Server Version: version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.3",
GitCommit:"25b4e43193bcda6c7328a6d147b1fb73a33f1598", GitTreeState:"clean", BuildDate:"2023-06-14T09:47:40Z",
GoVersion:"go1.20.5", Compiler:"gc", Platform:"linux/amd64"}
uname -a
):What happened?
kubeadm init command of phase wait-control-plane dose not check health status of all control plane component but only api server. So when controller manager or scheduler dose not startup properly, init command will still pass this phase.
What you expected to happen?
check health status of all control plane component to make sure all component are startup properly
How to reproduce it (as minimally and precisely as possible)?
provide an undefined option as extra args for controller manager or scheduler
Anything else we need to know?
The text was updated successfully, but these errors were encountered: