Kubernetes Architecture API Server etcd Create Deployment Controller Manager Deployment Controller Watch Store kubectl API Server Create Deployment kubectl replica: 3
Kubernetes Architecture API Server etcd Create Deployment Controller Manager Deployment Controller Watch Store kubectl API Server Create Deployment kubectl replica: 3 API Server Controller Manager Deployment Controller Watch Create ReplicaSet replica: 3
Kubernetes Architecture API Server etcd Create Deployment Controller Manager Deployment Controller Watch Store kubectl API Server Create Deployment kubectl replica: 3 -> 2 Update
Reconciliation Loop Provided in Managing Kubernetes: Operating Kubernetes Clusters in the Real World, 23. https://www.oreilly.com/library/view/managing-kubernetes/9781492033905/
API Server Controller Pod A Watch Controller Pod B Leader-for-life ConfigMap Lock Create ConfigMap PXOFS3FGFSFODFT BQJ7FSTJPOW LJOE1PE OBNF$POUSPMMFS1PE"
API Server Controller Pod A Controller Pod B Leader-for-life ConfigMap Lock PXOFS3FGFSFODFT BQJ7FSTJPOW LJOE1PE OBNF$POUSPMMFS1PE# Create ConfigMap Watch
API Server Controller Pod A Controller Pod B Leader-for-life ConfigMap Lock PXOFS3FGFSFODFT BQJ7FSTJPOW LJOE1PE OBNF$POUSPMMFS1PE# Create ConfigMap Watch
Check lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch Update lease record observedTime: 2020-01-28T05:33:18Z holderIdentity: Pod A leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80
observedTime: 2020-01-28T05:33:18Z Check lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch Update lease record Controller Pod A ConfigMap Lock Update lease record ϦʔμʔఆظతʹϦʔεΛߋ৽͢Δ (ߋ৽͢Δͱ renewTime ͕ॻ͖ΘΔ) holderIdentity: Pod A leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80
Check lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch Update lease record PCTFSWFE5JNF5; Controller Pod A ConfigMap Lock Update lease record observedTime: 2020-01-28T05:33:18Z Controller ෦Ͱ observedTime ͱ͍͏Λ͓࣋ͬͯΓ ఆʹ༻͢Δ holderIdentity: Pod A leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80
Check lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch holderIdentity: Pod A leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80
Check lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch IPMEFS*EFOUJUZ1PE" MFBTF%VSBUJPO4FDPOET BDRVJSF5JNF5; SFOFX5JNF5; MFBEFS5SBOTJUJPOT Check lease record Controller Pod B ConfigMap Lock holderIdentity: Pod A leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80 PCTFSWFE5JNF5; observedTime + leaseDurationSeconds < now ͳΒ ԿΒ͔ͷཧ༝ͰϦʔε͕ߋ৽͞Ε͍ͯͳ͍ͨΊ ͕ࣗϦʔμʔʹͳΖ͏ͱߋ৽ΛࢼΈΔ
Update lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch holderIdentity: Pod B leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80
Update lease record API Server Controller Pod A Controller Pod B Leader-with-lease ConfigMap Lock Watch Check lease record holderIdentity: Pod B leaseDurationSeconds: 60 acquireTime: 2020-01-27T03:44:58Z renewTime: 2020-01-28T05:33:18Z leaderTransitions: 80