diff --git a/core/internal/node/BUILD.bazel b/core/internal/node/BUILD.bazel
index 39b1aca..c83d095 100644
--- a/core/internal/node/BUILD.bazel
+++ b/core/internal/node/BUILD.bazel
@@ -13,6 +13,7 @@
         "//core/internal/api:go_default_library",
         "//core/internal/common:go_default_library",
         "//core/internal/consensus:go_default_library",
+        "//core/internal/kubernetes:go_default_library",
         "//core/internal/storage:go_default_library",
         "@com_github_google_uuid//:go_default_library",
         "@org_uber_go_zap//:go_default_library",
diff --git a/core/internal/node/main.go b/core/internal/node/main.go
index 76a5cf2..40aa8b3 100644
--- a/core/internal/node/main.go
+++ b/core/internal/node/main.go
@@ -18,9 +18,11 @@
 
 import (
 	"flag"
+
 	"git.monogon.dev/source/nexantic.git/core/internal/api"
 	"git.monogon.dev/source/nexantic.git/core/internal/common"
 	"git.monogon.dev/source/nexantic.git/core/internal/consensus"
+	"git.monogon.dev/source/nexantic.git/core/internal/kubernetes"
 	"git.monogon.dev/source/nexantic.git/core/internal/storage"
 	"os"
 
@@ -30,14 +32,15 @@
 
 type (
 	SmalltownNode struct {
-		Api       *api.Server
-		Consensus *consensus.Service
-		Storage   *storage.Manager
+		Api        *api.Server
+		Consensus  *consensus.Service
+		Storage    *storage.Manager
+		Kubernetes *kubernetes.Service
 
-		logger       *zap.Logger
-		state        common.SmalltownState
-		joinToken    string
-		hostname     string
+		logger    *zap.Logger
+		state     common.SmalltownState
+		joinToken string
+		hostname  string
 	}
 )
 
@@ -57,9 +60,10 @@
 	}
 
 	consensusService, err := consensus.NewConsensusService(consensus.Config{
-		Name:       hostname,
-		ListenPort: consensusPort,
-		ListenHost: "0.0.0.0",
+		Name:         hostname,
+		ListenPort:   consensusPort,
+		ListenHost:   "0.0.0.0",
+		ExternalHost: "10.0.2.15", // TODO: Once Multi-Node setups are actually used, this needs to be corrected
 	}, logger.With(zap.String("module", "consensus")))
 	if err != nil {
 		return nil, err
@@ -81,6 +85,8 @@
 
 	s.Api = apiService
 
+	s.Kubernetes = kubernetes.New(logger.With(zap.String("module", "kubernetes")), consensusService)
+
 	logger.Info("Created SmalltownNode")
 
 	return s, nil
@@ -140,6 +146,11 @@
 		return err
 	}
 
+	err = s.Kubernetes.Start()
+	if err != nil {
+		s.logger.Error("Failed to start the Kubernetes Service", zap.Error(err))
+	}
+
 	return nil
 }
 
diff --git a/core/internal/node/setup.go b/core/internal/node/setup.go
index efc72d3..98873d3 100644
--- a/core/internal/node/setup.go
+++ b/core/internal/node/setup.go
@@ -83,6 +83,14 @@
 		return err
 	}
 
+	if err := s.Kubernetes.NewCluster(); err != nil {
+		return err
+	}
+
+	if err := s.Kubernetes.Start(); err != nil {
+		return err
+	}
+
 	// Change system state
 	s.state = common.StateConfigured
 
