Welcome to the new Linux Foundation Forum!

Lab 3.1 is brittle, kubeadm command on master needs to specify Kubernetes server version

brianricecabrianriceca Posts: 1
edited December 2018 in LFS258 Class Forum

kubeadm downloads, by default, the latest version of the Kubernetes core services from gcr.io. On the other hand, the lab instructions call out a specific version of kubeadm, kubectl, and kubelet. So if a student tries to follow the lab instructions at a time when, say, the newest version of Kubernetes is 1.13 but the course instructions call for 1.12.1, the result will be a version skew. This skew won't cause a problem until the student attempts to add a node. Then this error message will result in the kubeadm join command:

[kubelet] Downloading configuration for the kubelet from the "kubelet-config-1.12" ConfigMap in the kube-system namespace configmaps "kubelet-config-1.12" is forbidden: User "system:bootstrap:3ai26q" cannot get resource "configmaps" in API group "" in the namespace "kube-system"

To avoid this problem, the lab instructions should also explicitly name the desired version of Kubernetes in the master's kubeadm command:

kubeadm init --kubernetes-version 1.12.1 --pod-network-cidr whatever/whatever

Comments

  • serewiczserewicz Posts: 456

    Hello,
    When v1.13 was released last Monday there was a newer version of the software available than what we installed, v1.12. It seems that the kubeadm init command has an "undocumented/not-well-documented feature" where the control plane will pull the newer version. The 1.13 plane does not let the join take place. The fix is to tell the init what version to use with this update, which I will add to the course shortly, is this:

    kubeadm init --kubernetes-version 1.12.1 --pod-network-cidr 192.168.0.0/16

    Once all the version match, it should work as otherwise described in the book.

    Kind regards,

  • tanjiehuitanjiehui Posts: 1

    When I run the kubeadm command following the lab instructions, I get the following error regardless of whether I specify the kubernetes version:

    [ERROR KubeletVersion]: Kubelet version "1.11.5-gke.5" is lower than kubadm can support. Please upgrade kubelet
    

    I'm running the latest Kubelet version available on GKE, so I'm not sure how else I can upgrade kubelet. Downgrading kubeadm didn't help either. What is a setup that would work?

  • chrispokornichrispokorni Posts: 177
    edited January 4

    Hi @tanjiehui ,
    The instructions in the labs are for the vendor-neutral Kubernetes with installation and cluster management tools - such as kubeadm and kubectl. The labs have been completed and tested on GCE VMs, with Ubuntu 16, and Kubernetes 1.12.1. By using GCE VMs we control most aspects of the environment. With GKE however, we would be tied in with Google's offering, including their software versions and cluster configuration.
    The labs would also work on AWS EC2 instances, Azure VMs, VirtualBox or VMware VMs.
    Regards,
    -Chris

Sign In or Register to comment.