当前位置: 首页 > news >正文

Kubernetes(k8s)

Kubernetes(k8s)的命令行工具 kubectl 是管理集群的核心工具,以下是日常运维和开发中最常用的命令,按功能分类整理:

一、集群与节点管理

查看集群基本信息、节点状态等。

# 查看集群信息(API Server地址、集群名称等)
kubectl cluster-info# 查看所有节点状态(就绪状态、资源使用率等)
kubectl get nodes# 查看节点详细信息(资源分配、标签、污点等)
kubectl describe node <节点名称>  # 例:kubectl describe node node-1# 给节点打标签(用于调度筛选)
kubectl label nodes <节点名称> <标签键>=<标签值>  # 例:kubectl label nodes node-1 env=prod# 给节点添加污点(阻止Pod调度到该节点,除非Pod有对应容忍)
kubectl taint nodes <节点名称> <污点键>=<污点值>:<effect>  # 例:kubectl taint nodes node-1 key=value:NoSchedule

二、命名空间(Namespace)管理

命名空间用于隔离集群资源(如开发、测试、生产环境分离)。

# 查看所有命名空间
kubectl get namespaces(或 kubectl get ns)# 创建命名空间
kubectl create namespace <命名空间名称>  # 例:kubectl create ns dev# 切换默认命名空间(后续命令默认操作该命名空间)
kubectl config set-context --current --namespace=<命名空间名称># 删除命名空间(会删除该命名空间下所有资源,谨慎操作)
kubectl delete namespace <命名空间名称>

三、Pod 管理

Pod 是 k8s 最小部署单元,包含一个或多个容器。

# 查看当前命名空间的Pod(默认default)
kubectl get pods(或 kubectl get po)# 查看指定命名空间的Pod
kubectl get pods -n <命名空间名称>  # 例:kubectl get po -n dev# 查看Pod详细信息(容器状态、挂载、事件等)
kubectl describe pod <Pod名称> -n <命名空间>  # 例:kubectl describe po myapp-8f9x2 -n dev# 查看Pod日志(实时日志加 -f 参数)
kubectl logs <Pod名称> -n <命名空间>  # 例:kubectl logs myapp-8f9x2 -n dev
kubectl logs -f <Pod名称> -n <命名空间>  # 实时跟踪日志# 进入Pod中的容器(若Pod有多个容器,需用 -c 指定容器名)
kubectl exec -it <Pod名称> -n <命名空间> -- /bin/bash  # 例:kubectl exec -it myapp-8f9x2 -n dev -- sh# 删除Pod(若由Deployment管理,会自动重建)
kubectl delete pod <Pod名称> -n <命名空间># 强制删除异常Pod(状态为Terminating时)
kubectl delete pod <Pod名称> -n <命名空间> --force --grace-period=0

四、Deployment 管理

Deployment 是最常用的控制器,用于管理 Pod 的创建、更新、扩缩容等。

# 查看当前命名空间的Deployment
kubectl get deployments(或 kubectl get deploy)# 查看指定命名空间的Deployment
kubectl get deploy -n <命名空间># 查看Deployment详细信息( replicas、更新策略、关联的Pod模板等)
kubectl describe deploy <Deployment名称> -n <命名空间># 创建/更新Deployment(通过yaml文件,推荐)
kubectl apply -f <yaml文件路径>  # 例:kubectl apply -f myapp-deploy.yaml# 直接创建Deployment(命令行方式,适合临时测试)
kubectl create deploy <名称> --image=<镜像地址> --replicas=<副本数>  # 例:kubectl create deploy myapp --image=nginx:1.21 --replicas=3# 扩缩容Deployment(调整副本数)
kubectl scale deploy <Deployment名称> --replicas=<目标副本数> -n <命名空间>  # 例:kubectl scale deploy myapp --replicas=5 -n dev# 滚动更新Deployment的镜像
kubectl set image deploy <Deployment名称> <容器名>=<新镜像> -n <命名空间>  # 例:kubectl set image deploy myapp nginx=nginx:1.23 -n dev# 查看Deployment更新历史
kubectl rollout history deploy <Deployment名称> -n <命名空间># 回滚到上一版本(或指定版本,加 --to-revision=<版本号>)
kubectl rollout undo deploy <Deployment名称> -n <命名空间># 删除Deployment(会删除关联的Pod和ReplicaSet)
kubectl delete deploy <Deployment名称> -n <命名空间>

五、Service 管理

Service 用于暴露 Pod 网络(提供固定访问入口,实现 Pod 动态扩缩容时的访问稳定性)。

# 查看当前命名空间的Service
kubectl get services(或 kubectl get svc)# 查看指定命名空间的Service
kubectl get svc -n <命名空间># 查看Service详细信息(关联的Pod标签、端口映射等)
kubectl describe svc <Service名称> -n <命名空间># 创建Service(通过yaml文件,推荐)
kubectl apply -f <service.yaml># 从Deployment暴露Service(自动关联Pod标签)
kubectl expose deploy <Deployment名称> --port=<服务端口> --target-port=<容器端口> --type=<类型> -n <命名空间>
# 例:kubectl expose deploy myapp --port=80 --target-port=80 --type=NodePort -n dev(NodePort类型允许外部通过节点IP:端口访问)# 删除Service
kubectl delete svc <Service名称> -n <命名空间>

