kubertnetes通过将容器存放在节点(node)上的Pod来执行你的工作负载。
所以我们需要提前注册节点。
一组工作机器,称为节点, 会运行容器化应用程序。每个集群至少有一个工作节点。
节点上的kubelet向控制面板自注册。
–register-node 为 true
可选参数
--kubeconfig - 用于向 API 服务器执行身份认证所用的凭据的路径。
--cloud-provider - 与某云驱动 进行通信以读取与自身相关的元数据的方式。
--register-node - 自动向 API 服务器注册。
--register-with-taints - 使用所给的污点列表 (逗号分隔的 =:)注册节点。当 register-node 为 false 时无效。
--node-ip - 可选的以英文逗号隔开的节点 IP 地址列表。你只能为每个地址簇指定一个地址。 例如在单协议栈 IPv4 集群中,需要将此值设置为 kubelet 应使用的节点 IPv4 地址。 参阅配置 IPv4/IPv6 双协议栈了解运行双协议栈集群的详情。如果你未提供这个参数,kubelet 将使用节点默认的 IPv4 地址(如果有); 如果节点没有 IPv4 地址,则 kubelet 使用节点的默认 IPv6 地址。
--node-labels - 在集群中注册节点时要添加的标签。 (参见 NodeRestriction 准入控制插件所实施的标签限制)。
--node-status-update-frequency - 指定 kubelet 向 API 服务器发送其节点状态的频率。
手动注册,添加一个node对象。
–register-node 为 false
可选命令
kubectl cordon $NODENAME
标记一个 Node 为不可调度,如果标记节点为不可调度(unschedulable),将阻止新 Pod 调度到该 Node 之上, 但不会影响任何已经在其上的 Pod。 这是重启节点或者执行其他维护操作之前的一个有用的准备步骤。
体面关闭。
触发锁定机制。
在体面关闭节点过程中,kubelet 分两个阶段来终止 Pod:
1.终止在节点上运行的常规 Pod。
2.终止在节点上运行的关键 Pod。
节点体面关闭的特性对应两个 KubeletConfiguration 选项:
shutdownGracePeriod:
指定节点应延迟关闭的总持续时间。此时间是 Pod 体面终止的时间总和,不区分常规 Pod 还是关键 Pod。
shutdownGracePeriodCriticalPods:
在节点关闭期间指定用于终止关键 Pod 的持续时间。该值应小于 shutdownGracePeriod。
在非体面关闭期间,Pod 分两个阶段终止:
1.强制删除没有匹配的 out-of-service 容忍度的 Pod。
2.立即对此类 Pod 执行分离卷操作。
memorySwap:
swapBehavior: UnlimitedSwap
2.关闭
memorySwap:
swapBehavior: LimitedSwap
nodeTotalMemory:节点上可用的物理内存总量。
totalPodsSwapAvailable:节点上可供 Pod 使用的交换内存总量 (一些交换内存可能被保留由系统使用)。
containerMemoryRequest:容器的内存请求。
状态
kubectl describe node <节点名称>心跳
Kubernetes 节点发送的心跳帮助你的集群确定每个节点的可用性,并在检测到故障时采取行动。对于节点,有两种形式的心跳:
是什么?
租约提供了一种机制来锁定共享资源并协调集合成员之间的活动。 在 Kubernetes 中,租约概念表示为 coordination.k8s.io API 组中的 Lease 对象, 常用于类似节点心跳和组件级领导者选举等系统核心能力。
怎么使用?
从 Kubernetes v1.26 开始,每个 kube-apiserver 都使用 Lease API 将其身份发布到系统中的其他位置。 虽然它本身并不是特别有用,但为客户端提供了一种机制来发现有多少个 kube-apiserver 实例正在操作 Kubernetes 控制平面。kube-apiserver 租约的存在使得未来可以在各个 kube-apiserver 之间协调新的能力。