Kubernetes 会(可以)在主节点上运行 Docker 容器吗?

Will (can) Kubernetes run Docker containers on the master node(s)?

Kubernetes 有主节点和从节点。

Kubernetes 会(能够)在主节点上运行指定的 Docker 容器吗?

我猜还有一种说法是:master也可以是minion吗?

感谢您的帮助。

2015-08-06 更新:从 PR #12349 开始(在 1.0.3 中可用,并将在 1.1 发布时可用),主节点现在是集群中的可用节点之一,并且您可以像集群中的任何其他节点一样将 pods 安排到它上面。


docker 容器只能调度到 kubernetes 节点 运行 kubelet(您称之为 minion)。没有什么可以阻止您创建集群,其中同一台机器(物理或虚拟)同时运行 kubernetes master 软件和 kubelet,但当前的集群配置脚本将 master 分离到不同的机器上。

实施 Issue #6087 后,这将发生重大变化。

尽管不推荐,但您需要将主节点感染到 运行 容器。

运行 在你的主节点上:

kubectl taint nodes --all node-role.kubernetes.io/master-

由 Alex Ellis 的博客提供 post here.

你可以试试这个代码:

kubectl label node [name_of_node] node-short-name=node-1 

创建 yaml 文件(first.yaml)

apiVersion: v1
kind: Pod
metadata:
 name: nginxtest 
 labels:
  env: test
spec:
 containers:
 - name: nginx 
   image: nginx 
   imagePullPolicy: IfNotPresent
 nodeSelector: 
  node-short-name: node-1

创建一个 pod

kubectl create –f  first.yaml