Kubernetes: --max-pods=30 should be Azure CNI-only (#3543)

This commit is contained in:
Jack Francis 2018-07-25 10:27:58 -07:00 коммит произвёл GitHub
Родитель 7c3796cc69
Коммит 50c5b9f002
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
3 изменённых файлов: 30 добавлений и 6 удалений

Просмотреть файл

@ -36,7 +36,7 @@ func setKubeletConfig(cs *api.ContainerService) {
"--cluster-domain": "cluster.local",
"--network-plugin": "cni",
"--pod-infra-container-image": cloudSpecConfig.KubernetesSpecConfig.KubernetesImageBase + KubeConfigs[o.OrchestratorVersion]["pause"],
"--max-pods": strconv.Itoa(DefaultKubernetesMaxPodsVNETIntegrated),
"--max-pods": strconv.Itoa(DefaultKubernetesMaxPods),
"--eviction-hard": DefaultKubernetesHardEvictionThreshold,
"--node-status-update-frequency": KubeConfigs[o.OrchestratorVersion]["nodestatusfreq"],
"--image-gc-high-threshold": strconv.Itoa(DefaultKubernetesGCHighThreshold),
@ -51,6 +51,11 @@ func setKubeletConfig(cs *api.ContainerService) {
"--image-pull-progress-deadline": "30m",
}
// Apply Azure CNI-specific --max-pods value
if o.KubernetesConfig.NetworkPlugin == NetworkPluginAzure {
defaultKubeletConfig["--max-pods"] = strconv.Itoa(DefaultKubernetesMaxPodsVNETIntegrated)
}
// If no user-configurable kubelet config values exists, use the defaults
setMissingKubeletValues(o.KubernetesConfig, defaultKubeletConfig)
addDefaultFeatureGates(o.KubernetesConfig.KubeletConfig, o.OrchestratorVersion, "", "")
@ -65,7 +70,6 @@ func setKubeletConfig(cs *api.ContainerService) {
if o.KubernetesConfig.NetworkPolicy != NetworkPolicyCalico {
o.KubernetesConfig.KubeletConfig["--network-plugin"] = NetworkPluginKubenet
}
o.KubernetesConfig.KubeletConfig["--max-pods"] = strconv.Itoa(DefaultKubernetesMaxPods)
}
// We don't support user-configurable values for the following,

Просмотреть файл

@ -175,6 +175,27 @@ func TestKubeletMaxPods(t *testing.T) {
t.Fatalf("got unexpected '--max-pods' kubelet config value for NetworkPolicy=%s: %s",
NetworkPluginKubenet, k["--max-pods"])
}
// Test that user-overrides for --max-pods work as intended
cs = CreateMockContainerService("testcluster", defaultTestClusterVer, 3, 2, false)
cs.Properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = NetworkPluginKubenet
cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig["--max-pods"] = "99"
setKubeletConfig(cs)
k = cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
if k["--max-pods"] != "99" {
t.Fatalf("got unexpected '--max-pods' kubelet config value for NetworkPolicy=%s: %s",
NetworkPluginKubenet, k["--max-pods"])
}
cs = CreateMockContainerService("testcluster", defaultTestClusterVer, 3, 2, false)
cs.Properties.OrchestratorProfile.KubernetesConfig.NetworkPlugin = NetworkPluginAzure
cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig["--max-pods"] = "99"
setKubeletConfig(cs)
k = cs.Properties.OrchestratorProfile.KubernetesConfig.KubeletConfig
if k["--max-pods"] != "99" {
t.Fatalf("got unexpected '--max-pods' kubelet config value for NetworkPolicy=%s: %s",
NetworkPluginKubenet, k["--max-pods"])
}
}
func TestKubeletCalico(t *testing.T) {

Просмотреть файл

@ -487,11 +487,10 @@ func convertV20180331AgentPoolOnlyAgentPoolProfile(agentPoolProfile *v20180331.A
var maxPods string
// agentPoolProfile.MaxPods is 0 if maxPods field is not provided in API model
if agentPoolProfile.MaxPods == nil {
// default is kubenet
if networkProfile == nil || networkProfile.NetworkPlugin == v20180331.Kubenet {
maxPods = DefaultKubernetesMaxPodsKubenet
} else {
if networkProfile != nil && networkProfile.NetworkPlugin == v20180331.Azure {
maxPods = DefaultKubernetesMaxPodsAzureCNI
} else {
maxPods = DefaultKubernetesMaxPodsKubenet
}
} else {
maxPods = strconv.Itoa(*agentPoolProfile.MaxPods)