Use kubelet docker-specific flags only for Docker

This commit is contained in:
Ciprian Hacman 2020-07-05 07:57:10 +03:00
parent e1f422920f
commit 69511a998e
4 changed files with 23 additions and 40 deletions

View File

@ -195,9 +195,6 @@ func (b *KubeletBuilder) buildSystemdEnvironmentFile(kubeletConfig *kops.Kubelet
flags += " --cloud-config=" + CloudConfigFilePath flags += " --cloud-config=" + CloudConfigFilePath
} }
flags += " --cni-bin-dir=" + b.CNIBinDir()
flags += " --cni-conf-dir=" + b.CNIConfDir()
if b.UsesSecondaryIP() { if b.UsesSecondaryIP() {
sess := session.Must(session.NewSession()) sess := session.Must(session.NewSession())
metadata := ec2metadata.New(sess) metadata := ec2metadata.New(sess)
@ -208,18 +205,17 @@ func (b *KubeletBuilder) buildSystemdEnvironmentFile(kubeletConfig *kops.Kubelet
flags += " --node-ip=" + localIpv4 flags += " --node-ip=" + localIpv4
} }
if b.Cluster.Spec.Networking != nil && b.Cluster.Spec.Networking.Kubenet != nil {
// Kubenet is neither CNI nor not-CNI, so we need to pass it `--cni-bin-dir` also
flags += " --cni-bin-dir=" + b.CNIBinDir()
}
if b.usesContainerizedMounter() { if b.usesContainerizedMounter() {
// We don't want to expose this in the model while it is experimental, but it is needed on COS // We don't want to expose this in the model while it is experimental, but it is needed on COS
flags += " --experimental-mounter-path=" + path.Join(containerizedMounterHome, "mounter") flags += " --experimental-mounter-path=" + path.Join(containerizedMounterHome, "mounter")
} }
// Add container runtime flags // Add container runtime spcific flags
if b.Cluster.Spec.ContainerRuntime == "containerd" { switch b.Cluster.Spec.ContainerRuntime {
case "docker", "":
flags += " --cni-bin-dir=" + b.CNIBinDir()
flags += " --cni-conf-dir=" + b.CNIConfDir()
case "containerd":
flags += " --container-runtime=remote" flags += " --container-runtime=remote"
flags += " --runtime-request-timeout=15m" flags += " --runtime-request-timeout=15m"
if b.Cluster.Spec.Containerd == nil || b.Cluster.Spec.Containerd.Address == nil { if b.Cluster.Spec.Containerd == nil || b.Cluster.Spec.Containerd.Address == nil {

View File

@ -3,7 +3,7 @@ path: /etc/kubernetes/manifests
type: directory type: directory
--- ---
contents: | contents: |
DAEMON_ARGS="--feature-gates=AllowExtTrafficLocalEndpoints=false,ExperimentalCriticalPodAnnotation=true --node-labels=kubernetes.io/role=node,node-role.kubernetes.io/node= --pod-manifest-path=/etc/kubernetes/manifests --register-schedulable=true --volume-plugin-dir=/usr/libexec/kubernetes/kubelet-plugins/volume/exec/ --cni-bin-dir=/opt/cni/bin/ --cni-conf-dir=/etc/cni/net.d/ --cni-bin-dir=/opt/cni/bin/" DAEMON_ARGS="--feature-gates=AllowExtTrafficLocalEndpoints=false,ExperimentalCriticalPodAnnotation=true --node-labels=kubernetes.io/role=node,node-role.kubernetes.io/node= --pod-manifest-path=/etc/kubernetes/manifests --register-schedulable=true --volume-plugin-dir=/usr/libexec/kubernetes/kubelet-plugins/volume/exec/ --cni-bin-dir=/opt/cni/bin/ --cni-conf-dir=/etc/cni/net.d/"
HOME="/root" HOME="/root"
path: /etc/sysconfig/kubelet path: /etc/sysconfig/kubelet
type: file type: file

View File

@ -179,24 +179,26 @@ func (b *KubeletOptionsBuilder) BuildOptions(o interface{}) error {
clusterSpec.Kubelet.CloudProvider = "external" clusterSpec.Kubelet.CloudProvider = "external"
} }
networking := clusterSpec.Networking if clusterSpec.ContainerRuntime == "docker" || clusterSpec.ContainerRuntime == "" {
if networking == nil { networking := clusterSpec.Networking
return fmt.Errorf("no networking mode set") if networking == nil {
return fmt.Errorf("no networking mode set")
} }
if UsesKubenet(networking) { if UsesKubenet(networking) {
clusterSpec.Kubelet.NetworkPluginName = "kubenet" clusterSpec.Kubelet.NetworkPluginName = "kubenet"
// AWS MTU is 9001 // AWS MTU is 9001
clusterSpec.Kubelet.NetworkPluginMTU = fi.Int32(9001) clusterSpec.Kubelet.NetworkPluginMTU = fi.Int32(9001)
} }
// Specify our pause image // Specify our pause image
image := "k8s.gcr.io/pause:3.2" image := "k8s.gcr.io/pause:3.2"
if image, err = b.Context.AssetBuilder.RemapImage(image); err != nil { if image, err = b.Context.AssetBuilder.RemapImage(image); err != nil {
return err return err
}
clusterSpec.Kubelet.PodInfraContainerImage = image
} }
clusterSpec.Kubelet.PodInfraContainerImage = image
if clusterSpec.Kubelet.FeatureGates == nil { if clusterSpec.Kubelet.FeatureGates == nil {
clusterSpec.Kubelet.FeatureGates = make(map[string]string) clusterSpec.Kubelet.FeatureGates = make(map[string]string)

View File

@ -244,10 +244,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterscontainerdexamplecom.Properti
hostnameOverride: '@aws' hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2 logLevel: 2
networkPluginMTU: 9001
networkPluginName: kubenet
nonMasqueradeCIDR: 100.64.0.0/10 nonMasqueradeCIDR: 100.64.0.0/10
podInfraContainerImage: k8s.gcr.io/pause:3.2
podManifestPath: /etc/kubernetes/manifests podManifestPath: /etc/kubernetes/manifests
masterKubelet: masterKubelet:
anonymousAuth: false anonymousAuth: false
@ -262,10 +259,7 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterscontainerdexamplecom.Properti
hostnameOverride: '@aws' hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2 logLevel: 2
networkPluginMTU: 9001
networkPluginName: kubenet
nonMasqueradeCIDR: 100.64.0.0/10 nonMasqueradeCIDR: 100.64.0.0/10
podInfraContainerImage: k8s.gcr.io/pause:3.2
podManifestPath: /etc/kubernetes/manifests podManifestPath: /etc/kubernetes/manifests
registerSchedulable: false registerSchedulable: false
@ -303,13 +297,10 @@ Resources.AWSEC2LaunchTemplatemasterustest1amasterscontainerdexamplecom.Properti
hostnameOverride: '@aws' hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2 logLevel: 2
networkPluginMTU: 9001
networkPluginName: kubenet
nodeLabels: nodeLabels:
kubernetes.io/role: master kubernetes.io/role: master
node-role.kubernetes.io/master: "" node-role.kubernetes.io/master: ""
nonMasqueradeCIDR: 100.64.0.0/10 nonMasqueradeCIDR: 100.64.0.0/10
podInfraContainerImage: k8s.gcr.io/pause:3.2
podManifestPath: /etc/kubernetes/manifests podManifestPath: /etc/kubernetes/manifests
registerSchedulable: false registerSchedulable: false
Tags: Tags:
@ -514,10 +505,7 @@ Resources.AWSEC2LaunchTemplatenodescontainerdexamplecom.Properties.LaunchTemplat
hostnameOverride: '@aws' hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2 logLevel: 2
networkPluginMTU: 9001
networkPluginName: kubenet
nonMasqueradeCIDR: 100.64.0.0/10 nonMasqueradeCIDR: 100.64.0.0/10
podInfraContainerImage: k8s.gcr.io/pause:3.2
podManifestPath: /etc/kubernetes/manifests podManifestPath: /etc/kubernetes/manifests
__EOF_CLUSTER_SPEC __EOF_CLUSTER_SPEC
@ -554,13 +542,10 @@ Resources.AWSEC2LaunchTemplatenodescontainerdexamplecom.Properties.LaunchTemplat
hostnameOverride: '@aws' hostnameOverride: '@aws'
kubeconfigPath: /var/lib/kubelet/kubeconfig kubeconfigPath: /var/lib/kubelet/kubeconfig
logLevel: 2 logLevel: 2
networkPluginMTU: 9001
networkPluginName: kubenet
nodeLabels: nodeLabels:
kubernetes.io/role: node kubernetes.io/role: node
node-role.kubernetes.io/node: "" node-role.kubernetes.io/node: ""
nonMasqueradeCIDR: 100.64.0.0/10 nonMasqueradeCIDR: 100.64.0.0/10
podInfraContainerImage: k8s.gcr.io/pause:3.2
podManifestPath: /etc/kubernetes/manifests podManifestPath: /etc/kubernetes/manifests
Tags: Tags:
- _automatic_upgrades - _automatic_upgrades