mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-11 21:12:07 +00:00
Move 'pkg/standalone' package to 'pkg/kubelet/server'.
This paves the way to hyperkube for the kubelet.
This commit is contained in:
parent
0474c49b07
commit
d96afdd645
@ -40,16 +40,17 @@ import (
|
|||||||
nodeControllerPkg "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/controller"
|
nodeControllerPkg "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/controller"
|
||||||
replicationControllerPkg "github.com/GoogleCloudPlatform/kubernetes/pkg/controller"
|
replicationControllerPkg "github.com/GoogleCloudPlatform/kubernetes/pkg/controller"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
|
||||||
|
kubeletServer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/server"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/volume/empty_dir"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/volume/empty_dir"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/labels"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/master"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/master"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/probe"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/probe"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/service"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/service"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/standalone"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util/wait"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/admission/admit"
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/admission/admit"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler"
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler"
|
||||||
|
_ "github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/algorithmprovider"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory"
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory"
|
||||||
|
|
||||||
"github.com/coreos/go-etcd/etcd"
|
"github.com/coreos/go-etcd/etcd"
|
||||||
@ -202,13 +203,13 @@ func startComponents(manifestURL string) (apiServerURL string) {
|
|||||||
// Kubelet (localhost)
|
// Kubelet (localhost)
|
||||||
testRootDir := makeTempDirOrDie("kubelet_integ_1.")
|
testRootDir := makeTempDirOrDie("kubelet_integ_1.")
|
||||||
glog.Infof("Using %s as root dir for kubelet #1", testRootDir)
|
glog.Infof("Using %s as root dir for kubelet #1", testRootDir)
|
||||||
standalone.SimpleRunKubelet(cl, nil, &fakeDocker1, machineList[0], testRootDir, manifestURL, "127.0.0.1", 10250, api.NamespaceDefault, empty_dir.ProbeVolumePlugins())
|
kubeletServer.SimpleRunKubelet(cl, nil, &fakeDocker1, machineList[0], testRootDir, manifestURL, "127.0.0.1", 10250, api.NamespaceDefault, empty_dir.ProbeVolumePlugins())
|
||||||
// Kubelet (machine)
|
// Kubelet (machine)
|
||||||
// Create a second kubelet so that the guestbook example's two redis slaves both
|
// Create a second kubelet so that the guestbook example's two redis slaves both
|
||||||
// have a place they can schedule.
|
// have a place they can schedule.
|
||||||
testRootDir = makeTempDirOrDie("kubelet_integ_2.")
|
testRootDir = makeTempDirOrDie("kubelet_integ_2.")
|
||||||
glog.Infof("Using %s as root dir for kubelet #2", testRootDir)
|
glog.Infof("Using %s as root dir for kubelet #2", testRootDir)
|
||||||
standalone.SimpleRunKubelet(cl, nil, &fakeDocker2, machineList[1], testRootDir, "", "127.0.0.1", 10251, api.NamespaceDefault, empty_dir.ProbeVolumePlugins())
|
kubeletServer.SimpleRunKubelet(cl, nil, &fakeDocker2, machineList[1], testRootDir, "", "127.0.0.1", 10251, api.NamespaceDefault, empty_dir.ProbeVolumePlugins())
|
||||||
|
|
||||||
return apiServer.URL
|
return apiServer.URL
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,8 @@ import (
|
|||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/credentialprovider"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/credentialprovider"
|
||||||
_ "github.com/GoogleCloudPlatform/kubernetes/pkg/healthz"
|
_ "github.com/GoogleCloudPlatform/kubernetes/pkg/healthz"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet"
|
||||||
|
kubeletServer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/server"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/master/ports"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/master/ports"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/standalone"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/version/verflag"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/version/verflag"
|
||||||
|
|
||||||
@ -123,14 +123,14 @@ func main() {
|
|||||||
glog.Info(err)
|
glog.Info(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
client, err := standalone.GetAPIServerClient(*authPath, apiServerList)
|
client, err := kubeletServer.GetAPIServerClient(*authPath, apiServerList)
|
||||||
if err != nil && len(apiServerList) > 0 {
|
if err != nil && len(apiServerList) > 0 {
|
||||||
glog.Warningf("No API client: %v", err)
|
glog.Warningf("No API client: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
credentialprovider.SetPreferredDockercfgPath(*rootDirectory)
|
credentialprovider.SetPreferredDockercfgPath(*rootDirectory)
|
||||||
|
|
||||||
kcfg := standalone.KubeletConfig{
|
kcfg := kubeletServer.KubeletConfig{
|
||||||
Address: address,
|
Address: address,
|
||||||
AllowPrivileged: *allowPrivileged,
|
AllowPrivileged: *allowPrivileged,
|
||||||
HostnameOverride: *hostnameOverride,
|
HostnameOverride: *hostnameOverride,
|
||||||
@ -159,7 +159,7 @@ func main() {
|
|||||||
VolumePlugins: app.ProbeVolumePlugins(),
|
VolumePlugins: app.ProbeVolumePlugins(),
|
||||||
}
|
}
|
||||||
|
|
||||||
standalone.RunKubelet(&kcfg)
|
kubeletServer.RunKubelet(&kcfg)
|
||||||
// runs forever
|
// runs forever
|
||||||
select {}
|
select {}
|
||||||
}
|
}
|
||||||
|
@ -23,14 +23,26 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
|
"net/http"
|
||||||
|
"time"
|
||||||
|
|
||||||
kubeletapp "github.com/GoogleCloudPlatform/kubernetes/cmd/kubelet/app"
|
kubeletapp "github.com/GoogleCloudPlatform/kubernetes/cmd/kubelet/app"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/resource"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/testapi"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/standalone"
|
nodeControllerPkg "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/controller"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/controller"
|
||||||
|
kubeletServer "github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/server"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/master"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/master/ports"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/service"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/tools"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/tools"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler"
|
||||||
|
_ "github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/algorithmprovider"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
flag "github.com/spf13/pflag"
|
flag "github.com/spf13/pflag"
|
||||||
@ -47,15 +59,89 @@ var (
|
|||||||
masterServiceNamespace = flag.String("master_service_namespace", api.NamespaceDefault, "The namespace from which the kubernetes master services should be injected into pods")
|
masterServiceNamespace = flag.String("master_service_namespace", api.NamespaceDefault, "The namespace from which the kubernetes master services should be injected into pods")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type delegateHandler struct {
|
||||||
|
delegate http.Handler
|
||||||
|
}
|
||||||
|
|
||||||
|
func (h *delegateHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
||||||
|
if h.delegate != nil {
|
||||||
|
h.delegate.ServeHTTP(w, req)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
w.WriteHeader(http.StatusNotFound)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RunApiServer starts an API server in a go routine.
|
||||||
|
func runApiServer(cl *client.Client, etcdClient tools.EtcdClient, addr net.IP, port int, masterServiceNamespace string) {
|
||||||
|
handler := delegateHandler{}
|
||||||
|
|
||||||
|
helper, err := master.NewEtcdHelper(etcdClient, "")
|
||||||
|
if err != nil {
|
||||||
|
glog.Fatalf("Unable to get etcd helper: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create a master and install handlers into mux.
|
||||||
|
m := master.New(&master.Config{
|
||||||
|
Client: cl,
|
||||||
|
EtcdHelper: helper,
|
||||||
|
KubeletClient: &client.HTTPKubeletClient{
|
||||||
|
Client: http.DefaultClient,
|
||||||
|
Port: 10250,
|
||||||
|
},
|
||||||
|
EnableLogsSupport: false,
|
||||||
|
EnableSwaggerSupport: true,
|
||||||
|
APIPrefix: "/api",
|
||||||
|
Authorizer: apiserver.NewAlwaysAllowAuthorizer(),
|
||||||
|
|
||||||
|
ReadWritePort: port,
|
||||||
|
ReadOnlyPort: port,
|
||||||
|
PublicAddress: addr,
|
||||||
|
MasterServiceNamespace: masterServiceNamespace,
|
||||||
|
})
|
||||||
|
handler.delegate = m.InsecureHandler
|
||||||
|
|
||||||
|
go http.ListenAndServe(fmt.Sprintf("%s:%d", addr, port), &handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RunScheduler starts up a scheduler in it's own goroutine
|
||||||
|
func runScheduler(cl *client.Client) {
|
||||||
|
// Scheduler
|
||||||
|
schedulerConfigFactory := factory.NewConfigFactory(cl)
|
||||||
|
schedulerConfig, err := schedulerConfigFactory.Create()
|
||||||
|
if err != nil {
|
||||||
|
glog.Fatalf("Couldn't create scheduler config: %v", err)
|
||||||
|
}
|
||||||
|
scheduler.New(schedulerConfig).Run()
|
||||||
|
}
|
||||||
|
|
||||||
|
// RunControllerManager starts a controller
|
||||||
|
func runControllerManager(machineList []string, cl *client.Client, nodeMilliCPU, nodeMemory int64) {
|
||||||
|
nodeResources := &api.NodeResources{
|
||||||
|
Capacity: api.ResourceList{
|
||||||
|
api.ResourceCPU: *resource.NewMilliQuantity(nodeMilliCPU, resource.DecimalSI),
|
||||||
|
api.ResourceMemory: *resource.NewQuantity(nodeMemory, resource.BinarySI),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
kubeClient := &client.HTTPKubeletClient{Client: http.DefaultClient, Port: ports.KubeletPort}
|
||||||
|
nodeController := nodeControllerPkg.NewNodeController(nil, "", machineList, nodeResources, cl, kubeClient)
|
||||||
|
nodeController.Run(10*time.Second, 10)
|
||||||
|
|
||||||
|
endpoints := service.NewEndpointController(cl)
|
||||||
|
go util.Forever(func() { endpoints.SyncServiceEndpoints() }, time.Second*10)
|
||||||
|
|
||||||
|
controllerManager := controller.NewReplicationManager(cl)
|
||||||
|
controllerManager.Run(10 * time.Second)
|
||||||
|
}
|
||||||
|
|
||||||
func startComponents(etcdClient tools.EtcdClient, cl *client.Client, addr net.IP, port int) {
|
func startComponents(etcdClient tools.EtcdClient, cl *client.Client, addr net.IP, port int) {
|
||||||
machineList := []string{"localhost"}
|
machineList := []string{"localhost"}
|
||||||
|
|
||||||
standalone.RunApiServer(cl, etcdClient, addr, port, *masterServiceNamespace)
|
runApiServer(cl, etcdClient, addr, port, *masterServiceNamespace)
|
||||||
standalone.RunScheduler(cl)
|
runScheduler(cl)
|
||||||
standalone.RunControllerManager(machineList, cl, *nodeMilliCPU, *nodeMemory)
|
runControllerManager(machineList, cl, *nodeMilliCPU, *nodeMemory)
|
||||||
|
|
||||||
dockerClient := util.ConnectToDockerOrDie(*dockerEndpoint)
|
dockerClient := util.ConnectToDockerOrDie(*dockerEndpoint)
|
||||||
standalone.SimpleRunKubelet(cl, nil, dockerClient, machineList[0], "/tmp/kubernetes", "", "127.0.0.1", 10250, *masterServiceNamespace, kubeletapp.ProbeVolumePlugins())
|
kubeletServer.SimpleRunKubelet(cl, nil, dockerClient, machineList[0], "/tmp/kubernetes", "", "127.0.0.1", 10250, *masterServiceNamespace, kubeletapp.ProbeVolumePlugins())
|
||||||
}
|
}
|
||||||
|
|
||||||
func newApiClient(addr net.IP, port int) *client.Client {
|
func newApiClient(addr net.IP, port int) *client.Client {
|
||||||
|
@ -14,51 +14,27 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package standalone
|
// package server makes it easy to create a kubelet server for various contexts.
|
||||||
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api/resource"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/apiserver"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/clientauth"
|
||||||
nodeControllerPkg "github.com/GoogleCloudPlatform/kubernetes/pkg/cloudprovider/controller"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/controller"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/credentialprovider"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/credentialprovider"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/config"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/config"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/dockertools"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/volume"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/volume"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/master"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/master/ports"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/service"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/tools"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/tools"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler"
|
|
||||||
_ "github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/algorithmprovider"
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/plugin/pkg/scheduler/factory"
|
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
)
|
)
|
||||||
|
|
||||||
type delegateHandler struct {
|
|
||||||
delegate http.Handler
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *delegateHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|
||||||
if h.delegate != nil {
|
|
||||||
h.delegate.ServeHTTP(w, req)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
w.WriteHeader(http.StatusNotFound)
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: replace this with clientcmd
|
// TODO: replace this with clientcmd
|
||||||
func GetAPIServerClient(authPath string, apiServerList util.StringList) (*client.Client, error) {
|
func GetAPIServerClient(authPath string, apiServerList util.StringList) (*client.Client, error) {
|
||||||
authInfo, err := clientauth.LoadFromFile(authPath)
|
authInfo, err := clientauth.LoadFromFile(authPath)
|
||||||
@ -88,69 +64,6 @@ func GetAPIServerClient(authPath string, apiServerList util.StringList) (*client
|
|||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// RunApiServer starts an API server in a go routine.
|
|
||||||
func RunApiServer(cl *client.Client, etcdClient tools.EtcdClient, addr net.IP, port int, masterServiceNamespace string) {
|
|
||||||
handler := delegateHandler{}
|
|
||||||
|
|
||||||
helper, err := master.NewEtcdHelper(etcdClient, "")
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Unable to get etcd helper: %v", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create a master and install handlers into mux.
|
|
||||||
m := master.New(&master.Config{
|
|
||||||
Client: cl,
|
|
||||||
EtcdHelper: helper,
|
|
||||||
KubeletClient: &client.HTTPKubeletClient{
|
|
||||||
Client: http.DefaultClient,
|
|
||||||
Port: 10250,
|
|
||||||
},
|
|
||||||
EnableLogsSupport: false,
|
|
||||||
EnableSwaggerSupport: true,
|
|
||||||
EnableIndex: true,
|
|
||||||
APIPrefix: "/api",
|
|
||||||
Authorizer: apiserver.NewAlwaysAllowAuthorizer(),
|
|
||||||
|
|
||||||
ReadWritePort: port,
|
|
||||||
ReadOnlyPort: port,
|
|
||||||
PublicAddress: addr,
|
|
||||||
MasterServiceNamespace: masterServiceNamespace,
|
|
||||||
})
|
|
||||||
handler.delegate = m.InsecureHandler
|
|
||||||
|
|
||||||
go http.ListenAndServe(fmt.Sprintf("%s:%d", addr, port), &handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
// RunScheduler starts up a scheduler in it's own goroutine
|
|
||||||
func RunScheduler(cl *client.Client) {
|
|
||||||
// Scheduler
|
|
||||||
schedulerConfigFactory := factory.NewConfigFactory(cl)
|
|
||||||
schedulerConfig, err := schedulerConfigFactory.Create()
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalf("Couldn't create scheduler config: %v", err)
|
|
||||||
}
|
|
||||||
scheduler.New(schedulerConfig).Run()
|
|
||||||
}
|
|
||||||
|
|
||||||
// RunControllerManager starts a controller
|
|
||||||
func RunControllerManager(machineList []string, cl *client.Client, nodeMilliCPU, nodeMemory int64) {
|
|
||||||
nodeResources := &api.NodeResources{
|
|
||||||
Capacity: api.ResourceList{
|
|
||||||
api.ResourceCPU: *resource.NewMilliQuantity(nodeMilliCPU, resource.DecimalSI),
|
|
||||||
api.ResourceMemory: *resource.NewQuantity(nodeMemory, resource.BinarySI),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
kubeClient := &client.HTTPKubeletClient{Client: http.DefaultClient, Port: ports.KubeletPort}
|
|
||||||
nodeController := nodeControllerPkg.NewNodeController(nil, "", machineList, nodeResources, cl, kubeClient)
|
|
||||||
nodeController.Run(10*time.Second, 10)
|
|
||||||
|
|
||||||
endpoints := service.NewEndpointController(cl)
|
|
||||||
go util.Forever(func() { endpoints.SyncServiceEndpoints() }, time.Second*10)
|
|
||||||
|
|
||||||
controllerManager := controller.NewReplicationManager(cl)
|
|
||||||
controllerManager.Run(10 * time.Second)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SimpleRunKubelet is a simple way to start a Kubelet talking to dockerEndpoint, using an etcdClient.
|
// SimpleRunKubelet is a simple way to start a Kubelet talking to dockerEndpoint, using an etcdClient.
|
||||||
// Under the hood it calls RunKubelet (below)
|
// Under the hood it calls RunKubelet (below)
|
||||||
func SimpleRunKubelet(client *client.Client,
|
func SimpleRunKubelet(client *client.Client,
|
@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 Google Inc. All rights reserved.
|
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
you may not use this file except in compliance with the License.
|
|
||||||
You may obtain a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
See the License for the specific language governing permissions and
|
|
||||||
limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
// package standalone has utilities for running different Kubernetes binaries in a single binary.
|
|
||||||
package standalone
|
|
Loading…
Reference in New Issue
Block a user