k8s 常用命令


    # 啟動etcd存儲服務
    service etcd start

    # 運行master
    cd /opt/kubernetes/bin
    ./apiserver.sh 192.168.220.135 http://192.168.220.135:2379
    ./scheduler.sh 192.168.220.135
    ./controller-manager.sh 192.168.220.135

    # 運行node(需要先禁用swap交換緩存,運行命令 swapoff -a)
    cd /opt/kubernetes/bin
    ./kubelet.sh 192.168.220.138 192.168.220.139 10.10.10.2
    ./proxy.sh 192.168.220.135 192.168.220.136

    # node 節點日志
    tail -f /var/log/messages

    # 查看集群狀態
    kubectl get node
    kubectl get componentstatus

    # 查看集群所有信息
    kubectl get all

    # 查看nginx服務所在docke容器節點,一個服務也是一個負載均衡
    kubectl get  ep nginx

    # 命令行管理對象實例
      # 1.基於nginx鏡像,創建hello-world pod
      kubectl run hello-world --replicas=1 --labels="app=example" --image=nginx:latest --port=80
      # 2.以上命令會自動創建rs,查看rs
      kubectl get rs
      kubectl describe rs rs_name
      # 3.以上命令會自動創建deployment,deployment負責管理rs和pod
      kubectl describe deploy/hello-world
      kubectl edit deploy hello-world
      # 4.聲明服務
      kubectl expose deployment hello-world --port=88 --target-port=80 --name=example-service    
      kubectl get mvc

    # pod擴容
    kubectl sacle deployment --replicas=10 hello-world

    # pod刪除,pod不能直接刪除否則還會重新創建,需要刪除pod的控制器
    kubectl delete deployment hello-world

    # pod日志實時查看
    kubectl logs -f pod/hello-world-cc85df    

    # 查看pod里面容器的日志
    kubectl logs pod-test -c hello-write

    # 查看容pod里面容器的環境變量
    exec nginx-deployment-5b4b59b4b8-ktxcx env

    # pod中鏡像升級
    kubectl set image deploy/nginx-deployment nginx=nginx:1.11

    #實時觀察升級發布狀態:滾動升級,殺掉一個pod,升級一個pod然后再啟動該pod。接着再殺掉一個pod。。。
    kubectl rollout status deployment/nginx-deployment

    #查看deployment歷史修訂版本
    kubectl rollout history deployment/nginx-deployment

    # docker鏡像暴力刪除
    rm -rf /var/lib/docker

    # 鏡像加速器(docker17.05 以上版本執行)
    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://8ca15b27.m.daocloud.io

    # 支持三種策略:
    Always:當容器終止退出后,總是重啟容器,默認策略。
    OnFailure:當容器異常退出(退出狀態碼非0)時,才重啟容器。
    Never:當容器終止退出,從不重啟容器。

    # 進入pod
    kubectl exec pod-test -it bash

    # 進入pod中的容器運行命令以及排錯
    kubectl exec pod-test -c hello-world -it bash

    # 替換pod
    kubectl replace -f pod.yaml --force

    # 指定命名空間查看pod
    kubectl get pods --namespace=kube-system
    
    # 創建flanneld.service
[Unit]
Description=flanneld overlay address etcd agent
After=network.target
Before=docker.service

[Service]
Type=notify
ExecStart=/usr/bin/flanneld -etcd-endpoints=http://192.168.220.138:2379

[Install]
RequiredBy=docker.service
WantedBy=multi-user.target
    
    # 啟動flanneld 【http://time-track.cn/deploy-kubernetes-step-by-step-on-trusty-section-2.html】
    systemctl restart flanneld.service
    
    # 查看flanneld使用的網段
    cat /run/flannel/subnet.env
    
    # 讓docker在自己的docker0上面使用自定義網段
    Node➜  ~ cat /etc/systemd/system/docker.service.d/docker.conf
[Service]
ExecStart=
ExecStart=/usr/bin/docker daemon -H fd:// --bip=10.1.48.1/24 --mtu=1472

    # 進入容器測試
    docker run -it busybox sh
    
    # 截獲本機和其他主機的通信
    tcpdump host 192.168.220.138 and 192.168.220.139
    
    # 截獲主機80端口發出和接收的http數據包
    tcpdump tcp port 80 and host 192.168.220.138
    
    # 查詢etcd 數據
    etcdctl ls /coreos.com/network/subnets


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM