-
Notifications
You must be signed in to change notification settings - Fork 398
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
After completing the test node autonomy, the edge node status still keep ready #106
Comments
Hello, @HirazawaUi In my opinion, Work node sends its health status to master, if send overtime, Master node will change node status; but if you set kube-controller-manager config -nodelifecycle, Master node will not change status when receive health status overtime. I don't know if my opinion is right, I will find introduction in Kubernetes. |
Isn't this an expected behavior? With the yurt-controller-manager which re-implements the node lifecycle controller, if an edge node stops sending the heartbeats, the yurt-controller-manager will not mark node NotReady. |
thank you very much for your answers, which solved my problem and now openyurt is running normally. I am not sure if anyone else has encountered this problem, I think this parameter should be described in more detail in the document |
In the |
You are right. I take it back. The yurt-controller-manager just does not evict Pods and Node status is still updated to NotReady. |
Show nodes status after Convert a multi-nodes Kubernetes cluster in yurtctl.md may be better. Thanks |
It is recommended that the default nodelifecycle controller should not be installed, otherwise it will conflict with yurt-controller-manager. In yurtctl tool, to ease the workflow, we delete the nodelifecycle sa from kube-system assuming that |
I observed that my simple pod entered the Terminating state about five minutes after the edge node stopped sending heartbeats. I don't know if this is normal and meets expectations. There is no similar description in the document
|
I did not find the relevant instructions in the kubernetes documentation, about using other SAs make the default nodelifecycle controller still works. In fact, this is to test the brand new kubernetes cluster installed by openyurt using kubeadm, I haven't made any changes to it |
This looks like the default node controller behavior. Can you do |
Yes, it exists in the kubernetes cluster,Do I need to delete it? |
Yes, the Yurtctl supposes to delete this SA (https://github.com/alibaba/openyurt/blob/ea19a211e43324f71a318a2236799b18291df4d8/pkg/yurtctl/cmd/convert/convert.go#L215). You can manually delete it for now. We should figure out why this deletion fails. |
@xujunjie-cover your understand is correct. If nodelifecycle controller is disabled, then the node status will never change. However, to my knowledge, the yurt-controller-manager will be responsible for managing the nodelifecycle, therefore the default nodelifecycle should still be disabled. @rambohe-ch would you verify this? @HirazawaUi I just tried the manually setup process (disable the nodelifecycle controller by applying option |
Ah, I realized that you are doing the conversion manually instead of using yurtctl. Then you should use --controllers=*,bootstrapsigner,tokencleaner,-nodelifecycle option to disable the default nodelifecylce controller. Can you please do it and repeat the test? We will go from there and see what does not meet the expectation. |
this is the label and Annotations information of the edge node,
|
I have executed |
Please note that you should restart the default Kubernetes controller-manager |
before this. I have modified the |
@HirazawaUi Thanks for the detailed log output. I will verify the manual setup process on a multi-nodes 1.16 Kubernetes, and let you know if the problem can be reproduced. |
@charleszheng44 @Fei-Guo Show the log of yurt-controller-manager again
Create serviceaccount
Modify the deploy of yurt-controller-manager
|
@charleszheng44 |
Thanks for reporting the issue, I forgot to fix it 😅. #123 should resolve the problem. |
Situation description
I installed the kubernetes cluster using kubeadm. The version of the cluster is 1.16. The cluster has a master and three nodes.
After I finished installing open-yurt manually, I started trying to test whether the result of my installation was successful
I used the Test node autonomy chapter in https://github.com/alibaba/openyurt/blob/master/docs/tutorial/yurtctl.md to test
After I completed the actions in the Test node autonomy chapter, the edge node status still keep reday
Operation steps
I created a sample pod
I modified yurt-hub.yaml. make the value of
--server-addr=
a non-existent ip and portThen I used the
curl -s http://127.0.0.1:10261
command to test and verify whether the edge node can work normally in offline mode. the result of the command is as expectedBut node3 status still keep ready. and yurt-hub enters pending state
Some configuration items and logs that may be used as reference
Label information of each node
Configuration of kube-controller-manager
/etc/kubernetes/manifests/yurthub.yml
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
/var/lib/openyurt/kubelet.conf
Use
kubectl describe
to view yurt-hub pod informationUse
docker ps
on the edge node to view the log of the yurt-hub container. Intercept the last 20 linesUse
kubectl logs
to view the logs of yurt-controller-manager. Intercept the last 20 linesAt last
I very much hope that you can help me solve the problem or point out my mistakes. If there is any other information that needs to be provided, please communicate with me in time
The text was updated successfully, but these errors were encountered: