zoukankan      html  css  js  c++  java
  • k8s相关工作中常用命令

    ==================================== prometheus ===================================================

    reload prometheus

    curl -X POST http://10.130.16.246:31190/-/reload

    prometheus tsdb命令帮助

    ./tsdb --help-long

    tsdb 查看block信息

    ./tsdb ls /data
    ./tsdb ls -h /data

    tsdb 备份

    ./tsdb dump

    tsdb 分析block

    ./tsdb analyze --limit=20 /data 01F0V6SQ072HVVBVKW2SN73AV8

    ==================================== k8s ==========================================================
    官方命令参考:
    https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/

    容器外执行命令

    kubectl exec etcd-master01 -n kube-system "ls"

    使用patch更新 资源yaml

    需要写一个yaml文件片段, 格式和资源文件一样

    kubectl patch deployment retainkeys-demo --patch "$(cat patch-file-retainkeys.yaml)"

    列出以标签过滤后的 Pod 的所有容器

    要获取匹配特定标签的 Pod,请使用 -l 参数。以下匹配仅与标签 app=nginx 相符的 Pod。

    kubectl get pods --all-namespaces -o=jsonpath="{..image}" -l app=nginx

    列出以命名空间过滤后的 Pod 的所有容器

    要获取匹配特定命名空间的 Pod,请使用 namespace 参数。以下仅匹配 kube-system 命名空间下的 Pod。

    kubectl get pods --namespace kube-system -o jsonpath="{..image}"

    查看pod 标签

    kubectl get pods --show-labels -n monitoring

    查看node的标签

    kubectl get no --show-labels

    查看pod中容器name,根据标签

    kubectl get po -n monitoring -o jsonpath="{..name}" -l app=pod-gpu-metrics-exporter

    进入指定容器 -c

    kubectl exec -it pod-gpu-metrics-exporter-65r8f -n monitoring -c pod-nvidia-gpu-metrics-exporter sh

    service无法访问,查看endpoints

    kubectl get ep -n monitoring

    替换重启pod,实现configmap热更新

    kubectl get po prometheus-0 -n monitoring -o yaml |kubectl replace --force -f -

    查看节点labels

    kubectl get node --show-labels=true

    设置节点lable

    kubectl label node 10.73.1.120 nstack/gpu-model=2080ti --overwrite

    强制删除 termining pod

    kubectl delete pod ha-70-zookeeper-1 --force --grace-period=0

    Pod 仍处于 Unknown 状态

    kubectl patch pod -p '{"metadata":{"finalizers":null}}'

    查看yaml字段的解释

    kubectl explain pods.spec.nodeName

    rke k8s组件log:

    /var/lib/rancher/rke

    驱逐pod,命令node节点开始释放所有pod,并且不接收新的pod进程

    kubectl drain [node-name] --force --ignore-daemonsets --delete-local-data

    查看api信息

    kubectl get --raw /apis/metrics.k8s.io | jq .
    kubectl get --raw /api/v1/namespaces/kubeflow/services/ptcnowivuxhvsed | jq .

    进入pod指定的container中

    kubectl exec -it prometheus-cloud-0 -n monitoring sh -c busybox

    获取 Pod 的唯一标识 uid,可通过命令

    kubectl get pod pod名 -o jsonpath={.metadata.uid}

    查看卷的持久化信息

    findmnt /var/lib/kubelet/pods/24373a77-badf-4a3b-bc8b-eb5c1e97979c/volumes/kubernetes.io~csi/pvc-9a12e07e-67f4-477d-85b2-e3b74d39d18f/mount

    get api资源

    kubectl get --raw /api/v1/namespaces/kube-system/endpoints/kube-controller-manager | jq .

    查看证书有限期

    (rke部署)

    for i in /etc/kubernetes/ssl/*.pem; do echo $i; openssl x509 -in $i -text -noout|egrep "Not Before|Not After";echo "-----------"; done

    (kubeadm部署)

    for i in /etc/kubernetes/pki/*.crt;do echo $i; openssl x509 -in $i -text -noout|egrep "Not Before|Not After";echo "-----------";done

    查看serviceaccount 用户 secret

    kubectl get secret
    kubectl describe secret default-token-jtqck

    kubectl 自动补全

    source <(kubectl completion bash)
    echo "source <(kubectl completion bash)" >> ~/.bashrc

    k8s secret、sa token查看

    kubectl get secret
    kubectl describe secret default-token-jtqck
    ==================================== k8s service ======================================================

    k8s service & DNS

    endpoints ip

    pod_name.svc_name.namespace_name.svc.cluster.local

    rabbitmq-0.rabbitmq.monitoring.svc.cluster.local

    cluster ip (pod间通信)

    svc_name.namespace_name.svc.cluster.local

    rabbitmq.monitoring.svc.cluster.local

    sh-4.4# curl prometheus.monitoring.svc.cluster.local:9090
    Found.

    pod 间通信(待确定)

    pod_name.svc_name

    rabbitmq-0.rabbitmq

    svc_name.namespace_name.svc

    prometheus.monitoring.svc

    ==================================== etcd ======================================================
    https://rancher.com/docs/rancher/v2.x/en/troubleshooting/kubernetes-components/etcd/

    查看集群成员状态

    etcdctl --write-out=table member list

    查看端点状态(表格形式输出)

    etcdctl --write-out=table --endpoints=$ENDPOINTS endpoint status
    etcdctl -w table endpoint status

    docker外查看端点状态(也能查看节点角色)

    docker exec -it etcd sh -c "etcdctl --write-out=table endpoint status"

    列出集群所有节点状态

    docker exec -it etcd sh -c "etcdctl -w table endpoint --cluster status"

    在使用--cluster时候,ETCDCTL_ENDPOINTS,否者会报4001端口的endpoint错

    docker exec -e ETCDCTL_ENDPOINTS=$(docker exec etcd /bin/sh -c "etcdctl member list | cut -d, -f5 | sed -e 's/ //g' | paste -sd ','") etcd etcdctl endpoint status --write-out table

    endpoint 健康状态

    docker exec -it etcd sh -c "etcdctl -w table endpoint health"

    测试集群性能

    etcdctl check pref

    手动切换leader

    etcdctl move-leader

    rke etcd debug level

    docker run --net=host -v $(docker inspect kubelet --format '{{ range .Mounts }}{{ if eq .Destination "/etc/kubernetes" }}{{ .Source }}{{ end }}{{ end }}')/ssl:/etc/kubernetes/ssl:ro appropriate/curl -s -XPUT -d '{"Level":"DEBUG"}' --cacert $(docker exec etcd printenv ETCDCTL_CACERT) --cert $(docker exec etcd printenv ETCDCTL_CERT) --key $(docker exec etcd printenv ETCDCTL_KEY) $(docker exec etcd printenv ETCDCTL_ENDPOINTS)/config/local/log

    etcd info(default) level

    docker run --net=host -v $(docker inspect kubelet --format '{{ range .Mounts }}{{ if eq .Destination "/etc/kubernetes" }}{{ .Source }}{{ end }}{{ end }}')/ssl:/etc/kubernetes/ssl:ro appropriate/curl -s -XPUT -d '{"Level":"INFO"}' --cacert $(docker exec etcd printenv ETCDCTL_CACERT) --cert $(docker exec etcd printenv ETCDCTL_CERT) --key $(docker exec etcd printenv ETCDCTL_KEY) $(docker exec etcd printenv ETCDCTL_ENDPOINTS)/config/local/log

    列出所有 前缀是/ 的keys, 其实就是所有的keys

    etcdctl get --prefix --keys-only /

    列出所有 configmaps(即前缀是/registry/configmaps)

    etcdctl get --prefix --keys-only /registry/configmaps

    列出3个前缀是/registry/minions的keys

    etcdctl get --prefix --keys-only --limit=3 /registry/minions

    获取一个key的value

    etcdctl get -w json /registry/persistentvolumes/pvc-1a08fef0-46cd-4724-b91b-b53bacc720e3 | jq .

    默认100ms超时配置

    --heartbeat-interval and --election-timeout

    改logs level 为Warning之上

    https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md#--log-level

    备份

    etcdctl --write-out=table snapshot save snapshot.db

    查看备份状态

    etcdctl --write-out=table snapshot status snapshot.db
    ==================================== storage ========================================================

    csi log查看

    kubectl logs instorage-csi-node-d7kr2 -c instorage-csi --tail=100 |grep 'NodeStageVolume'

    客户端,iscsi target查看

    iscsiadm -m session

    客户端,发现target

    iscsiadm -m discovery -t sendtargets -p IP:port
    iscsiadm -m discovery -t sendtargets -p 192.168.100.254

    客户端,挂载target

    iscsiadm -m node -T targetname --login

    客户端,卸载target

    iscsiadm -m node -T targetname --logout

    target服务端,查看target

    tgt-admin --show

    查看设备路径

    ll /dev/disk/by-path

    查看多路径状态

    multipath -ll

    查看多路径信心

    multipath -v3

    查看多路径服务的状态

    mpathconf

    dd命令创建指定大小的文件

    dd if=/dev/zero of=test bs=1M count=1000

    删除单路径设备

    echo 1 > /sys/block/sdX/device/delete

    删除多路径设备

    multipath -f /dev/dm-X

    以下命令显示所有设备映射器设备及其主、副号码。副号码确定 dm 设备的名称。例如:副号码 3 与多路径的设备 /dev/dm-3 对映

    dmsetup ls
    mpathd (253:3)

    删除多路径failed faulty running

    multipath -ll | grep sd | grep failed | awk -F":" '{print $4}' | awk '{print $2}' | while read LUN ;do echo 1 > /sys/block/${LUN}/device/delete; done

    删除多路径设备,但是in use的不会被删除,相当于刷新

    multipath -F

    列出存储池

    icfs osd lspools

    列出rbd images

    rbd -p stack ls

    查看设备依赖

    lsblk -s
    ==================================== docker ========================================================

    harbor验证

    配置docker/etc/docker/daemon.json,添加insecure-registries,否则会出现x509证书问题

    {
    "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"],
    "insecure-registries" : ["registry.navinfo.com","https://gcr.io"],
    "live-restore": true
    }

    登录harbor

    docker login registry.navinfo.com

    导出已有镜像为tar文件

    docker save csiplugin:v2.2.1 -o csiplugin-v2.2.1.tar

    加载镜像到本地

    docker load -i csiplugin-v2.2.1.tar

    给镜像打tag (仓库tag)

    docker tag csiplugin:v2.2.1 registry.navinfo.com/instorage/csiplugin:v2.2.1

    推送到远程仓库

    docker push registry.navinfo.com/instorage/csiplugin:v2.2.1

    构建images(在dockerfile目录下)

    docker build -t csiplugin:v2.2.0 .

    打tag

    docker tag csiplugin-v2.2.0.tar:v2.2.0 registry.navinfo.com/instorage/csiplugin:v2.2.0

    push镜像到harbor,宿主节点配置了证书

    docker push registry.navinfo.com/instorage/csiplugin:v2.2.0

    在执行清除镜像之前先查看镜像和容器的数量

    docker system df

    删除无容器使用的镜像,外加条件:创建于10天前、限于应用程序image

    docker image prune -a --force --filter "label=type=appimage" --filter "until=240h"

    删除所有不使用的镜像

    docker image prune --force --all或者docker image prune -f -a

    Docker prune 命令

    删除 所有未被 tag 标记和未被容器使用的镜像:

    docker image prune

    删除 所有未被容器使用的镜像:

    docker image prune -a

    删除 所有停止运行的容器:

    docker container prune

    删除 所有未被挂载的卷:

    docker volume prune

    删除 所有网络:

    docker network prune

    删除 docker 所有资源:

    docker system prune

    ========================================== clush =========================================

    从本地拷贝到远程服务器组

    clush -g test --copy /root/test.txt --dest /root/

    从远程服务器拷贝到本地

    clush -g test -rcopy /root/test.txt --dest /root/

    排除某个节点

    clush -g test -x 10.73.1.128 -rcopy /root/test.txt --dest /root/

    ========================================== virtualbox =========================================

    关机

    VBoxManage.exe controlvm -h
    VBoxManage.exe controlvm nineep poweroff

    启动

    VBoxManage.exe startvm nineep --type headless

    列出正在运行的vm

    VBoxManage.exe list runningvms

    ========================================== istio ============================================

    查看xds状态

    istioctl proxy-status

    查看xds配置

    istioctl proxy-config

    分析和诊断网格

    istioctl analyze
    istioctl experimental describe pod gcr03xzshy28zx0-v1-55b8f7c6c8-d2q69 -n 24f3af992e9e4ad28e7954fa4fdafb07-127

    istio web 工具: ControlZ

    ========================================== influxdb ==========================================

    检查数据

    influx_inspect verify -dir /data/influxdb/
    influx_inspect verify-seriesfile -dir /data/influxdb/data/

    登录数据库

    influx -database prometheus -host 'localhost' -port '8086'

    查看measurements=metrics(类似于table) metric_name=table_name, label=field, label_value=field_value

    show measurements

    查看时序数据

    show series

    查看时序数据的tag (metrics label)

    show tag keys

    查看metrics name, 及其value 数据类型

    show field keys

    查询10.60.34.23:9100节点的noad_load1

    select * from node_load1 where instance='10.60.34.23:9100'

    rebalance

    curl -X POST 'http://127.0.0.1:7076/rebalance?circle_id=0&operation=add&ha_addrs=10.60.191.251:7076'
    http://www.blog.sun-iot.xyz/posts/61185b64#数据同步机制

    debug

    curl -XPOST http://127.0.0.1:8086/debug/vars

    ========================================== ansible ===============================================

    dry run

    ansible-playbook -i inventory/storage.ini deploy-exporter.yml -t r1-xsky -C

    列出tags执行的task

    ansible-playbook -i inventory/all.ini test.yml -t exporter_config_resolv --list-tasks

    注意tags 和skip tags的先后顺序

    ansible-playbook -i inventory/all.ini deploy-exporter.yml --list-tasks --skip-tags r2-xsky -t node_exporter

  • 相关阅读:
    null in ABAP and nullpointer in Java
    SAP ABAP SM50事务码和Hybris Commerce的线程管理器
    Hybris service layer和SAP CRM WebClient UI架构的横向比较
    SAP ABAP和Linux系统里如何检查网络传输的数据量
    SAP CRM WebClient UI和Hybris的controller是如何被调用的
    SAP CRM和Cloud for Customer订单中的业务伙伴的自动决定机制
    SAP CRM WebClient UI和Hybris CommerceUI tag的渲染逻辑
    SAP BSP和JSP页面里UI元素的ID生成逻辑
    微信jsapi支付
    微信jsapi退款操作
  • 原文地址:https://www.cnblogs.com/nineep/p/14764347.html
Copyright © 2011-2022 走看看