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

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