Merge pull request #9875 from sadlil/kindnet-podcidr
Fix multi node two pods getting same IP and nodespec not having PodCIDRpull/9928/head
commit
e96b05e45e
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -57,6 +57,7 @@ etcd:
|
|||
local:
|
||||
dataDir: {{.EtcdDataDir}}
|
||||
controllerManagerExtraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
schedulerExtraArgs:
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -29,6 +29,7 @@ etcd:
|
|||
local:
|
||||
dataDir: /var/lib/minikube/etcd
|
||||
controllerManagerExtraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
schedulerExtraArgs:
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -29,6 +29,7 @@ etcd:
|
|||
local:
|
||||
dataDir: /var/lib/minikube/etcd
|
||||
controllerManagerExtraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
leader-elect: "false"
|
||||
schedulerExtraArgs:
|
||||
leader-elect: "false"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -26,6 +26,7 @@ apiServer:
|
|||
fail-no-swap: "true"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
allocate-node-cidrs: "true"
|
||||
kube-api-burst: "32"
|
||||
leader-elect: "false"
|
||||
scheduler:
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue