zoukankan      html  css  js  c++  java
  • k8s-Node(节点)

    k8s-Node(节点)

    Node(节点)是k8s集群中相对于Master而言的工作主机。Node可以是一台物理主机,也可以是一台虚拟机(VM)。
    在每个Node上运行用于启动和管理Pid的服务Kubelet,并能够被Master管理。
    在Node上运行的服务进行包括Kubelet、kube-proxy和docker daemon。

    Node信息如下:
    Node地址:主机的IP地址,或者Node ID。
    Node运行状态:包括Pending、Running、Terminated三种状态。
    Node Condition(条件):描述Running状态Node的运行条件,目前只有一种条件----Ready。Ready表示Node处于健康状态,可以接收从Master发来的创建Pod的指令。
    Node系统容量:描述Node可用的系统资源,包括CPU、内存数量、最大可调度Pod数量等。
    其他:Node的其他信息,包括实例的内核版本号、k8s版本号、Docker版本号、操作系统名称等。

    1. Node的管理
    Node通常是物理机、虚拟机或者云服务商提供的资源,并不是由k8s创建的。
    我们说k8s创建一个Node,仅仅表示k8s在系统内部创建了一个Node对象,创建后即会对其进行一系列健康检查,包括是否可以连通、服务是否正确启动、是否可以创建Pod等。
    如果检查未能通过,则该Node将会在集群中被标记为不可用(Not Ready)。

    2. 使用Node Controller对Node进行管理
    Node Controller是k8s Master中的一个组件,用于管理Node对象。
    它的两个主要功能包括:集群范围内的Node信息同步,以及单个Node的生命周期管理。
    Node信息同步可以通过kube-controller-manager的启动参数--node-sync-period设置同步的时间周期。

    3. Node的自注册
    当Kubelet的--register-node参数被设置为true(默认值即为true)时,Kubelet会向apiserver注册自己。这也是k8s推荐的Node管理方式。

    Kubelet进行自注册的启动参数如下:
    --apiservers=: apiserver地址;
    --kubeconfig=: 登录apiserver所需凭据/证书的目录;
    --cloud_provider=: 云服务商地址,用于获取自身的metadata;
    --register-node=: 设置为true表示自动注册到apiserver。

    4. 手动管理Node
    k8s集群管理员也可以手工创建和修改Node对象。
    当需要这样操作时,先要将Kubelet启动参数中的--register-node参数的值设置为false。这样,在Node上的Kubelet就不会把自己注册到apiserver中去了。
    另外,k8s提供了一种运行时加入或者隔离某些Node的方法。具体操作请参考第四章。

  • 相关阅读:
    拳击游戏(虚函数应用)
    虚函数的使用
    继承中的二义性归属问题
    继承的作用以及在子类中初始化所有数据的方法
    Exploring ES2016 Decorators
    Storage information for PWA application
    浏览器中常见网络协议介绍
    vuex所有核心概念完整解析State Getters Mutations Actions
    搭建一个webpack微服务器
    nodeJS接入微信公众平台开发
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/k8s-node.html
Copyright © 2011-2022 走看看