Kubernetes 拒绝与 rkt 一起工作,容器未启动,错误的 systemd 错误

Kubernetes refuses to work with rkt, containers not starting, wrong systemd error

在部署主节点时,我试图在 coreos 上使用 rkt 设置 kubernetes 时遇到了困难。

This 是我从 kubelet 日志中看到的主要问题...一些 systemd 错误,这显然是错误的,因为 coreos 最新稳定版使用 225...

我已遵循 Deploy Kubernetes Master Node(s) and the Running Kubernetes on rkt 指南。

我已经尝试了 quay.io 和 rkt 版本 1.0.01.2.11.5.1 中的所有 hyperkube 图像,确保切换正确的 fly kubelet-wrapper 中的 aci 图像...没有任何变化。

谁错过了日志中的 link:http://pastebin.com/raw/thLd0r2R(我现在加粗的是 "this" 上的 link)

无论如何,kubelet 似乎还没有准备好 运行 容器化,所以我设法 bootstrap 使用二进制文件中的 kubelet 运行 进行设置,仍然使用 rkt scheduler apiservercontroller,并为 proxy 使用第二个包装器,因为代理需要 stage1-fly.

所以它的组成是:

  • rkt 的系统单元-api /usr/bin/rkt run apiserver ...
  • 代理的系统单元/usr/bin/rkt run coreos/hyperkube proxy...--stage1-path=/usr/share/rkt/stage1-fly.aci ...
  • kubelet 的系统单元 /opt/bin/kubelet ...
  • k8s 清单 api 服务器、调度程序、控制器

可悲的是,hyperkube 没有捕获 kubectl 标志,所以除了 kubelet 二进制文件和容器化的 hyperkube bin 之外,我还必须使用 kubectl 二进制文件。最终,只需要 1 个 systemd 单元和清单就可以满足 hyperkube 的需求。