Skip to content
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

k3s node Condition EtcdIsVoter Status: True is Normal Considtion but reported as an error. #1166

Closed
3 of 4 tasks
reefland opened this issue Jun 25, 2024 · 0 comments · Fixed by #1167
Closed
3 of 4 tasks

Comments

@reefland
Copy link

reefland commented Jun 25, 2024

Checklist

  • I've searched for similar issues and couldn't find anything matching
  • I've included steps to reproduce the behavior

Affected Components

  • K8sGPT (CLI)
  • K8sGPT Operator

K8sGPT Version

k8sgpt: 0.3.37 (3f80bba)

Kubernetes Version

k3s v1.29.5+k3s1

Host OS and its Version

Ubuntu 22.04.4

Steps to reproduce

Standard k3s installation. Control-Plane nodes include a status if they are a voting etcd member or a learning member.

$ k describe node k3s01
...
Conditions:
  Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----             ------  -----------------                 ------------------                ------                       -------
  MemoryPressure   False   Mon, 24 Jun 2024 21:06:18 -0400   Thu, 06 Jun 2024 13:33:15 -0400   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure     False   Mon, 24 Jun 2024 21:06:18 -0400   Thu, 06 Jun 2024 13:33:15 -0400   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure      False   Mon, 24 Jun 2024 21:06:18 -0400   Thu, 06 Jun 2024 13:33:15 -0400   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready            True    Mon, 24 Jun 2024 21:06:18 -0400   Fri, 14 Jun 2024 14:16:23 -0400   KubeletReady                 kubelet is posting ready status. AppArmor enabled
  EtcdIsVoter      True    Mon, 24 Jun 2024 21:06:38 -0400   Fri, 21 Jun 2024 20:02:30 -0400   MemberNotLearner             Node is a voting member of the etcd cluster
$ k8sgpt analyze
AI Provider: AI not used; --explain not set

0: Node k3s01()
- Error: k3s01 has condition of type EtcdIsVoter, reason MemberNotLearner: Node is a voting member of the etcd cluster

1: Node k3s02()
- Error: k3s02 has condition of type EtcdIsVoter, reason MemberNotLearner: Node is a voting member of the etcd cluster

2: Node k3s03()
- Error: k3s03 has condition of type EtcdIsVoter, reason MemberNotLearner: Node is a voting member of the etcd cluster

Above is normal, not an error condition. Both True or False are normal conditions.

$ k get nodes
NAME      STATUS   ROLES                       AGE     VERSION
k3s01     Ready    control-plane,etcd,master   2y86d   v1.29.5+k3s1
k3s02     Ready    control-plane,etcd,master   2y60d   v1.29.5+k3s1
k3s03     Ready    control-plane,etcd,master   2y67d   v1.29.5+k3s1
k3s04     Ready    worker                      562d    v1.29.5+k3s1
k3s05     Ready    worker                      562d    v1.29.5+k3s1
k3s06     Ready    worker                      490d    v1.29.5+k3s1

Expected behaviour

Nodes with condition EtcdIsVoter should not be reported as an error. This is normal and expected condition for K3s control-plane nodes.

It appears k8sgpt is making assumptions about node status conditions it might not be expecting. Ideally it can be made aware of this as a normal condition, at worst perhaps unexpected conditions should be presented as a warning not an error?

Actual behaviour

Nodes with condition EtcdIsVoter is reported as an error.

Additional Information

EtcdIsVoter can be either True or False, neither condition is to be considered an error condition. It is simply a status if the node is an etcd voting member or a learning member.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

1 participant