mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-06 02:34:03 +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"
|
DefaultClusterDNSIP = "10.96.0.10"
|
||||||
// DefaultKubernetesVersion defines default kubernetes version
|
// DefaultKubernetesVersion defines default kubernetes version
|
||||||
DefaultKubernetesVersion = "stable-1"
|
DefaultKubernetesVersion = "stable-1"
|
||||||
// DefaultAPIBindPort defines default API port
|
|
||||||
DefaultAPIBindPort = 6443
|
|
||||||
// DefaultCertificatesDir defines default certificate directory
|
// DefaultCertificatesDir defines default certificate directory
|
||||||
DefaultCertificatesDir = "/etc/kubernetes/pki"
|
DefaultCertificatesDir = "/etc/kubernetes/pki"
|
||||||
// DefaultImageRepository defines default image registry
|
// 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.
|
// SetDefaults_APIEndpoint sets the defaults for the API server instance deployed on a node.
|
||||||
func SetDefaults_APIEndpoint(obj *APIEndpoint) {
|
func SetDefaults_APIEndpoint(obj *APIEndpoint) {
|
||||||
if obj.BindPort == 0 {
|
if obj.BindPort == 0 {
|
||||||
obj.BindPort = DefaultAPIBindPort
|
obj.BindPort = constants.KubeAPIServerPort
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,8 +37,6 @@ const (
|
|||||||
DefaultClusterDNSIP = "10.96.0.10"
|
DefaultClusterDNSIP = "10.96.0.10"
|
||||||
// DefaultKubernetesVersion defines default kubernetes version
|
// DefaultKubernetesVersion defines default kubernetes version
|
||||||
DefaultKubernetesVersion = "stable-1"
|
DefaultKubernetesVersion = "stable-1"
|
||||||
// DefaultAPIBindPort defines default API port
|
|
||||||
DefaultAPIBindPort = 6443
|
|
||||||
// DefaultCertificatesDir defines default certificate directory
|
// DefaultCertificatesDir defines default certificate directory
|
||||||
DefaultCertificatesDir = "/etc/kubernetes/pki"
|
DefaultCertificatesDir = "/etc/kubernetes/pki"
|
||||||
// DefaultImageRepository defines default image registry
|
// 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.
|
// SetDefaults_APIEndpoint sets the defaults for the API server instance deployed on a node.
|
||||||
func SetDefaults_APIEndpoint(obj *APIEndpoint) {
|
func SetDefaults_APIEndpoint(obj *APIEndpoint) {
|
||||||
if obj.BindPort == 0 {
|
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.
|
// KubeControllerManagerPort is the default port for the controller manager status server.
|
||||||
// May be overridden by a flag at startup.
|
// May be overridden by a flag at startup.
|
||||||
KubeControllerManagerPort = 10257
|
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
|
// EtcdAdvertiseClientUrlsAnnotationKey is the annotation key on every etcd pod, describing the
|
||||||
// advertise client URLs
|
// advertise client URLs
|
||||||
|
@ -88,8 +88,9 @@ func GetStaticPodSpecs(cfg *kubeadmapi.ClusterConfiguration, endpoint *kubeadmap
|
|||||||
ImagePullPolicy: v1.PullIfNotPresent,
|
ImagePullPolicy: v1.PullIfNotPresent,
|
||||||
Command: getSchedulerCommand(cfg),
|
Command: getSchedulerCommand(cfg),
|
||||||
VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)),
|
VolumeMounts: staticpodutil.VolumeMountMapToSlice(mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler)),
|
||||||
LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS),
|
LivenessProbe: staticpodutil.LivenessProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/livez", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS),
|
||||||
StartupProbe: staticpodutil.StartupProbe(staticpodutil.GetSchedulerProbeAddress(cfg), "/healthz", kubeadmconstants.KubeSchedulerPort, v1.URISchemeHTTPS, componentHealthCheckTimeout),
|
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"),
|
Resources: staticpodutil.ComponentResources("100m"),
|
||||||
Env: kubeadmutil.MergeKubeadmEnvVars(proxyEnvs, cfg.Scheduler.ExtraEnvs),
|
Env: kubeadmutil.MergeKubeadmEnvVars(proxyEnvs, cfg.Scheduler.ExtraEnvs),
|
||||||
}, mounts.GetVolumes(kubeadmconstants.KubeScheduler), nil),
|
}, mounts.GetVolumes(kubeadmconstants.KubeScheduler), nil),
|
||||||
|
@ -33,6 +33,7 @@ import (
|
|||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/sets"
|
"k8s.io/apimachinery/pkg/util/sets"
|
||||||
|
|
||||||
|
"k8s.io/apimachinery/pkg/util/intstr"
|
||||||
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm"
|
||||||
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants"
|
||||||
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
|
"k8s.io/kubernetes/cmd/kubeadm/app/phases/certs"
|
||||||
@ -60,25 +61,43 @@ func TestGetStaticPodSpecs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Executes GetStaticPodSpecs
|
// Executes GetStaticPodSpecs
|
||||||
specs := GetStaticPodSpecs(cfg, &kubeadmapi.APIEndpoint{}, []kubeadmapi.EnvVar{})
|
specs := GetStaticPodSpecs(cfg, &kubeadmapi.APIEndpoint{
|
||||||
|
BindPort: kubeadmconstants.KubeAPIServerPort,
|
||||||
|
}, []kubeadmapi.EnvVar{})
|
||||||
|
|
||||||
var tests = []struct {
|
var tests = []struct {
|
||||||
name string
|
name string
|
||||||
staticPodName string
|
staticPodName string
|
||||||
env []v1.EnvVar
|
expectLivenessProbe bool
|
||||||
|
expectReadinessProbe bool
|
||||||
|
expectStartupProbe bool
|
||||||
|
probePort int32
|
||||||
|
env []v1.EnvVar
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "KubeAPIServer",
|
name: "KubeAPIServer",
|
||||||
staticPodName: kubeadmconstants.KubeAPIServer,
|
staticPodName: kubeadmconstants.KubeAPIServer,
|
||||||
|
expectLivenessProbe: true,
|
||||||
|
expectReadinessProbe: true,
|
||||||
|
expectStartupProbe: true,
|
||||||
|
probePort: kubeadmconstants.KubeAPIServerPort,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "KubeControllerManager",
|
name: "KubeControllerManager",
|
||||||
staticPodName: kubeadmconstants.KubeControllerManager,
|
staticPodName: kubeadmconstants.KubeControllerManager,
|
||||||
|
expectLivenessProbe: true,
|
||||||
|
expectReadinessProbe: false,
|
||||||
|
expectStartupProbe: true,
|
||||||
|
probePort: kubeadmconstants.KubeControllerManagerPort,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "KubeScheduler",
|
name: "KubeScheduler",
|
||||||
staticPodName: kubeadmconstants.KubeScheduler,
|
staticPodName: kubeadmconstants.KubeScheduler,
|
||||||
env: []v1.EnvVar{{Name: "Foo", Value: "Bar"}},
|
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)
|
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 {
|
} else {
|
||||||
t.Errorf("getStaticPodSpecs didn't create spec for %s ", tc.staticPodName)
|
t.Errorf("getStaticPodSpecs didn't create spec for %s ", tc.staticPodName)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user