2025年kubectl 命令(kubectl命令)

kubectl 命令(kubectl命令)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> <p></p> 

讯享网

简介

该文章详细对kubect命令行的参数进行讲解,并将api-resource的信息整理成列表,方便查看,同时通过一系列的实践操作的命令来进行举例,便于更深刻的了解和掌握该命令的用法。

一.命令帮助翻译

查看帮助信息:kubectl控制Kubernetes集群管理器。更多信息,请访问:https://kubernetes.io/docs/reference/kubectl/

1.1.基本命令(初学者):
  • create: 从文件或stdin创建资源
  • expose: 获取复制控制器、服务、部署或pod,并将其作为新的Kubernetes服务公开
  • run: 在群集上运行特定映像
  • set: 设置对象的特定功能
1.2.基本命令(中级):
  • explain: 获取资源的文档
  • get: 显示一个或多个资源
  • edit: 编辑服务器上的资源
  • delete: 按文件名、stdin、资源和名称或按资源和标签选择器删除资源
1.3.部署命令:
  • rollout: 管理资源的滚动发布
  • scale: 为部署、复制副本集或复制控制器设置新的大小
  • autoscale: 自动缩放部署、副本集、有状态集或复制控制器
1.4.群集管理命令:
  • certificate: 修改证书资源
  • cluster-info: 显示集群信息
  • top: 显示资源(CPU/内存)使用情况
  • cordon: 将节点标记为不可调度
  • uncordon: 将节点标记为可调度
  • drain: 排水节点为维护做准备
  • taint: 更新一个或多个节点上的污点
1.5.疑难解答和调试命令:
  • description显示特定资源或资源组的详细信息
  • logs打印pod中容器的日志
  • attach: 附加到正在运行的容器
  • exec: 在容器中执行命令
  • port-forward: 将一个或多个本地端口转发到一个pod
  • proxy: 运行到Kubernetes API服务器的代理
  • cp: 将文件和目录复制到容器和从容器复制文件和目录
  • auth: 检查授权
  • debug: 创建调试会话以排除工作负载和节点的故障
  • events: 列出事件
1.6.高级命令:
  • diff: 将实时版本与潜在的应用版本进行区分
  • apply: 按文件名或stdin将配置应用于资源
  • patch: 更新资源的字段
  • replace: 用文件名或stdin替换资源
  • wait: 实验:在一个或多个资源上等待特定条件
  • kustomize: 从目录或URL构建kustomization目标
1.7.设置命令:
  • label: 更新资源上的标签
  • annotate: 更新资源上的注释
  • completion: 为指定的shell(bash、zsh、fish或powershell)输出shell完成代码
1.8.插件提供的子命令:
  • 1.28.5 命令1.28.5是用户安装的插件
1.9.其他命令:
  • api-resources: 在服务器上打印支持的api资源
  • api-versions: 以“组/版本”的形式打印服务器上支持的api版本
  • config: 修改kubeconfig文件
  • plugin: 提供与插件交互的实用程序
  • version: 打印客户端和服务器的版本信息
1.10.用法


有关给定命令的详细信息,请使用“kubectl<command>–help”。
使用“kubectl选项”作为全局命令行选项列表(适用于所有命令)。

二.资源列表

2.1.资源列表及简称

在这里插入图片描述
讯享网

2.2.配置kubectl自动补全

三.命令操作实践

3.1.创建资源

dd

  • 创建命名空间:
  • 创建deployment:
  • 创建service:
  • 创建pod:
  • 创建cronjob: 创建一个cronjob,并且每分钟执行一次命令date:
  • 创建serviceAccount:
  • 创建configmap: 将某个目录创建configmap, ,按照key=value的形式创建configmap:
  • 创建集群角色绑定:
  • 创建集群角色:
  • 创建角色:

  • 创建角色绑定:
  • 创建ingress:

创建一个ingress并配置注解: ingress.annotation1 和 ingress.annotations2

讯享网

创建一个ingress,指定同一个域名,多个路径

 

创建一个ingress,指定多个域名和多个路径

讯享网

创建ingress,启用证书,并指定跟路径访问svc:8080

 

创建一个ingress,用默认的后端

讯享网
  • 通过yaml文件创建:
3.2.查看资源

