• Kubernetes集群节点维护


    按照kubernetse设计原则,node节点只运行程序,由kubelet采集和提交数据与kube-apiserver交互更新,最终数据落入etcd中

    由于node节点存在异常,需要
    1. 将异常node节点打污点标记,防止再被调度
    2. 异常节点node上的pod驱逐(若有)
    3. 异常node节点维护(更新程序、重启等)
    4. 取消异常node节点的五点标签
    
    # 服务中断时间=停机等待5分钟时间+重建时间+服务启动时间+readiness探针检测正常时间
    
    # 集群健康检查
    kubectl get cs
    kubectl get node -owide
    kubectl get pod -A | grep -v Running
    
    # 命令查询
    kubectl taint nodes node1 key1=value1:NoSchedule    #设置node1节点不可调度
    kubectl taint nodes node1 key1=value1:NoSchedule-   #设置node1节点可调度
    
    # NoSchedule: 一定不能被调度
    # PreferNoSchedule: 尽量不要调度
    # NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
    
    # 将 node 节点标记为不可调度,不影响现有 pod,daemonSet 不受影响
    kubectl cordon node-name
    
    # 驱逐该节点的 pod
    kubectl drain node-name
    
    # 驱逐pod,同时为node加上污点标签
    kubectl drain node --ignore-daemonsets
    
    --delete-local-data  # 删除本地数据,清空emptyDir
    --ignore-daemonsets  # 忽略DeamonSet
    --force              # 不加force参数只会删除该node节点上的ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job,加上后所有pod都将删除
    
    # 维护结束,节点重新投入使用
    kubectl uncordon node-name
    
    # 删除节点
    kubectl delete node node-name
    
  • 相关阅读:
    python异常触发及自定义异常类
    python for i in range(x)应用的问题
    季羡林 暮年沉思录
    再谈python的list类型参数及复制
    Python 列表推导式
    JavaScript:垃圾数据是如何自动回收的?
    JavaScript:this的用法
    JavaScript:浅谈闭包及其回收原则
    ES6:async / await ---使用同步方式写异步代码
    五大主流浏览器与四大浏览器内核
  • 原文地址:https://www.cnblogs.com/firewalld/p/15271584.html
Copyright © 2020-2023  润新知