diff --git a/cluster/saltbase/salt/monit/kubelet b/cluster/saltbase/salt/monit/kubelet index ab8ee30b598..cbde975ac92 100644 --- a/cluster/saltbase/salt/monit/kubelet +++ b/cluster/saltbase/salt/monit/kubelet @@ -3,4 +3,7 @@ group kubelet start program = "/etc/init.d/kubelet start" stop program = "/etc/init.d/kubelet stop" if does not exist then restart - +if failed port 10250 + protocol HTTP request "/healthz" + with timeout 10 seconds + then restart diff --git a/pkg/kubelet/server.go b/pkg/kubelet/server.go index 88f444c2708..61967b1bb55 100644 --- a/pkg/kubelet/server.go +++ b/pkg/kubelet/server.go @@ -166,7 +166,7 @@ func (s *Server) handleHealthz(w http.ResponseWriter, req *http.Request) { // Check that the hostname known by the master matches the hostname // the kubelet knows hostname := s.host.GetHostname() - if masterHostname != hostname { + if masterHostname != hostname && masterHostname != "127.0.0.1" && masterHostname != "localhost" { s.error(w, errors.New("Kubelet hostname \""+hostname+"\" does not match the hostname expected by the master \""+masterHostname+"\"")) return } diff --git a/pkg/kubelet/server_test.go b/pkg/kubelet/server_test.go index b186e1be209..9816bed9fb1 100644 --- a/pkg/kubelet/server_test.go +++ b/pkg/kubelet/server_test.go @@ -483,8 +483,8 @@ func TestHealthCheck(t *testing.T) { t.Fatalf("Got error GETing: %v", err) } defer resp.Body.Close() - if resp.StatusCode != http.StatusInternalServerError { - t.Errorf("expected status code %d, got %d", http.StatusInternalServerError, resp.StatusCode) + if resp.StatusCode != http.StatusOK { + t.Errorf("expected status code %d, got %d", http.StatusOK, resp.StatusCode) } //Test with old docker version @@ -498,7 +498,7 @@ func TestHealthCheck(t *testing.T) { } defer resp.Body.Close() if resp.StatusCode != http.StatusInternalServerError { - t.Errorf("expected status code %d, got %d", http.StatusOK, resp.StatusCode) + t.Errorf("expected status code %d, got %d", http.StatusInternalServerError, resp.StatusCode) } }