docker版本18.09支持哪个kubernetes版本

docker版本18.09支持哪个kubernetes版本,docker,kubernetes,version,Docker,Kubernetes,Version,我正在使用Raspberry pi进行kubernetes集群设置。我使用的是以下docker版本: 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 Ex

我正在使用
Raspberry pi
进行
kubernetes
集群设置。我使用的是以下docker版本:

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
看起来现在docker的最新版本是
18.09.0
,而最新的
kubernetes
版本不支持此docker版本。我甚至尝试过安装一些较旧版本的kube,如
1.9.7
1.9.6
,但在启动
kubeadm init
时,我发现以下错误:

[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=...`
我应该为
kubernetes
docker
指定哪个版本才能正常运行。另外,我们如何在安装docker时指定版本。我通常使用以下命令安装docker:

curl -sSL get.docker.com | sh 

在库伯内特斯,没有什么比这更好的了。取而代之的是,他们使用的是经过验证的——这意味着所有功能都经过了测试,并通过了某个Docker版本的验证

从Kubernetes 1.8版到1.11版,经过验证的Docker版本仍然相同:Docker 1.11.2到1.13.1和17.03.x。请看这里: 这里呢

从Kubernetes版本1.12开始,Docker 17.06、17.09和18.06也开始验证。请看这里:

据我所知,Docker 18.09的最终版本是在4天前发布的,所以现在我们不能指望这个版本在Kubernetes中得到验证

更新(2019年4月9日):Docker 18.09已根据新发布的Kubernetes 1.14进行验证:


您可以通过
version
变量为get.Docker.com脚本指定确切的Docker版本:

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

如上所述,该消息更多的是警告,并非所有功能都针对特定Docker版本进行了测试。您可以尝试使用
--ignore preflight errors
标志暂时忽略这些错误,风险自负。如:
kubedam init——忽略飞行前的所有错误

以下是我如何“修复”我的错误:

以下是我在“飞行前错误”未被忽略时看到的情况:

$ 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=...`
以下是我使用的
kubeadm
版本:

$ 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"
  }
}

我解决这个问题的方法是:


kubeadm init--忽略飞行前错误=系统验证


我应该把这个变量定义放在哪里,以便get.docker.script可以看到它?您可以使用“一行”命令或显式运行
export VERSION=18.06
,然后在第二步
curl-sSL get.docker.com | sh
。它是一个环境变量。卡在$sudo kubeadm join 127.0.0.1:6443——令牌XXXr42jr——发现令牌ca证书哈希sha256:BAD5xxx-->>错误执行阶段预飞行:[预飞行]出现一些致命错误:[错误IsDockerSystemCheck]:无法执行“docker信息”:退出状态125[错误系统验证]:执行“docker info--format'{{json.}}'”失败\n输出:已提供但未定义标志:-format请参阅“docker info--help”\错误:退出状态125[飞行前]如果您知道自己在做什么,可以使用
--忽略飞行前错误=…
--忽略飞行前错误=系统验证--忽略飞行前错误=IsDockerSystemCheck进行非致命检查
$ 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"
  }
}