我正在尝试在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.
小智 6
Kubernetes是一组二进制文件
hyperkube是所有这些二进制文件的包装器.因此,一旦部署了hyperkube,它就会安装所有二进制文件.无需单独安装这些二进制文件.
如果您更关心在 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集群的决策者和生命的赋予者。
| 归档时间: |
|
| 查看次数: |
29359 次 |
| 最近记录: |