什么是超硬管?

Ani*_*uri 38 kubernetes

我正在尝试在aws中设置kubernetes并按照https://github.com/kubernetes/kubernetes/blob/master/docs/getting-started-guides/docker-multinode上的指南进行操作

我无法理解hyperkube的含义.有人可以向我解释它是什么以及它是如何工作的?

我遇到的另一个问题是在运行命令时

sudo docker run \
    --volume=/:/rootfs:ro \
    --volume=/sys:/sys:ro \
    --volume=/dev:/dev \
    --volume=/var/lib/docker/:/var/lib/docker:rw \
    --volume=/var/lib/kubelet/:/var/lib/kubelet:rw \
    --volume=/var/run:/var/run:rw \
    --net=host \
    --privileged=true \
    --pid=host \
    -d \
    gcr.io/google_containers/hyperkube:v${K8S_VERSION} \
    /hyperkube kubelet \
      --api-servers=http://localhost:8080 \
      --v=2 --address=0.0.0.0 --enable-server \
      --hostname-override=127.0.0.1 \
      --config=/etc/kubernetes/manifests-multi \
      --cluster-dns=10.0.0.10 \
      --cluster-domain=cluster.local
Run Code Online (Sandbox Code Playgroud)

它默认启动一个pod.从命令文档中,它看起来像是从--config=/etc/kubernetes/manifests-multi属性获取pod清单.但是我的主机中没有此目录.有人可以告诉我从哪里获得这个pod清单?

ant*_*t31 116

Kubernetes是一组守护进程/二进制文件:

  • kube-apiserver (AKA大师),
  • kubelet (启动/停止容器,同步conf.),
  • kube-scheduler (资源经理)
  • kube-controller-manager (监视RC,并保持所需的状态)
  • kube-proxy (在每个节点上公开服务)

所述hyperkube二进制是一个所有在一个二进制(以类似于的方式kubectl),组合所有先前分开的二进制文件.

以下命令:

hyperkube kubelet \
  --api-servers=http://localhost:8080 \
  --v=2 \
  --address=0.0.0.0 \
  --enable-server \
  --hostname-override=127.0.0.1 \
  --config=/etc/kubernetes/manifests-multi \
  --cluster-dns=10.0.0.10 \
  --cluster-domain=cluster.local
Run Code Online (Sandbox Code Playgroud)

运行守护进程busybox.

  • 这可能是公认的答案。简而言之,切题。 (3认同)

小智 6

Kubernetes是一组二进制文件

  1. KUBE-apiproxy
  2. KUBE-调度
  3. KUBE-控制经理
  4. kubelet
  5. KUBE-代理

hyperkube是所有这些二进制文件的包装器.因此,一旦部署了hyperkube,它就会安装所有二进制文件.无需单独安装这些二进制文件.


Ale*_*son 5

如果您更关心在 AWS 中运行一个集群而不是通过手动启动每个组件的经验(除非您为了学习而这样做,否则您不应该打扰),我强烈建议使用统包脚本创建 AWS 集群,如此处所述

对于查看此问题/答案的其他人,文档中有一个页面介绍了如何选择适合您需求的集群创建方法

至于你关于 hyperkube 的问题,配置文件内置在 hyperkube docker 镜像中,如果你好奇的话,你可以从它的 Dockerfile 中看到。


小智 2

我自己开始了我的 kubernetes 之旅,但是如果你查看 github 上的源代码,你就会看到 hyperkube 的来源。它内置于 kubernetes 的核心 - https://github.com/kubernetes/kubernetes/blob/master/cmd/hyperkube/hyperkube.go

Kubernetes 旨在将容器提升到一个全新的水平,并将它们包装在谷歌所说的 Pod 中。hyperkube - 如果我错了,请纠正我,它是组成 pod 的容器的调度、创建和管理的拱门/krux/骨干,这些容器本质上运行着节目,因此得名“hyperkube”。此外,hyperkube 可以快速响应事件,并且能够就您的服务/堆栈/容器/主机运行状况即时做出决策。

如果您想要一种简单的方法来开始使用 kubernetes,我建议尝试 rancher(不是 rancherOS),因为 rancherlabs 刚刚将 kubernetes 部署实现到其内置堆栈中 - rancher 也使用 docker-compose 以及它所谓的 rancher-compose - 当您创建堆栈/服务时,您可以以 yml 格式查看组成该堆栈/服务的元素以及该堆栈中的容器 - 这将有助于您更好地了解组成服务的元素和您正在运行的堆栈,还可以帮助您解决手动部署的问题 - 它是基于 GUI 的,但是您可以将主机添加到任何 Rancher 服务器,添加一些日志堆栈(如 kabana 或 sysdig),如果您从 cli 工作 - 只要主机已向 rancher 注册(不,我根本不为他们工作) - 您可以通过添加主机并指定自定义来向 rancher 注册任何主机。此外,Rancher 实际上可以跨托管平台管理 kubernetes/堆栈/卷 - 这太棒了。这是可视化并查看 Docker 主机发生的情况的好方法。

我希望这可以回答一些问题,并引导您走向正确的方向。

它是kubernetes集群的决策者和生命的赋予者。