Merge pull request #9875 from sadlil/kindnet-podcidr

Fix multi node two pods getting same IP and nodespec not having PodCIDR
pull/9928/head
Medya Ghazizadeh 2020-12-10 16:53:29 -08:00 committed by GitHub
commit e96b05e45e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
74 changed files with 112 additions and 5 deletions

View File

@ -19,6 +19,7 @@ package cmd
import (
"github.com/spf13/cobra"
"github.com/spf13/viper"
"k8s.io/minikube/pkg/minikube/cni"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/driver"
"k8s.io/minikube/pkg/minikube/exit"
@ -64,6 +65,10 @@ var nodeAddCmd = &cobra.Command{
if viper.GetString(memory) == "" {
cc.Memory = 2200
}
if !cc.MultiNodeRequested || cni.IsDisabled(*cc) {
warnAboutMultiNodeCNI()
}
}
if err := node.Add(cc, n, false); err != nil {

View File

@ -403,6 +403,10 @@ func warnAboutMultiNode() {
out.Step(style.Documentation, "To track progress on multi-node clusters, see https://github.com/kubernetes/minikube/issues/7538.")
}
func warnAboutMultiNodeCNI() {
out.WarningT("Cluster was created without any CNI, adding node to it might cause broken network.")
}
func updateDriver(driverName string) {
v, err := version.GetSemverVersion()
if err != nil {

View File

@ -347,6 +347,7 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
CNI: chosenCNI,
NodePort: viper.GetInt(apiServerPort),
},
MultiNodeRequested: viper.GetInt(nodes) > 1,
}
cc.VerifyComponents = interpretWaitFlag(*cmd)
if viper.GetBool(createMount) && driver.IsKIC(drvName) {

View File

@ -57,6 +57,7 @@ etcd:
local:
dataDir: {{.EtcdDataDir}}
controllerManagerExtraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
schedulerExtraArgs:
leader-elect: "false"

View File

@ -116,7 +116,7 @@ func GenerateKubeadmYAML(cc config.ClusterConfig, n config.Node, r cruntime.Mana
EtcdDataDir: EtcdDataDir(),
EtcdExtraArgs: etcdExtraArgs(k8s.ExtraOptions),
ClusterName: cc.Name,
//kubeadm uses NodeName as the --hostname-override parameter, so this needs to be the name of the machine
// kubeadm uses NodeName as the --hostname-override parameter, so this needs to be the name of the machine
NodeName: KubeNodeName(cc, n),
CRISocket: r.SocketPath(),
ImageRepository: k8s.ImageRepository,

View File

@ -29,6 +29,7 @@ etcd:
local:
dataDir: /var/lib/minikube/etcd
controllerManagerExtraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
schedulerExtraArgs:
leader-elect: "false"

View File

@ -29,6 +29,7 @@ etcd:
local:
dataDir: /var/lib/minikube/etcd
controllerManagerExtraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
schedulerExtraArgs:
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -27,6 +27,7 @@ apiServer:
feature-gates: "a=b"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
feature-gates: "a=b"
kube-api-burst: "32"
leader-elect: "false"

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -25,6 +25,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
enable-admission-plugins: "NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
leader-elect: "false"
scheduler:
extraArgs:

View File

@ -26,6 +26,7 @@ apiServer:
fail-no-swap: "true"
controllerManager:
extraArgs:
allocate-node-cidrs: "true"
kube-api-burst: "32"
leader-elect: "false"
scheduler:

View File

@ -39,7 +39,6 @@ func versionIsBetween(version, gte, lte semver.Version) bool {
}
var versionSpecificOpts = []config.VersionedExtraOption{
config.NewUnversionedOption(Kubelet, "bootstrap-kubeconfig", "/etc/kubernetes/bootstrap-kubelet.conf"),
config.NewUnversionedOption(Kubelet, "config", "/var/lib/kubelet/config.yaml"),
config.NewUnversionedOption(Kubelet, "kubeconfig", "/etc/kubernetes/kubelet.conf"),
@ -97,6 +96,14 @@ var versionSpecificOpts = []config.VersionedExtraOption{
},
LessThanOrEqual: semver.MustParse("1.11.1000"),
},
{
Option: config.ExtraOption{
Component: ControllerManager,
Key: "allocate-node-cidrs",
Value: "true",
},
GreaterThanOrEqual: semver.MustParse("1.14.0"),
},
{
Option: config.ExtraOption{
Component: ControllerManager,

View File

@ -93,6 +93,21 @@ func New(cc config.ClusterConfig) (Manager, error) {
}
}
func IsDisabled(cc config.ClusterConfig) bool {
if cc.KubernetesConfig.NetworkPlugin != "" && cc.KubernetesConfig.NetworkPlugin != "cni" {
return true
}
if cc.KubernetesConfig.CNI == "false" {
return true
}
if chooseDefault(cc).String() == "Disabled" {
return true
}
return false
}
func chooseDefault(cc config.ClusterConfig) Manager {
// For backwards compatibility with older profiles using --enable-default-cni
if cc.KubernetesConfig.EnableDefaultCNI {
@ -109,13 +124,20 @@ func chooseDefault(cc config.ClusterConfig) Manager {
return Bridge{cc: cc}
}
if len(cc.Nodes) > 1 {
if driver.BareMetal(cc.Driver) {
klog.Infof("Driver %s used, CNI unnecessary in this configuration, recommending no CNI", cc.Driver)
return Disabled{cc: cc}
}
if len(cc.Nodes) > 1 || cc.MultiNodeRequested {
// Enables KindNet CNI in master in multi node cluster, This solves the network problem
// inside pod for multi node clusters. See https://github.com/kubernetes/minikube/issues/9838.
klog.Infof("%d nodes found, recommending kindnet", len(cc.Nodes))
return KindNet{cc: cc}
}
klog.Infof("CNI unnecessary in this configuration, recommending no CNI")
return Disabled{}
return Disabled{cc: cc}
}
// manifestPath returns the path to the CNI manifest

View File

@ -47,5 +47,6 @@ func (c Disabled) Apply(r Runner) error {
// CIDR returns the default CIDR used by this CNI
func (c Disabled) CIDR() string {
return ""
// Even without any CNI we want our nodes to have spec.PodCIDR set.
return DefaultPodCIDR
}

View File

@ -73,6 +73,7 @@ type ClusterConfig struct {
StartHostTimeout time.Duration
ScheduledStop *ScheduledStopConfig
ExposedPorts []string // Only used by the docker and podman driver
MultiNodeRequested bool
}
// KubernetesConfig contains the parameters used to configure the VM Kubernetes.