Kubernetes常見運維操作(二)

1: 應用滾動升級

操作功能:
    應用滾動升級
操作步驟:
    以redis-master爲例子,假定當前運行的redis-master Pod是1.0版本,現在要升級到2.0版本
    創建redis-master-controller-v2.yaml的配置文件如下:
    apiVersion: v1
    kind: ReplicationController
    metadata:
        name: redis-master-v2
        labels:
            name: redis-master
            version: v2
        spec:
            replicas: 1
        selector:
            name: redis-master
            version: v2
        template:
            metadata:
                labels:
                    name: redis-master
                    version: v2
                spec:
                    containers:
                        - name: master
                       image: kubeguide/redis-master:2.0
                       ports:
                           - containerPort: 6379
    在配置文件中有幾處需要注意:
    (1)RC的名字(name) 不能與舊的RC的名字相同
    (2)在selector中應該至少有一個Label與舊的RC的label不同, 以標示其爲新的RC
    上面的配置文件中增加了一個名爲version的Label與舊的RC進行區分。
    執行kubectl rolling-update命令完成Pod的滾動升級
    kubectl rolling-update redis-master -f redis-master-controller-v2.yaml
    上面操作中等新的Pod啓動完成後,舊的Pod也會被全部銷燬,這樣就完成了容器集羣更新

    另外一種方法:
    直接使用kubectl rolling-update的命令加上--image參數指定新版本的鏡像
    kubectl rolling-update redis-master --image=redis-master:v2
    備註:執行kubectl rolling-update --rollback 即可完成Pod版本的回滾

2:設置iptables的FORWARD鏈

操作功能:
    設置iptables的FORWARD鏈,Docker從1.13版本開始調整了默認防火牆規則,禁用了iptables filter表中的FORWARD鏈,會引起集羣中跨Node的Pod無法通信
操作步驟:
    iptables -P FORWARD ACCEPT
    iptables -nvL #查看命令

3:Kubernetes 關閉系統的Swap

操作功能:
    Kubernetes 1.8要求關閉系統的Swap,如果不關閉,默認配置下kubelet將無法啓動
操作步驟:
    通過kubelet啓動參數--fail-swap-on=false更改限制

4:集羣成功部署之後,kubectl命令獲取信息出錯

操作功能:
    集羣成功部署之後,kubectl命令獲取信息出錯
操作步驟:
    #master節點上 export KUBECONFIG=/etc/kubernetes/admin.conf
    # node節點上 export KUBECONFIG=/etc/kubernetes/kubelet.conf

5:kubectl proxy繞過https,採用http訪問

操作功能:
    kubectl proxy繞過https,採用http訪問
操作步驟:
    kubectl proxy --address="0.0.0.0" --port=8080 --accept-hosts='^*$'
    這樣就可以通過 kubectl -s http://masterIP:8080 apply -f *.yaml

6: 清理集羣

操作功能:
    清理集羣
操作步驟:
    # 刪除節點
    kubectl drain nodeName --delete-local-data --force --ignore-daemonsets
    kubectl delete node nodeName
    #清理
    kubeadm reset
    ifconfig cni0 down
    ip link delete cni0
    ifconfig flannel.1 down
    ip link delete flannel.1
    rm -rf /var/lib/cni/
    rm -rf /etc/kubernetes/

    systemctl stop kubelet;
    docker rm -f -v $(docker ps -q);
    find /var/lib/kubelet | xargs -n 1 findmnt -n -t tmpfs -o TARGET -T | uniq | xargs -r umount -v;
    rm -rf /var/lib/kubelet /var/lib/etcd;
    #記住要清理iptables
    iptables -FXZ

7:查看端口連接個數

操作功能:
    查看端口連接個數
操作步驟:
    netstat -anopt | grep 30039 | wc -l

 

 

 

 

 

 

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