diff --git a/cfg/config.yaml b/cfg/config.yaml
index e7c2e4fbe11218c6a6df369689fc3a7ffe6c4f9a..8512c75f888279ed710f6783da297a5c05c65da2 100644
--- a/cfg/config.yaml
+++ b/cfg/config.yaml
@@ -99,6 +99,10 @@ node:
       - /etc/kubernetes/kubelet.conf
       - /etc/kubernetes/kubelet 
     defaultconf: "/etc/kubernetes/kubelet.conf"
+
+    unitfiles:
+     - /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
+    defaultunitfile: /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
   
   proxy:
     bins:
diff --git a/cmd/common.go b/cmd/common.go
index e9cc610c1cee10e4a0cc16c8212389c50c7746fa..2c22c9da6082e05feefdba22b7d0f8fc334574a4 100644
--- a/cmd/common.go
+++ b/cmd/common.go
@@ -68,6 +68,7 @@ func runChecks(t check.NodeType) {
 	binmap := getBinaries(typeConf)
 	confmap := getConfigFiles(typeConf)
 	podspecmap := getPodSpecFiles(typeConf)
+	unitfilemap := getUnitFiles(typeConf)
 
 	switch t {
 	case check.MASTER:
@@ -90,6 +91,7 @@ func runChecks(t check.NodeType) {
 	s = makeSubstitutions(s, "bin", binmap)
 	s = makeSubstitutions(s, "conf", confmap)
 	s = makeSubstitutions(s, "podspec", podspecmap)
+	s = makeSubstitutions(s, "unitfile", unitfilemap)
 
 	glog.V(1).Info(fmt.Sprintf("Using config file: %s\n", viper.ConfigFileUsed()))
 	glog.V(1).Info(fmt.Sprintf("Using benchmark file: %s\n", path))
diff --git a/cmd/util.go b/cmd/util.go
index 5dd23038fdf50cd9be9dbb300a3ec96fc9a21a91..1de375cafd20eedb2a21326847b75844d38c4d23 100644
--- a/cmd/util.go
+++ b/cmd/util.go
@@ -178,6 +178,37 @@ func getPodSpecFiles(v *viper.Viper) map[string]string {
 	return podspecmap
 }
 
+// getUnitFiles finds which of the set of candidate unit files exist
+func getUnitFiles(v *viper.Viper) map[string]string {
+	unitfilemap := make(map[string]string)
+
+	for _, component := range v.GetStringSlice("components") {
+		s := v.Sub(component)
+		if s == nil {
+			continue
+		}
+
+		// See if any of the candidate podspec files exist
+		unitfile := findConfigFile(s.GetStringSlice("unitfiles"))
+		if unitfile == "" {
+			if s.IsSet("defaultunitfile") {
+				unitfile = s.GetString("defaultunitfile")
+				glog.V(2).Info(fmt.Sprintf("Using default unit file name '%s' for component %s", unitfile, component))
+			} else {
+				// Default the config file name that we'll substitute to the name of the component
+				printlnWarn(fmt.Sprintf("Missing unit file for %s", component))
+				unitfile = component
+			}
+		} else {
+			glog.V(2).Info(fmt.Sprintf("Component %s uses unit file '%s'", component, unitfile))
+		}
+
+		unitfilemap[component] = unitfile
+	}
+
+	return unitfilemap
+}
+
 // verifyBin checks that the binary specified is running
 func verifyBin(bin string) bool {