Comments (7)
Based on the code inference, we infer that the following situation occurs:
1、The lease queried before the controller-manager request of the master1 node times out is the penultimate renewal of the controller-manager before the master2 node is powered off, not the last renewal.
2、After controller-manager of master2 updates the lease, controller-manager of master1 fails to obtain the latest lease due to the persistent connection of http2.
3、When the http2 connection is disconnected and reconnected, the latest lease information is obtained.
4、However, the lease in the memory is not the latest lease. Therefore, le.observedTime is updated to the current time based on the code.
So the question is why does le.setObservedRecord update observedTime to the current time instead of renewTime?
If update observedTime to renewTime, does that fix the problem?
from kubernetes.
/sig apps
from kubernetes.
/triage accepted
from kubernetes.
If update observedTime to renewTime, does that fix the problem?
observedTime
is necessary .Utilizing observedTime
contributes to ensuring consistency, robustness, and correctness in the election process.
from kubernetes.
The log entries you've shared indicate a situation where master1, already recognized as the leader, is inexplicably initiating another leadership acquisition attempt.
Consider testing version 1.30 to check if the problem remains unresolved. The following code should alleviate your issue to some degree:
from kubernetes.
The log entries you've shared indicate a situation where master1, already recognized as the leader, is inexplicably initiating another leadership acquisition attempt.
Consider testing version 1.30 to check if the problem remains unresolved. The following code should alleviate your issue to some degree:
I think you may have missed my point. What I want to know is why observedTime
is used instead of renewTime
to determine if the lease has expired.
from kubernetes.
I think you may have missed my point. What I want to know is why observedTime is used instead of renewTime to determine if the lease has expired.
No, I know what you mean. As I said above, you can't do it this way.
from kubernetes.
Related Issues (20)
- pull-kubernetes-typecheck doesn't notice compile errors in staging test files HOT 3
- NodePort service with endpoints has "has no local endpoints" in iptables HOT 8
- Graduate RotateKubeletServerCertificate HOT 7
- Pod starting order after restart doesn't follow pod priorities HOT 4
- client-go: global transport cache grows unbounded when requesting configs with non-nil `Dial` functions HOT 2
- How to Process Pod Eviction and Rebuilding Caused by Node NotReady in a More Refined Manner HOT 3
- DRA: better reporting of problems in CEL expressions HOT 2
- Failure cluster [cd640ec5...] `Cannot enforce AppArmor: AppArmor is not enabled on the host` HOT 2
- The openapi cache occupies a large amount of memory. HOT 4
- No resources found HOT 10
- [FG:InPlacePodVerticalScaling] Backoff problem when quickly reverting resize patch HOT 3
- Add Container Optimized OS version to release notes for gke releases. HOT 4
- CoreDNS pod waits on kubernetes indefinitely, fails to start HOT 4
- Issue Title HOT 2
- /dev/shm can be oversubscribed compared to host HOT 3
- Kubectl describe pod is providing truncated output for "k8s.v1.cni.cncf.io/networks" HOT 3
- Increase recommended default RetryPeriod for LeaderElection HOT 4
- Using server-side-apply for an Ingress failed when updating IngressBackend from port number to port name HOT 2
- Failure cluster [1315bc0a...] `Merged kubelet config does not match the expected configuration` HOT 4
- Failure cluster [298c454d...] `ttrpc: closed` during ListPodSandboxStats HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kubernetes.