获取列表用法:

  • 获取节点列表:,详细列表:,显示标签可以加上:
  • 获取namespace列表:
  • 获取所有deploy列表:,详细列表:,指定命名空间获取:
  • 获取所有statefulset列表:,详细列表:,指定命名空间获取:
  • 获取所有daemonset列表:,详细列表:
  • 获取所有service列表:,详细列表:,指定命名空间获取:
  • 获取所有configmap列表:,详细列表:,指定命名空间获取:
  • 获取所有pod列表:,详细列表:,指定命名空间获取:
  • 获取所有secret列表:,详细列表:,指定命名空间获取:

获取某个资源用法:

  • 获取命名为test-app的deployment的:,如果不指定命名空间-n test-ns,则默认读取default命名空间下的资源。-o yaml则是将资源的信息以yaml文件格式显示。
  • 获取命名为test-pod的pod的:,如果不指定命名空间-n test-ns,则默认读取default命名空间下的资源。-o yaml则是将资源的信息以yaml文件格式显示。
  • svc,pod,configmap,statefulset,secret等资源均可以通过以上命令以yaml文件格式查看,只需要变更过资源类型和名称。

高级用法:

  • 通过标签过滤
    ,操作符: = 或者 !=
  • 只查看特定的某项值
  • 自定义列出资源信息
  • 同时列出所有命名空间中的多个资源信息
  • 通过类型或名称列出一个或者多个资源
  • List the ‘status’ subresource for a single pod
3.3.编辑资源配置文件

edit 可以编辑多种资源,其他资源的yaml配置编辑,可以参考下边的命令,只需要修改资源类型和资源的名称,以及命名空间。

  • 编辑 deployment 的yaml配置:
  • 编辑 cronjob 的yaml配置:
  • 编辑 configmap 的yaml配置:
3.4.删除资源

3.5.标签操作

节点、资源deployment、service、pod等资源均可以按照如下命令进行标签操作

  • 增加标签:,给节点增加一个标签name=value
  • 查询标签:,通过指定标签name=value来查询对应的节点
  • 删除标签:,在标签名称后边加一个减号即可删除标签
  • 修改标签:,加上–overwrite 即可修改标签的值
3.6.回滚操作
3.7.set修改资源

参数解释

  • env: 更新pod模板上的环境变量
  • image: 更新pod的镜像
  • resources: 更新pod对象的cpu和内存资源请求/限制
  • selector: 在资源上设置选择器
  • serviceaccount: 更新资源的服务帐户
  • subject: 更新角色绑定或群集角色绑定中的用户、组或服务帐户

限制内存和cpu

  • 将deployment的nginx的pod容器 nginx 的 cpu限制为200毫核,将内存设置为512M
  • 设置所deployment nginx的 Requests和Limits
  • 删除所deployment nginx中容器的资源限制

修改镜像:

  • 将deployment nginx更新为1.15版本

更新集群绑定:

  • 更新RoleBinding的user1,user2和group1
3.8.扩缩容
3.9.debug日志分析

describe,logs,explain,exec,cp

  • 在容器内执行命令“cat /etc/os-release”:
  • 查看特定资源的描述信息:,,其他资源类型也可以参照此命令
  • 查看pod的日志:,查看最近20行:,滚动查看:
  • 拷贝文件到容器的root目录下: ,从容器拷贝文件到本地:,.表示当前目录,如果是要重命名文件则将点改成test1.txt
  • 描述各种资源的结构,例如:,相当于对各种资源进行讲解的帮助文档
3.10.查看内存及cpu使用率

查看pod和节点的内存和cpu资源,需要k8s集群安装metric-server才能查看。

  • 查看节点cpu和内存:
  • 查看pod的cpu和内存: ,需要制定命名空间查看,否则默认查看default空间
3.11.集群及节点操作
  • 查看集群信息:
  • 查看master状态:
  • 将节点标记为不可调度:
  • 将节点标记为可调度:
  • 排水节点为维护做准备:
  • 搭建k8s集群时添加worker节点:,节点的证书名称可以通过: 获取
  • 为gpu资源的节点创建一个gpu污点:
    然后创建一个需要gpu资源的pod,这样这个pod就会被调度到gpu的节点上,其他的pod不会调度到此节点
 

小讯
上一篇 2025-05-13 17:55
下一篇 2025-05-27 12:55

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161450.html