Kubernetes常见运维操作(一)

1: Node隔离和恢复

操作功能:
    Node隔离和恢复
操作步骤:
node隔离:
yaml文件:
apiVersion: v1
kind: Node
metadata:
    name: kubernetes-minion1
    labels:
        kubernetes.io/hostname: kubernetes-minion1
spec:
    unschedulable: true
然后,通过kubectl replace 命令完成对Node状态的修改:(kubectl replace -f unschedule_node.yaml)
查看Node的状态,可以观察到在Node的状态中增加了一项SchedulingDisabled
状态查看命令: kubectl get nodes
这样后续创建的Pod,系统将不会再向该Node进行调度

同样可以不适用配置文件,直接使用kubectl path命令来完成:
kubectl patch node kubernetes-minion1 -p '{"spec":{"unschedulable":true}}'
备注: 将某个Node脱离调度范围时,在其上运行的pod并不会自动停止,管理员需要手动停止在该Node上运行的Pod

node恢复:
如果需要将某个Node重新纳入集群调度范围,则将unschedulable设置为false,再次执行kubectl replace或kubectl patch命令就能恢复系统对该Node的调度。

2: Node扩容

操作功能:
    Node扩容
操作步骤:
    1: 在Node节点上安装Docker、Kubelet和kube-proxy
    2:将kubelet和kube-proxy的启动参数中的Master URL指定为当前kubernetes集群Master的地址
    3:最后启动这些服务
    基于kubelet的自动修复机制,新的Node将会自动加入现有的kubernetes集群中。

3: Pod动态扩容和缩放

操作功能:
    Pod动态扩容和缩放
操作步骤:
    以Redis-slave RC 为例子, 已经定义的最初副本数量为2,通过如下的命令可以将redis-slave RC控制的Pod 副本数量从最初的2变为3
    kubectl scale rc redis-slave --replicas=3
    将--replicas设置为比当前Pod副本数量更小的数字,系统会kill掉一些运行中的pod
    kubectl scale rc redis-slave --replicas=1

4:更新资源对象label

操作功能:
    更新资源对象label
操作步骤:
    给已经创建的Pod “redis-master-bobr0”添加一个标签role=backend
    kubectl label pod redis-master-bobr0 role=backend
    删除一个Label,只需在命令行最后指定Label的key名并与一个减号连接即可:
    kubectl label pod redis-master-bobr0 role-
    修改一个Label的值,需要加上--overwrite参数:
    kubectl label pod redis-master-bobr0 role=master --overwrite

5:将Pod调度到指定的Node上

操作功能:
    将Pod调度到指定的Node上
操作步骤:
    1: 通过kubectl label 命令给目标Node打上一个特定的标签
    kubectl label nodes <node-name> <label-key>=<label-value>
    2:在Pod的配置文件中加入nodeSelector定义
    主要定义段:
    spec:
        nodeSelector:
            zone: <label-name>
    运行kubectl create -f 命令创建的Pod就不会被调度到排除的Node上

6:kubelet 指定本地镜像

操作功能:
    kubelet 指定本地镜像
操作步骤:
    cat > /etc/systemd/system/kubelet.service.d/10-kubeadm.conf <<EOF
    [Service]
    Environment="KUBELET_EXTRA_ARGS=--pod-infra-container-        image=local.repo/google_containers/pause-amd64:3.1"
    EOF
    systemctl daemon-reload
    systemctl restart kubelet
发布了108 篇原创文章 · 获赞 14 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/CodeAsWind/article/details/104473615