k8s常用命令及示例(三):apply 、edit、delete

本文详细介绍了Kubernetes中的kubectlapply、edit和delete命令,包括它们的用法、区别以及示例。apply用于创建或更新资源,edit用于编辑资源配置,delete-f用于删除资源需谨慎,特别是对Pod和Node的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

k8s常用命令及示例(三):apply 、edit、delete

1. kubectl apply -f 命令:从yaml文件中创建资源对象。

-f 参数为强制执行。kubectl apply和kubectl create的区别如下:kubectl create 和 kubectl apply 是 Kubernetes 中两个常用的命令,它们用于创建和更新资源。
kubectl create 用于创建一个新的资源,如果该资源已经存在,则会返回错误。
kubectl apply 用于创建或更新一个资源,如果该资源不存在,则会创建;如果该资源已存在,则会对其进行更新。
因此,如果想要创建一个新的资源,可以使用 kubectl create;如果想要更新已有的资源,可以使用 kubectl apply。
建议掌握kubectl apply -f 命令,了解kubectl create命令和kubectl apply的区别就行,平时操作c。

示例:使用kubectl create -f命令,如下资源已经存在,则报错

kubectl create -f helloworld.yaml

在这里插入图片描述
提示错误,要创建的资源已经存在
使用kubectl apply -f命令,

kubectl apply -f helloworld.yaml

在这里插入图片描述
执行成功,资源没有发送任何改变。

编辑 helloworld.yaml文件,更改version字段value为v2及对应的镜像名称

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloworld-v1
  labels:
    app: helloworld
    version: v2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: helloworld
      version: v2
  template:
    metadata:
      labels:
        app: helloworld
        version: v2
    spec:
      containers:
      - name: helloworld
        image: docker.io/istio/examples-helloworld-v2
        resources:
          requests:
            cpu: "100m"
        imagePullPolicy: IfNotPresent #Always
        ports:
        - containerPort: 5000                             

kubectl create -f 命令依然会执行失败,kubectl apply -f命令则会更新其镜像

2. kubectl delete-f 命令:删除资源对象,例如Pod、Service、Deployment甚至是node等。

此命令比较危险,操作前务必谨慎,先确认后执行。

如果删除的是POD,删除后,k8s依然会自动再次创建。
如果是node资源,可能会导致整个k8s集群崩溃,比如只有一个master节点的集群,给master节点删除了。

示例:

kubectl delete -f helloworld.yaml

在这里插入图片描述

3. kubectl edit:编辑资源的配置信息,例如Pod、Service、Deployment等。

示例:

kubectl edit deploy helloworld-v1

和使用vi 打开yaml文件类似,改好以后,按esc键,输入 :wq保存,如果有改动,比如更换镜像,则会自动重新启动pod,可通过kubectl get pod -n default -w 实时查看pod的生命周期变动。

上一篇:k8s常用命令及示例(二):logs、describe

<think>好的,我现在需要回答用户关于Kubernetes常用命令列表的请求。首先,我要确认用户的具体需求是什么。用户提到“常用命令”,可能希望得到一个分类清晰的列表,方便日常操作。根据用户提供的引用资料,我需要整合引用中的信息,同时补充其他常用命令,确保内容全面且结构合理。 首先,我需要回顾系统级指令。用户要求所有行内数学表达式用$...$,但这里不涉及数学公式,可能不需要处理。独立公式需要$$...$$,但同样不适用。确保LaTeX语法正确,但这里主要处理命令列表,可能用代码块展示命令。使用中文回答,生成相关问题,并在引用处添加标识。 用户给出的个引用中,引用1列举了apply、get pods、describe pod等命令;引用2提到了集群管理、kubectl的作用、查看版本;引用3补充了delete和rollout restart。我需要将这些信息整合到不同的分类中,比如资源管理、部署操作、故障排查等。 接下来,我需要确定回答的结构。通常,Kubernetes命令可以按功能分类,比如基础操作、资源管理、调试排错、配置管理、扩展命令等。每个类别下列举常用命令示例,参考引用中的例子,如kubectl applykubectl get,kubectl describe等。同时,需要补充其他常用命令如logs、exec、edit等,这些在引用中没有提到,但属于常用范畴,可能需要根据我的知识添加,但要确保准确性。 需要注意引用标识的正确位置。例如,在提到apply命令时,引用1和引用2都有相关内容,可能需要合并引用标识。但根据示例,引用标识应放在相关段落末尾。例如,在描述查看pod详细信息时,引用1中的命令,所以在该句末尾添加[^1]。 然后,检查每个命令的正确性,确保语法正确。例如,kubectl get pods -n namespace是否正确,是否需要解释命名空间参数。考虑到用户可能需要基本用法,加上示例会更有帮助,如使用-n指定命名空间。 另外,用户可能对命令的用途不太清楚,所以每个命令需要简要说明用途。例如,kubectl describe用于查看资源详细信息,kubectl logs查看容器日志等。 生成相关问题部分,需要根据回答内容提出,可能涉及命令分类、具体使用场景、如何排错、如何管理资源等。例如,如何查看Pod日志?如何更新资源?如何删除部署? 最后,确保回答结构清晰,分点列出,使用代码块包裹命令,引用标识正确,并且语言简洁明了。需要避免直接复制引用内容,而是整合并结构化呈现,同时补充必要的信息,使回答更全面有用。</think>以下是Kubernetes常用命令的分类整理,基于实际运维场景整理[^2][^3]: ### 一、基础资源操作 ```bash # 查看集群版本 kubectl version # 查看节点状态 kubectl get nodes # 查看所有命名空间的Pod kubectl get pods --all-namespaces ``` ### 二、部署管理 ```bash # 创建/更新资源(YAML文件部署) kubectl apply -f deployment.yml # 查看部署状态 kubectl get deployment -n [命名空间] # 重启部署(触发滚动更新) kubectl rollout restart deployment/[部署名称] -n [命名空间][^3] ``` ### 、故障排查 ```bash # 查看Pod详细信息(含事件日志) kubectl describe pod [pod名称] -n [命名空间][^1] # 查看容器日志(实时) kubectl logs -f [pod名称] -c [容器名称] # 进入容器终端 kubectl exec -it [pod名称] -- /bin/bash ``` ### 四、资源管理 ```bash # 删除资源 kubectl delete -f config.yml # 通过配置文件删除 kubectl delete pod [pod名称] # 直接删除资源[^3] # 编辑资源配置(实时生效) kubectl edit deployment/[部署名称] ``` ### 五、服务管理 ```bash # 查看服务暴露端口 kubectl get svc -n [命名空间] # 端口转发调试 kubectl port-forward svc/[服务名称] 8080:80 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值