mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-15 14:14:39 +00:00
check etcd servers by a random order
This commit is contained in:
@@ -18,6 +18,7 @@ package preflight
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"math/rand"
|
||||||
"net"
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
@@ -59,9 +60,11 @@ func parseServerURI(serverURI string) (*url.URL, error) {
|
|||||||
// CheckEtcdServers will attempt to reach all etcd servers once. If any
|
// CheckEtcdServers will attempt to reach all etcd servers once. If any
|
||||||
// can be reached, return true.
|
// can be reached, return true.
|
||||||
func (con EtcdConnection) CheckEtcdServers() (done bool, err error) {
|
func (con EtcdConnection) CheckEtcdServers() (done bool, err error) {
|
||||||
// Attempt to reach every Etcd server in order
|
// Attempt to reach every Etcd server randomly.
|
||||||
for _, serverURI := range con.ServerList {
|
serverNumber := len(con.ServerList)
|
||||||
host, err := parseServerURI(serverURI)
|
serverPerms := rand.Perm(serverNumber)
|
||||||
|
for _, index := range serverPerms {
|
||||||
|
host, err := parseServerURI(con.ServerList[index])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user