$ go run resourcelock.go -h
...
-key string
lease lock name (default "example") -kubeconfig string
(optional) absolute path to the kubeconfig file (default "/Users/xiexianbin/.kube/config")...
-name string
identity name who holder the lock
-ns string
which namespace the lease lock create in (default "default")...
run
bash
# lock1$ go run resourcelock.go -ns default -name lock1
.. leaderelection.go:250] attempting to acquire leader lease default/example...
.. leaderelection.go:260] successfully acquired lease default/example
.. resourcelock.go:89] lock1: get leading
^C.. Received termination, shutdown ...
.. resourcelock.go:92] lock1: lost leading
.. lock1: exit# lock2$ go run resourcelock.go -ns default -name lock2
.. leaderelection.go:250] attempting to acquire leader lease default/example...
.. resourcelock.go:99] new leader elected: lock1
.. leaderelection.go:260] successfully acquired lease default/example
.. resourcelock.go:89] lock2: get leading
leaderelection.go:332] error retrieving resource lock xx/xx:etcdserver:leader changedleaderelection.go:285] failed to renew lease timed out waiting for the condition
可能原因
时间不同步
etcd 同步慢,扩大etcd的心跳检测时间
bash
$ vim /etc/kubernetes/manifests/etcd.yaml
- --election-timeout=5000 - --heartbeat-interval=500