• kubernetes 操作命令合集


    操作基本命令:

     

    通过yaml文件创建:

    kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete)

    kubectl apply -f xxx.yaml (创建+更新,可以重复使用)

    通过yaml文件删除:

    kubectl delete -f xxx.yaml

    查看kube-system namespace下面的pod/svc/deployment 等等(-o wide  选项可以查看存在哪个对应的节点)

    kubectl get pod/svc/deployment -n kube-system

      

    查看所有namespace下面的pod/svc/deployment等等

    kubectl get pod/svc/deployment --all-namcpaces 

    重启pod(无法删除对应的应用,因为存在deployment/rc之类的副本控制器,删除pod也会重新拉起来)

    kubectl get pod -n kube-system

    查看pod描述:

    kubectl describe pod XXX -n kube-system

    查看pod 日志 (如果pod有多个容器需要加-c 容器名)

    kubectl logs xxx -n kube-system  

    删除应用(先确定是由说明创建的,再删除对应的kind):

    kubectl delete deployment xxx -n kube-system

    根据label删除:
    kubectl delete pod -l app=flannel -n kube-system

    扩容
    kubectl scale deployment spark-worker-deployment --replicas=8

    导出配置文件:
      导出proxy
      kubectl get ds -n kube-system -l k8s-app=kube-proxy -o yaml>kube-proxy-ds.yaml
      导出kube-dns
      kubectl get deployment -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-dp.yaml
      kubectl get services -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-services.yaml
      导出所有 configmap
      kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml

    复杂操作命令:

      删除kube-system 下Evicted状态的所有pod:

      kubectl get pods -n kube-system |grep Evicted| awk '{print $1}'|xargs kubectl delete pod  -n kube-system

    以下为维护环境相关命令:

    重启kubelet服务
    systemctl daemon-reload
    systemctl restart kubelet

    修改启动参数
    vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf

    # 查看集群信息
    kubectl cluster-info

    # 查看各组件信息
    kubectl get componentstatuses

    #查看kubelet进程启动参数
    ps -ef | grep kubelet

    查看日志:
    journalctl -u kubelet -f

    设为不可调度状态:
    kubectl cordon node1

    将pod赶到其他节点:
    kubectl drain node1

    解除不可调度状态
    kubectl uncordon node1

    master运行pod
    kubectl taint nodes master.k8s node-role.kubernetes.io/master-
    master不运行pod
    kubectl taint nodes master.k8s node-role.kubernetes.io/master=:NoSchedule

    K8s一些命令:
    通过yaml文件创建:
    kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete)
    kubectl apply -f xxx.yaml (创建+更新,可以重复使用)
    通过yaml文件删除:
    kubectl delete -f xxx.yaml
    查看kube-system namespace下面的pod/svc/deployment 等等(-o wide 选项可以查看存在哪个对应的节点)
    kubectl get pod /svc/deployment -n kube-system
    查看所有namespace下面的pod/svc/deployment等等
    kubectl get pod/svc/deployment --all-namcpaces
    重启pod(无法删除对应的应用,因为存在deployment/rc之类的副本控制器,删除pod也会重新拉起来)
    kubectl get pod -n kube-system
    查看pod描述:
    kubectl describe pod XXX -n kube-system
    查看pod 日志 (如果pod有多个容器需要加-c 容器名)
    kubectl logs xxx -n kube-system
    删除应用(先确定是由说明创建的,再删除对应的kind):
    kubectl delete deployment xxx -n kube-system
    根据label删除:
    kubectl delete pod -l app=flannel -n kube-system
    扩容
    kubectl scale deployment spark-worker-deployment --replicas=8
    导出配置文件:
      导出proxy
      kubectl get ds -n kube-system -l k8s-app=kube-proxy -o yaml>kube-proxy-ds.yaml
      导出kube-dns
      kubectl get deployment -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-dp.yaml
      kubectl get services -n kube-system -l k8s-app=kube-dns -o yaml >kube-dns-services.yaml
      导出所有 configmap
      kubectl get configmap -n kube-system -o wide -o yaml > configmap.yaml
    复杂操作命令:
     删除kube-system 下Evicted状态的所有pod:
    kubectl get pods -n kube-system |grep Evicted| awk '{print $1}'|xargs kubectl delete pod -n kube-system
    以下为维护环境相关命令:
    重启kubelet服务
    systemctl daemon-reload
    systemctl restart kubelet
    修改启动参数
    vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
    # 查看集群信息
    kubectl cluster-info
    # 查看各组件信息
    kubectl get componentstatuses
    #查看kubelet进程启动参数
    ps -ef | grep kubelet
    查看日志:
    journalctl -u kubelet -f
    设为不可调度状态:
    kubectl cordon node1

    将pod赶到其他节点:
    kubectl drain node1
    解除不可调度状态
    kubectl uncordon node1
    master运行pod
    kubectl taint nodes master.k8s node-role.kubernetes.io/master-
    master不运行pod
    kubectl taint nodes master.k8s node-role.kubernetes.io/master=:NoSchedule

    获取集群的基本信息
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl get deployment --all-namespaces
    kubectl get svc --all-namespaces
    kubectl get pod
    kubectl get pod -o wide --all-namespaces
    kubectl logs podName
    创建pod或srv
    kubectl create -f development.yaml
    检查将要运行的 Pod 的资源状况
    kubectl describe pod podName
    删除 Pod
    kubectl delete pod podName
    pod有多少副本
    kubectl get rc
    扩展 Pod
    kubectl scale --replicas=3 rc podName
    删除
    kubectl delete deployment kubernetes-dashboard --namespace=kube-system
    kubectl delete svc kubernetes-dashboard --namespace=kube-system
    kubectl delete -f kubernetes-dashboard.yaml
    进入pod
    kubectl exec -ti podName /bin/bash


    命令表
    查看类命令:
    获取节点相应服务的信息 : kubectl get pods 按selector名来查找pod: kubectl get pod --selector name=redis
    查看集群信息: kubectl cluster-info
    查看各组件信息: kubectl -s http://localhost:8080 get componentstatuses 或 kubectl get cs
    查看pods所在的运行节点: kubectl gkubectl get pods -o yamlet pods -o wide
    查看pods定义的详细信息: kubectl get pods -o yaml
    查看运行pod的环境变量: kubectl exec pod名 env
    查看指定pod的日志: kubectl logs -f pods/heapster-xxxxx -n kube-system

    操作类命令:
    创建资源: kubectl apply -f 文件名.yaml kubectl create -f 文件名.yaml
    重建资源: kubectl replace -f 文件名 [--force]
    删除资源: kubectl delete -f 文件名、kubectl delete pod pod名、kubectl delete rc rc名、kubectl delete service service名

    kubectl进阶命令操作
    kubectl get:获取指定资源的基本信息 kubectl get services kubernetes-dashboard -n kube-system #查看所有service
    kubectl get deployment kubernetes-dashboard -n kube-system #查看所有发布
    kubectl get pods --all-namespaces #查看所有pod
    kubectl get pods -o wide --all-namespaces #查看所有pod的IP及节点
    kubectl get pods -n kube-system | grep dashboard
    kubectl get nodes -l zone #获取zone的节点
    kubectl describe:查看指定资源详细描述信息 kubectl describe service/kubernetes-dashboard --namespace="kube-system"
    kubectl describe pods/kubernetes-dashboard-349859023-g6q8c --namespace="kube-system" #指定类型查看
    kubectl describe pod nginx-772ai #查看pod详细信息
    kubectl scale:动态伸缩 kubectl scale rc nginx --replicas=5 # 动态伸缩
    kubectl scale deployment redis-slave --replicas=5 #动态伸缩
    kubectl scale --replicas=2 -f redis-slave-deployment.yaml #动态伸缩
    kubectl exec:进入pod启动的容器 kubectl exec -it redis-master-1033017107-q47hh /bin/bash #进入容器

    kubectl label:添加label值 kubectl label nodes node1 zone=north #增加节点lable值 spec.nodeSelector: zone: north #指定pod在哪个节点
    kubectl label pod redis-master-1033017107-q47hh role=master #增加lable值 [key]=[value]
    kubectl label pod redis-master-1033017107-q47hh role- #删除lable值
    kubectl label pod redis-master-1033017107-q47hh role=backend --overwrite #修改lable值

    kubectl rolling-update:滚动升级 kubectl rolling-update redis-master -f redis-master-controller-v2.yaml #配置文件滚动升级
    kubectl rolling-update redis-master --image=redis-master:2.0 #命令升级
    kubectl rolling-update redis-master --image=redis-master:1.0 --rollback #pod版本回滚
    etcdctl 常用操作
    etcdctl cluster-health #检查网络集群健康状态
    etcdctl --endpoints=https://192.168.71.221:2379 cluster-health #带有安全认证检查网络集群健康状态
    etcdctl member list
    etcdctl set /k8s/network/config '{ "Network": "10.1.0.0/16" }'
    etcdctl get /k8s/network/config

  • 相关阅读:
    poj 1269(两条直线交点)
    poj 2398(叉积判断点在线段的哪一侧)
    poj 2318(叉积判断点在线段的哪一侧)
    HDU 5650 so easy
    POJ 1328 Radar Installation
    POJ 1017 Packets
    POJ 3190 Stall Reservations
    CodeForces 652A Gabriel and Caterpillar
    CodeForces 652B z-sort
    CodeForces 652C Foe Pairs
  • 原文地址:https://www.cnblogs.com/ltyc/p/14111242.html
Copyright © 2020-2023  润新知