Which kubernetes version is supported in docker version 18.09

25,876

Solution 1

In Kubernetes there is nothing like supported. Instead of it they use validated - it means that all features were tested and validated with some Docker version.

And validated Docker versions are still the same from Kubernetes version 1.8 until 1.11: Docker 1.11.2 to 1.13.1 and 17.03.x. See here: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.8.md#external-dependencies and here https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md#external-dependencies

Starting from Kubernetes version 1.12 Docker 17.06, 17.09 and 18.06 started to be also validated. See here: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.12.md#external-dependencies

As I know final version of Docker 18.09 was released 4 days ago so here we cannot expect this version to be validated in Kubernetes now.

Update (9.4.2019): Docker 18.09 is validated against newly released Kubernetes 1.14: https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.14.md#external-dependencies


You can specify exact Docker version for the get.docker.com script by VERSION variable:

export VERSION=18.03 && curl -sSL get.docker.com | sh

Solution 2

Here's how I "fixed" mine:

$ sudo kubeadm init --ignore-preflight-errors=SystemVerification
...
        [WARNING SystemVerification]: unsupported docker version: 18.09.0

Here's what I saw when "preflight errors" were not ignored:

$ sudo kubeadm init
...
[preflight] Some fatal errors occurred:
        [ERROR SystemVerification]: unsupported docker version: 18.09.0
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

Here's the version of kubeadm I used:

$ kubeadm version --output json
{
  "clientVersion": {
    "major": "1",
    "minor": "12",
    "gitVersion": "v1.12.2",
    "gitCommit": "17c77c7898218073f14c8d573582e8d2313dc740",
    "gitTreeState": "clean",
    "buildDate": "2018-10-24T06:51:33Z",
    "goVersion": "go1.10.4",
    "compiler": "gc",
    "platform": "linux/amd64"
  }
}

Solution 3

As mentioned above, the message is more of a warning that not all features were tested against that specific Docker release. On your own risk, you can try to temporarily ignore those errors by using the --ignore-preflight-errors flag. Eg : kubedam init --ignore-preflight-errors all

Solution 4

I solved this problem as:

kubeadm init --ignore-preflight-errors=SystemVerification

Share:
25,876
S Andrew
Author by

S Andrew

I am electronics fresher. I am learning things so soon I'll start answering questions on SE and help everyone.

Updated on April 10, 2020

Comments

  • S Andrew
    S Andrew about 4 years

    I am using Raspberry pi for kubernetes cluster setup. I was using below docker version:

    Client:
     Version:           18.06.1-ce
     API version:       1.38
     Go version:        go1.10.3
     Git commit:        e68fc7a
     Built:             Tue Aug 21 17:30:52 2018
     OS/Arch:           linux/arm
     Experimental:      false
    
    Server:
     Engine:
     Version:          18.06.1-ce
     API version:      1.38 (minimum version 1.12)
     Go version:       go1.10.3
     Git commit:       e68fc7a
     Built:            Tue Aug 21 17:26:37 2018
     OS/Arch:          linux/arm
     Experimental:     false
    

    Looks like now the docker version latest is 18.09.0 and the latest kubernetes version is not supporting this docker version. I have even tried installing some older version of kube like 1.9.7 or 1.9.6 but while initiating the kubeadm init, I am getting the below error:

    [ERROR SystemVerification]: unsupported docker version: 18.09.0
    [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
    

    Which version should I specify for kubernetes and docker to run properly. Also how can we specify version while insatlling docker. I normally use below command to install docker:

    curl -sSL get.docker.com | sh 
    
  • pensnarik
    pensnarik over 5 years
    Where should I put this variable definition so that get.docker.script could see it?
  • cgrim
    cgrim over 5 years
    You can use that "one line" command or explicitly run export VERSION=18.06 and then in the second step curl -sSL get.docker.com | sh. It is an environment variable.
  • Ashish Karpe
    Ashish Karpe over 4 years
    stuck at $ sudo kubeadm join 127.0.0.1:6443 --token XXXr42jr --discovery-token-ca-cert-hash sha256:bad5XXXX -->> error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR IsDockerSystemdCheck]: cannot execute 'docker info': exit status 125 [ERROR SystemVerification]: failed executing "docker info --format '{{json .}}'"\noutput: flag provided but not defined: --format See 'docker info --help'. \nerror: exit status 125 [preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=...
  • Ashish Karpe
    Ashish Karpe over 4 years
    --ignore-preflight-errors=SystemVerification --ignore-preflight-errors=IsDockerSystemdCheck