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

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章