读取已删除的节点到kubernetes

时间:2017-08-28 06:39:48

标签: kubernetes

我正在实现一个可以使节点从kubernetes集群脱机/联机的功能。

当我运行kubectl delete node $nodename时,如何将此节点读取到群集?

据说如果使用API​​ POST /api/v1/nodes将导致节点状态Not ready。有没有办法将已删除的节点读取到群集?

4 个答案:

答案 0 :(得分:1)

(重新)创建节点的方式取决于您的群集设置和Kubernetes版本。

  • kubeadm:在节点上再次运行kubeadm resetkubeadm join ...(如果原始令牌是短暂的,您可能需要创建新令牌,请参阅链接的文档)
  • 大多数云:删除VM。它将被重新创建并将重新加入群集
  • 其他人:有关详细信息,请参阅self registrationmanual registration

答案 1 :(得分:1)

在kubernetes上添加先前删除的节点>对我来说1.8x它重新启动节点上的kubelet服务。它正在集群中再次注册。 但是kubernetes有可能创建一个节点" online / offlilne":

> kubectl cordon -h 
Mark node as unschedulable.

Examples:
  # Mark node "foo" as unschedulable.
  kubectl cordon foo

Usage:
  kubectl cordon NODE [options]

> kubectl uncordon -h 
Mark node as schedulable.

Examples:
  # Mark node "foo" as schedulable.
  $ kubectl uncordon foo

Usage:
  kubectl uncordon NODE [options]

答案 2 :(得分:0)

kubectl删除节点的接缝仅删除资源yaml文件。

所以对我来说:

kubectl apply -f node.yaml

--- node.yaml ---

{
  "kind": "Node",
  "apiVersion": "v1",
  "metadata": {
    "name": "minion-0",
    "labels": {
      "name": "fixed"
    }
  }
}

答案 3 :(得分:0)

我错误地删除了在我的 Linux PC 上运行的节点。

当我运行命令 kubectl get node 时,它返回一条消息“找不到资源”。

为了尝试解决这个问题,我转到路径 /etc/systemd/system 并运行 sudo systemctl restart k3s.service,我看到已删除的节点被重新添加。

谢天谢地,我节省了时间 :) 我希望它对某人有所帮助