六、配置与存储

ConfigMap(存储非敏感配置)
# 查看ConfigMap
kubectl get configmaps(或 kubectl get cm) -n <命名空间># 创建ConfigMap(从文件)
kubectl create configmap <名称> --from-file=<文件路径> -n <命名空间>  # 例:kubectl create cm app-config --from-file=app.properties -n dev# 创建ConfigMap(从键值对)
kubectl create configmap <名称> --from-literal=key1=value1 --from-literal=key2=value2 -n <命名空间># 删除ConfigMap
kubectl delete cm <名称> -n <命名空间>
Secret(存储敏感配置,如密码、证书,数据会base64编码)
# 查看Secret
kubectl get secrets -n <命名空间># 创建Secret(从文件)
kubectl create secret generic <名称> --from-file=<文件路径> -n <命名空间>  # 例:kubectl create secret generic db-pass --from-file=password.txt -n dev# 创建Secret(从键值对)
kubectl create secret generic <名称> --from-literal=username=admin --from-literal=password=123456 -n <命名空间># 查看Secret的实际内容(解码base64)
kubectl get secret <名称> -n <命名空间> -o jsonpath='{.data.<键名>}' | base64 -d# 删除Secret
kubectl delete secret <名称> -n <命名空间>

七、资源查看与调试

# 查看所有资源(Pod、Deployment、Service等)
kubectl get all -n <命名空间># 以yaml格式查看资源详情(用于调试配置)
kubectl get <资源类型> <资源名称> -n <命名空间> -o yaml  # 例:kubectl get deploy myapp -n dev -o yaml# 查看集群事件(排查Pod调度失败、镜像拉取失败等问题)
kubectl get events -n <命名空间>  # 按时间倒序:kubectl get events -n <命名空间> --sort-by='.lastTimestamp'# 查看节点/Pod的资源使用情况(需集群部署metrics-server)
kubectl top nodes  # 节点CPU、内存使用率
kubectl top pods -n <命名空间>  # Pod的CPU、内存使用率

八、其他常用命令

# 从yaml文件删除资源
kubectl delete -f <yaml文件路径># 查看资源的API文档(了解配置字段含义)
kubectl explain <资源类型>  # 例:kubectl explain deploy.spec  # 查看Deployment的spec字段说明# 临时运行一个Pod(用于测试,--rm表示退出后删除)
kubectl run <名称> --image=<镜像> --rm -it -- <命令>  # 例:kubectl run test --image=busybox --rm -it -- sh

以上命令覆盖了 k8s 日常操作的核心场景,实际使用时可通过 kubectl --helpkubectl <命令> --help 查看更详细的参数说明。

http://www.dtcms.com/a/581202.html

相关文章:

  • 如何提高 SaaS 产品的成功率?
  • ​技术融合新纪元:深度学习、大数据与云原生的跨界实践
  • 中国高分辨率单季稻种植分布数据集(2017-2023)
  • PDF工具箱/合并拆分pdf/提取图片
  • 如何在PDF文档中打钩?(福昕阅读器)打√
  • 新手怎么样学做网站企业网站建设规划的基本原则是什么
  • 【DIY】PCB练习记录2——51单片机核心板
  • Spring Boot 2.7.18(最终 2.x 系列版本)3 - 枚举规范定义:定义基础枚举接口;定义枚举工具类;示例枚举
  • aspnet东莞网站建设多少钱frontpage怎样做网站
  • uniapp 使用renderjs 封装 video-player 视频播放器, html5视频播放器-解决视频层级、覆盖、播放卡顿
  • 基于深度对比学习的分析化学结构注释TOP1匹配率提升研究
  • MFA MACOS 安装流程
  • Ubuntu 上部署 Microsoft SQL Server 详细教程
  • 网站上面怎么做链接微信网站合同
  • 关于网站建设与维护的参考文献phpcms 恢复网站
  • 圆角边框+阴影
  • Android14 init.environ.rc详解
  • 网段并网,打通网络
  • VBA之Word应用第四章第四节:段落集合Paragraphs对象的方法(二)
  • 深耕蓝牙物联网十年:北京桂花网 2015-2025 发展大事件全景
  • MCU微控制器,N32H47x高性能MCU机器人关节控制方案
  • 年销 1.3 亿的 AI 商业操盘手陈灏陈厂长确认登陆创客匠人万人峰会
  • 用户体验 网站重庆便民服务网站APP
  • 教育类网站建站建筑工程网格化管理的目的和意义
  • Flink Source源码解析
  • 春招准备之MyBatis框架篇
  • 华为交换机上配置基于 IP 地址的 ACL
  • 【C++练习】31. C++计算最大公约数(GCD)
  • 从普通屏到 明基RD320U:一台显示器如何提升我的编码效率?
  • 从 ACID 到 MVCC,MySQL 事务与隔离级别超详解