diff --git a/cmd/common.go b/cmd/common.go
index 3e01f2a38f235ad644af4ee52ade3ce8597dcf94..2bcf30e8fa4c0ff6257975f13b658392f501cf1b 100644
--- a/cmd/common.go
+++ b/cmd/common.go
@@ -62,7 +62,7 @@ func runChecks(t check.NodeType) {
 	}
 
 	ver := getKubeVersion()
-	path := fmt.Sprintf("%s/%s/%s", cfgDir, ver.Server, file)
+	path := fmt.Sprintf("%s/%s/%s", cfgDir, ver, file)
 	in, err := ioutil.ReadFile(path)
 	if err != nil {
 		exitWithError(fmt.Errorf("error opening %s controls file: %v", t, err))
diff --git a/cmd/util.go b/cmd/util.go
index dfd8b235076bdcc214af022f0176a564e5a100e5..97b554476e3a475715f16ef45e69c55e11e7ba05 100644
--- a/cmd/util.go
+++ b/cmd/util.go
@@ -213,37 +213,27 @@ func multiWordReplace(s string, subname string, sub string) string {
 	return strings.Replace(s, subname, sub, -1)
 }
 
-type version struct {
-	Server string
-	Client string
-}
-
-func getKubeVersion() *version {
-	ver := new(version)
+func getKubeVersion() string {
+	failmsg := "kubernetes version check failed"
 	// These executables might not be on the user's path.
 	_, err := exec.LookPath("kubectl")
 	if err != nil {
-		s := fmt.Sprintf("Kubernetes version check skipped with error %v", err)
-		continueWithError(err, sprintlnWarn(s))
-		return nil
+		exitWithError(fmt.Errorf("%s: %s", failmsg, err))
 	}
 
-	cmd := exec.Command("kubectl", "version")
-	out, err := cmd.Output()
+	cmd := exec.Command("kubectl", "version", "--short")
+	out, err := cmd.CombinedOutput()
 	if err != nil {
-		s := fmt.Sprintf("Kubernetes version check skipped, with error getting kubectl version")
-		continueWithError(err, sprintlnWarn(s))
-		return nil
+		exitWithError(fmt.Errorf("%s, %s", failmsg, out))
 	}
 
-	clientVerRe := regexp.MustCompile(`Client.*Major:"(\d+)".*Minor:"(\d+)"`)
-	svrVerRe := regexp.MustCompile(`Server.*Major:"(\d+)".*Minor:"(\d+)"`)
+	validVersionPttn := `\d.\d`
+	serverVersionRe := regexp.MustCompile(`Server Version: v(\d+.\d+)`)
+	ver := serverVersionRe.FindStringSubmatch(string(out))[1]
 
-	sub := clientVerRe.FindStringSubmatch(string(out))
-	ver.Client = sub[1] + "." + sub[2]
-
-	sub = svrVerRe.FindStringSubmatch(string(out))
-	ver.Server = sub[1] + "." + sub[2]
+	if matched, _ := regexp.MatchString(validVersionPttn, ver); !matched {
+		exitWithError(fmt.Errorf("%s: invalid server version ", failmsg, ver))
+	}
 
 	return ver
 }
diff --git a/cmd/util_test.go b/cmd/util_test.go
index 50044cf4d03823f987518e03a894a80438a70a05..646a75e54a962379dabe2c6a1723cad93de59920 100644
--- a/cmd/util_test.go
+++ b/cmd/util_test.go
@@ -184,18 +184,11 @@ func TestMultiWordReplace(t *testing.T) {
 
 func TestGetKubeVersion(t *testing.T) {
 	ver := getKubeVersion()
-	if ver == nil {
-		t.Log("Expected non nil version info.")
-	} else {
-		if ok, err := regexp.MatchString(`\d+.\d+`, ver.Client); !ok && err != nil {
-			t.Logf("Expected:%v got %v\n", "n.m", ver.Client)
-		}
-
-		if ok, err := regexp.MatchString(`\d+.\d+`, ver.Server); !ok && err != nil {
-			t.Logf("Expected:%v got %v\n", "n.m", ver.Server)
-		}
 
+	if ok, err := regexp.MatchString(`\d+.\d+`, ver); !ok && err != nil {
+		t.Logf("Expected:%v got %v\n", "n.m", ver)
 	}
+
 }
 
 func TestFindConfigFile(t *testing.T) {