当前位置: 代码迷 >> 综合 >> kubetlet 常用命令
  详细解决方案

kubetlet 常用命令

热度:33   发布时间:2023-10-10 13:49:09.0
  1. 查看service、pod、replication

    kubectl get service -o wide 现在改信息在哪个节点
    kubectl get svc kubectl get
    pod -o yaml | json 以yaml或者json格式输出

  2. 修改副本集数量

    kubectl scale rc RC-NAME –replicas=N

  3. 获取namespace 信息

    kubectl get namespace

  4. 还可以使用”-o=custom-columns=“定义直接获取指定内容的值

    kubectl get po RC-name -o=customcolumns=LABELS:.metadata.labels.app

    可以获取metadata中的labels中的app的值,其中LABELS为显示的列标题,”.metadata.labels.app”为查询的域名

  5. replace 不可修改label
    命令用于对已有资源进行更新、替换。如前面create中创建的nginx,当我们需要更新resource的一些属性的时候,如果修改副本数量,增加、修改label,更改image版本,修改端口等。都可以直接修改原yaml文件,然后执行replace命令。

    kubectl replace -f RC.yaml

  6. patch 可修改label修改正在运行的容器的属性
    在运行过程中,需要把其label改为app=nginx,这patch命令如下:

    kubectl patch pod rc.yaml -p ‘{“metadata”:{“labels”:{“app”:”nginx”}}}’

  7. edit提供了另一种更新resource源的操作,通过edit能够灵活的在一个common的resource基础上,发展出更过的significant resource。例如,使用edit直接更新前面创建的pod的命令为:

    kubectl edit po POD

    执行后会以vi的方式打开一个yaml文档 可以手动修改,保存之后相当于更新该pod

  8. rolling-update
    rolling-update是一个非常重要的命令,对于已经部署并且正在运行的业务,rolling-update提供了不中断业务的更新方式。rolling-update每次起一个新的pod,等新pod完全起来后删除一个旧的pod,然后再起一个新的pod替换旧的pod,直到替换掉所有的pod。
    rolling-update需要确保新的版本有不同的name,Version和label,否则会报错

    kubectl rolling-update RC -f rc-nginx.yaml
    如果在升级过程中,发现有问题还可以中途停止update,并回滚到前面版本
    kubectl rolling-update RC –rollback

  9. autoscale命令提供了自动根据pod负载对其副本进行扩缩的功能。
    下面的命令会使该pod的容器根绝负载在1~4浮动

    kubectl autoscale rc RC.yaml –min=1 –max=4

  10. cordon cordon 命令可以将一个节点标记为不可调度,就是新创建的pod不会部署在该节点上 kubectl cordon node1
    drain drain 命令可以将节点上的pod 平滑的移动到其他的节点上 kubectl drain node1
    uncordon uncordon 可以解锁被cordon的节点 kubectl uncordon node1

  11. attach命令类似于docker的attach命令,可以直接查看容器中以daemon形式运行的进程的输出,一个pod中有多个容器,要查看具体的某个容器的的输出,需要在pod名后使用-c containers name指定运行的容器

    kubectl attach pod kube-dns-3913472980-tp2bz -c kubedns -n kube-system