• k8s中运维/测试常用的命令整理(随时更新)


    kubectl get pod 查看应用服务,-n 分区名:查看该分区下的pod,--all-namespace:查看所有分区的pod并显示在哪个分区,-a:展示所有pod,单个pod名 -oyaml/-ojson:展示pod配置信息,单个pod名 -owide:显示该podip/node信息,

    kubectl get ns 查看分区,单个分区名 -oyaml/-ojson:查看ns详细配置,

    kubectl get node 查看节点, 单个node名 -oyaml/-ojson:查看node详细配置,-owide 展示ip信息,然后通过ssh可以连接到该节点,

    kubectl describe pod/ns/node : 查看事件

    kubectl delete pod/ns:删除单个pod/ns,--all:删除全部pod/ns

    kubectl exec -it pod名 bash/sh:进入服务的终端

    检查节点证书:openssl x509 -in /etc/kubernetes/certs/kubelet-server.crt -noout -text | grep 'Not After|Not Before’  (首先进入节点ip)

    检查应用状态:kubectl get pod --all-namespaces -o wide | grep -v Running

    批量删除分区:kubectl delete partition `kubectl get partition |grep test |awk  '{print $1}'`

     

    查看 Pod 状态以及运行节点

    kubectl get pods -o wide
    kubectl -n kube-system get pods -o wide
    

    查看 Pod 事件

    kubectl describe pod <pod-name>
    

    查看 Node 状态

    kubectl get nodes
    kubectl describe node <node-name>
    

    kube-apiserver 日志

    PODNAME=$(kubectl -n kube-system get pod -l component=kube-apiserver -o jsonpath='{.items[0].metadata.name}')
    kubectl -n kube-system logs $PODNAME --tail 100
    

    以上命令操作假设控制平面以 Kubernetes 静态 Pod 的形式来运行。如果 kube-apiserver 是用 systemd 管理的,则需要登录到 master 节点上,然后使用 journalctl -u kube-apiserver 查看其日志。

    kube-controller-manager 日志

    PODNAME=$(kubectl -n kube-system get pod -l component=kube-controller-manager -o jsonpath='{.items[0].metadata.name}')
    kubectl -n kube-system logs $PODNAME --tail 100
    

    以上命令操作假设控制平面以 Kubernetes 静态 Pod 的形式来运行。如果 kube-controller-manager 是用 systemd 管理的,则需要登录到 master 节点上,然后使用 journalctl -u kube-controller-manager 查看其日志。

    kube-scheduler 日志

    PODNAME=$(kubectl -n kube-system get pod -l component=kube-scheduler -o jsonpath='{.items[0].metadata.name}')
    kubectl -n kube-system logs $PODNAME --tail 100
    

    以上命令操作假设控制平面以 Kubernetes 静态 Pod 的形式来运行。如果 kube-scheduler 是用 systemd 管理的,则需要登录到 master 节点上,然后使用 journalctl -u kube-scheduler 查看其日志。

    kube-dns 日志

    kube-dns 通常以 Addon 的方式部署,每个 Pod 包含三个容器,最关键的是 kubedns 容器的日志:

    PODNAME=$(kubectl -n kube-system get pod -l k8s-app=kube-dns -o jsonpath='{.items[0].metadata.name}')
    kubectl -n kube-system logs $PODNAME -c kubedns
    

    Kubelet 日志

    Kubelet 通常以 systemd 管理。查看 Kubelet 日志需要首先 SSH 登录到 Node 上,推荐使用 kubectl-enter 插件而不是为每个节点分配公网 IP 地址。比如:

    kubectl enter <node-name>
    journalctl -l -u kubelet
    

    Kube-proxy 日志

    Kube-proxy 通常以 DaemonSet 的方式部署,可以直接用 kubectl 查询其日志

    $ kubectl -n kube-system get pod -l component=kube-proxy
    NAME               READY     STATUS    RESTARTS   AGE
    kube-proxy-42zpn   1/1       Running   0          1d
    kube-proxy-7gd4p   1/1       Running   0          3d
    kube-proxy-87dbs   1/1       Running   0          4d
    $ kubectl -n kube-system logs kube-proxy-42zpn

    在k8s里部署deploymeny:

    首先创建命名空间namespace

    yaml文件:

    创建: kubectl create -f authns.yaml

    创建deploymeny:$ kubectl run nginx --image=cargo.caicloud.io/caicloud/nginx:1.9.7 --replicas=1 -n cnauth

    查看pod: kubectl get pod -n cnauth -w    (-w是实时状态查看)

    查看创建的pod类型:kubectl get all -n cnauth

    删除pod,要删除deployment不然pod会自动重启:kubectl delete deployment nginx -n cnauth

     

    查看pod日志相关命令记录:

    Aliases:
    logs, log

    Examples:
    # Return snapshot logs from pod nginx with only one container (只看一个pod)
    kubectl logs nginx

    # Return snapshot logs from pod nginx with multi containers (看pod和上一层容器)
    kubectl logs nginx --all-containers=true

    # Return snapshot logs from all containers in pods defined by label app=nginx 
    kubectl logs -lapp=nginx --all-containers=true

    # Return snapshot of previous terminated ruby container logs from pod web-1
    kubectl logs -p -c ruby web-1

    # Begin streaming the logs of the ruby container in pod web-1
    kubectl logs -f -c ruby web-1

    # Display only the most recent 20 lines of output in pod nginx  (限制输出行数)
    kubectl logs --tail=20 nginx

    # Show all logs from pod nginx written in the last hour  (查看上一小时内的log)
    kubectl logs --since=1h nginx

    # Return snapshot logs from first container of a job named hello
    kubectl logs job/hello

    # Return snapshot logs from container nginx-1 of a deployment named nginx
    kubectl logs deployment/nginx -c nginx-1

     
  • 相关阅读:
    Mac 中 go env 找不到 GOROOT
    git log 中想要更改历史 日志
    Go 中 生成随机数的坑 rand.seed() rand.intn()
    HTML 首页倒三角形导航块
    HTML overflow:hidden
    HTML padding ,margin
    JavaScript 通过关系找标签
    JavaScript Dom编程根据属性找节点
    javascript String
    HTML 标签包含规范,规避脱标流,图片和文字垂直居中对齐,
  • 原文地址:https://www.cnblogs.com/chenne69163/p/12516469.html
Copyright © 2020-2023  润新知