mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 10:19:50 +00:00
kubeadm: scheduler using livez and readyz instead of healthz.
Signed-off-by: Lan Liang <gcslyp@gmail.com>
This commit is contained in:
parent
9fe06620f3
commit
db8f3a4b7c
@ -37,8 +37,6 @@ const (
|
||||
DefaultClusterDNSIP = "10.96.0.10"
|
||||
// DefaultKubernetesVersion defines default kubernetes version
|
||||
DefaultKubernetesVersion = "stable-1"
|
||||
// DefaultAPIBindPort defines default API port
|
||||
DefaultAPIBindPort = 6443
|
||||
// DefaultCertificatesDir defines default certificate directory
|
||||
DefaultCertificatesDir = "/etc/kubernetes/pki"
|
||||
// DefaultImageRepository defines default image registry
|
||||
@ -189,7 +187,7 @@ func SetDefaults_BootstrapTokens(obj *InitConfiguration) {
|
||||
// SetDefaults_APIEndpoint sets the defaults for the API server instance deployed on a node.
|
||||
func SetDefaults_APIEndpoint(obj *APIEndpoint) {
|
||||
if obj.BindPort == 0 {
|
||||
obj.BindPort = DefaultAPIBindPort
|
||||
obj.BindPort = constants.KubeAPIServerPort
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -37,8 +37,6 @@ const (
|
||||
DefaultClusterDNSIP = "10.96.0.10"
|
||||
// DefaultKubernetesVersion defines default kubernetes version
|
||||
DefaultKubernetesVersion = "stable-1"
|
||||
// DefaultAPIBindPort defines default API port
|
||||
DefaultAPIBindPort = 6443
|
||||
// DefaultCertificatesDir defines default certificate directory
|
||||
DefaultCertificatesDir = "/etc/kubernetes/pki"
|
||||
// DefaultImageRepository defines default image registry
|
||||
@ -197,7 +195,7 @@ func SetDefaults_BootstrapTokens(obj *InitConfiguration) {
|
||||
// SetDefaults_APIEndpoint sets the defaults for the API server instance deployed on a node.
|
||||
func SetDefaults_APIEndpoint(obj *APIEndpoint) {
|
||||
if obj.BindPort == 0 {
|
||||
obj.BindPort = DefaultAPIBindPort
|
||||
obj.BindPort = constants.KubeAPIServerPort
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -403,6 +403,9 @@ const (
|
||||
// KubeControllerManagerPort is the default port for the controller manager status server.
|
||||
// May be overridden by a flag at startup.
|
||||
KubeControllerManagerPort = 10257
|
||||
// KubeAPIServerPort is the default port for the apiserver.
|
||||
// May be overridden by a flag at startup.
|
||||
KubeAPIServerPort = 6443
|
||||
|
||||
// EtcdAdvertiseClientUrlsAnnotationKey is the annotation key on every etcd pod, describing the
|
||||
// advertise client URLs
|
||||
|
@ -88,8 +88,9 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap
|
||||
ImagePullPolicy: v1.PullIfNotPresent,
|
||||
Command: getSchedulerCommand(cfg),
|
||||
VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)),
|
||||
LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS),
|
||||
StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS, componentHealthCheckTimeout),
|
||||
LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/livez", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS),
|
||||
ReadinessProbe: staticpodutil.ReadinessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/readyz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS),
|
||||
StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/livez", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS, componentHealthCheckTimeout),
|
||||
Resources: staticpodutil.ComponentResources("100m"),
|
||||
Env: kubeadmutil.MergeKubeadmEnvVars(proxyEnvs, cfg.Scheduler.ExtraEnvs),
|
||||
}, mounts.GetVolumes(kubeadmconstants.KubeScheduler), nil),
|
||||
|
@ -33,6 +33,7 @@ import (
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
|
||||
"k8s.io/apimachinery/pkg/util/intstr"
|
||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
|
||||
@ -60,25 +61,43 @@ func TestGetStaticPodSpecs(t *testing.T) {
|
||||
}
|
||||
|
||||
// Executes GetStaticPodSpecs
|
||||
specs := GetStaticPodSpecs(cfg, &kubeadmapi.APIEndpoint{}, []kubeadmapi.EnvVar{})
|
||||
specs := GetStaticPodSpecs(cfg, &kubeadmapi.APIEndpoint{
|
||||
BindPort: kubeadmconstants.KubeAPIServerPort,
|
||||
}, []kubeadmapi.EnvVar{})
|
||||
|
||||
var tests = []struct {
|
||||
name string
|
||||
staticPodName string
|
||||
env []v1.EnvVar
|
||||
name string
|
||||
staticPodName string
|
||||
expectLivenessProbe bool
|
||||
expectReadinessProbe bool
|
||||
expectStartupProbe bool
|
||||
probePort int32
|
||||
env []v1.EnvVar
|
||||
}{
|
||||
{
|
||||
name: "KubeAPIServer",
|
||||
staticPodName: kubeadmconstants.KubeAPIServer,
|
||||
name: "KubeAPIServer",
|
||||
staticPodName: kubeadmconstants.KubeAPIServer,
|
||||
expectLivenessProbe: true,
|
||||
expectReadinessProbe: true,
|
||||
expectStartupProbe: true,
|
||||
probePort: kubeadmconstants.KubeAPIServerPort,
|
||||
},
|
||||
{
|
||||
name: "KubeControllerManager",
|
||||
staticPodName: kubeadmconstants.KubeControllerManager,
|
||||
name: "KubeControllerManager",
|
||||
staticPodName: kubeadmconstants.KubeControllerManager,
|
||||
expectLivenessProbe: true,
|
||||
expectReadinessProbe: false,
|
||||
expectStartupProbe: true,
|
||||
probePort: kubeadmconstants.KubeControllerManagerPort,
|
||||
},
|
||||
{
|
||||
name: "KubeScheduler",
|
||||
staticPodName: kubeadmconstants.KubeScheduler,
|
||||
env: []v1.EnvVar{{Name: "Foo", Value: "Bar"}},
|
||||
name: "KubeScheduler",
|
||||
staticPodName: kubeadmconstants.KubeScheduler,
|
||||
expectLivenessProbe: true,
|
||||
expectReadinessProbe: true,
|
||||
expectStartupProbe: true,
|
||||
probePort: kubeadmconstants.KubeSchedulerPort,
|
||||
env: []v1.EnvVar{{Name: "Foo", Value: "Bar"}},
|
||||
},
|
||||
}
|
||||
|
||||
@ -95,6 +114,27 @@ func TestGetStaticPodSpecs(t *testing.T) {
|
||||
t.Errorf("expected env: %v, got: %v", tc.env, spec.Spec.Containers[0].Env)
|
||||
}
|
||||
}
|
||||
|
||||
if tc.expectLivenessProbe != (spec.Spec.Containers[0].LivenessProbe != nil) {
|
||||
t.Errorf("expected livenessProbe: %v, got: %v", tc.expectLivenessProbe, (spec.Spec.Containers[0].LivenessProbe != nil))
|
||||
}
|
||||
if tc.expectReadinessProbe != (spec.Spec.Containers[0].ReadinessProbe != nil) {
|
||||
t.Errorf("expected readinessProbe: %v, got: %v", tc.expectReadinessProbe, (spec.Spec.Containers[0].ReadinessProbe != nil))
|
||||
}
|
||||
if tc.expectStartupProbe != (spec.Spec.Containers[0].StartupProbe != nil) {
|
||||
t.Errorf("expected startupProbe: %v, got: %v", tc.expectStartupProbe, (spec.Spec.Containers[0].StartupProbe != nil))
|
||||
}
|
||||
|
||||
if spec.Spec.Containers[0].LivenessProbe != nil && tc.probePort > 0 && !reflect.DeepEqual(intstr.FromInt32(tc.probePort), spec.Spec.Containers[0].LivenessProbe.HTTPGet.Port) {
|
||||
t.Errorf("expected livenessProbe port: %v, got: %v", intstr.FromInt32(tc.probePort), spec.Spec.Containers[0].LivenessProbe.HTTPGet.Port)
|
||||
}
|
||||
if spec.Spec.Containers[0].ReadinessProbe != nil && tc.probePort > 0 && !reflect.DeepEqual(intstr.FromInt32(tc.probePort), spec.Spec.Containers[0].ReadinessProbe.HTTPGet.Port) {
|
||||
t.Errorf("expected readinessProbe port: %v, got: %v", intstr.FromInt32(tc.probePort), spec.Spec.Containers[0].ReadinessProbe.HTTPGet.Port)
|
||||
}
|
||||
if spec.Spec.Containers[0].StartupProbe != nil && tc.probePort > 0 && !reflect.DeepEqual(intstr.FromInt32(tc.probePort), spec.Spec.Containers[0].StartupProbe.HTTPGet.Port) {
|
||||
t.Errorf("expected startupProbe port: %v, got: %v", intstr.FromInt32(tc.probePort), spec.Spec.Containers[0].StartupProbe.HTTPGet.Port)
|
||||
}
|
||||
|
||||
} else {
|
||||
t.Errorf("getStaticPodSpecs didn't create spec for %s ", tc.staticPodName)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user