安装部署

  • 删除节点

    • 删除master
    • 删除node
  • 新增节点
    • 删除master
    • 删除node

以上参考: kubernetes 集群实操系列:节点维护(删除、新增)

系统运维

  • 获取容器重启前一个的日志
    kubectl logs -f -p kafka-0
  • 一键强制删除k8s集群中所有Delete状态的pv
    kubectl get pv|grep Delete| awk '{print $1}'| xargs kubectl delete pv --force --grace-period=0
    # 这个命令有可能还是删不掉,那就再来一个
    kubectl get pv|grep Delete| awk '{print $1}'| xargs kubectl patch pv -p '{"metadata": {"finalizers": null}}'
  • 一键强制删除k8s集群中所有Terminating状态的pod
    kubectl get po --all-namespaces|grep Terminating| awk '{print $1"\t"$2}'| xargs -l bash -c 'kubectl delete po $1 -n $0 --force --grace-period=0'
  • kubectl 如何给node打roles

    [root@pi4-master01 ~]# kubectl get nodes
    NAME           STATUS   ROLES    AGE   VERSION
    pi4-master01   Ready    master   67d   v1.18.20
    pi4-node01     Ready    <none>   48d   v1.18.20
    pi4-node02     Ready    node     66d   v1.18.20
    [root@pi4-master01 ~]# kubectl label node pi4-node01 node-role.kubernetes.io/node=
    node/pi4-node01 labeled
    [root@pi4-master01 ~]# kubectl get nodes
    NAME           STATUS   ROLES    AGE   VERSION
    pi4-master01   Ready    master   67d   v1.18.20
    pi4-node01     Ready    node     48d   v1.18.20
    pi4-node02     Ready    node     66d   v1.18.20
  • 对资源进行伸缩命令示例
    # 将名为 'foo' 的副本集伸缩到 3 副本
    kubectl scale --replicas=3 rs/foo 
    # 将在 "foo.yaml" 中的特定资源伸缩到 3 个副本
    kubectl scale --replicas=3 -f foo.yaml 
    # 如果名为 mysql 的 Deployment 的副本当前是 2,那么将它伸缩到 3
    kubectl scale --current-replicas=2 --replicas=3 deployment/mysql 
    # 伸缩多个副本控制器
    kubectl scale --replicas=5 rc/foo rc/bar rc/baz

答疑解惑

  • 使用nodeport对外开放服务是只通过master开放,还是全节点开放?
    全节点开放。