■ ■ ■ ■ ■ ■
pkg/service/cluster_health.go
| skipped 1 lines |
2 | 2 | | |
3 | 3 | | import ( |
4 | 4 | | "context" |
5 | | - | "crypto/tls" |
6 | 5 | | "fmt" |
7 | 6 | | "io/ioutil" |
8 | 7 | | "net/http" |
| skipped 13 lines |
22 | 21 | | v1 "k8s.io/api/core/v1" |
23 | 22 | | metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" |
24 | 23 | | "k8s.io/client-go/kubernetes" |
| 24 | + | "k8s.io/client-go/rest" |
25 | 25 | | ) |
26 | 26 | | |
27 | 27 | | var ( |
| skipped 172 lines |
200 | 200 | | Name: CheckK8sAPI, |
201 | 201 | | Level: StatusSuccess, |
202 | 202 | | } |
203 | | - | isOK, err := GetClusterStatusByAPI(fmt.Sprintf("%s:%d", c.SpecConf.LbKubeApiserverIp, c.SpecConf.KubeApiServerPort)) |
| 203 | + | isOK, err := GetClusterStatusByAPI(fmt.Sprintf("%s:%d", c.SpecConf.LbKubeApiserverIp, c.SpecConf.KubeApiServerPort), &c) |
204 | 204 | | if !isOK { |
205 | 205 | | result.Msg = err |
206 | 206 | | result.Level = StatusError |
| skipped 139 lines |
346 | 346 | | ri.Msg = fmt.Sprintf("select alive host error %s", err.Error()) |
347 | 347 | | return |
348 | 348 | | } |
349 | | - | isOk, msg := GetClusterStatusByAPI(string(aliveHost)) |
| 349 | + | isOk, msg := GetClusterStatusByAPI(string(aliveHost), &m) |
350 | 350 | | if isOk { |
351 | 351 | | if err := db.DB.Model(&model.ClusterSpecConf{}).Where("cluster_id = ?", m.ID).Updates(map[string]interface{}{"lb_kube_apiserver_ip": strings.Split(string(aliveHost), ":")[0]}).Error; err != nil { |
352 | 352 | | ri.Result = StatusFailed |
| skipped 113 lines |
466 | 466 | | ri.Result = StatusRecoverd |
467 | 467 | | } |
468 | 468 | | |
469 | | - | func GetClusterStatusByAPI(addr string) (bool, string) { |
| 469 | + | func GetClusterStatusByAPI(addr string, cluster *model.Cluster) (bool, string) { |
470 | 470 | | reqURL := fmt.Sprintf("https://%s/livez", addr) |
471 | | - | tr := &http.Transport{ |
472 | | - | TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, |
| 471 | + | conf, err := clusterUtil.LoadConnConf(cluster, addr) |
| 472 | + | if err != nil { |
| 473 | + | _, _ = false, fmt.Sprintf("load cluster config error %s", err.Error()) |
| 474 | + | } |
| 475 | + | tls2, err := rest.TransportFor(conf) |
| 476 | + | if err != nil { |
| 477 | + | _, _ = false, fmt.Sprintf("config transport error %s", err.Error()) |
473 | 478 | | } |
474 | | - | client := &http.Client{Timeout: 1 * time.Second, Transport: tr} |
| 479 | + | client := &http.Client{Timeout: 1 * time.Second, Transport: tls2} |
475 | 480 | | request, _ := http.NewRequest("GET", reqURL, nil) |
476 | 481 | | response, err := client.Do(request) |
477 | 482 | | if err != nil { |
| skipped 10 lines |