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