大香蕉網(wǎng)站人人做百度流量推廣項目
k8s常用命令及示例(三):apply 、edit、delete
1. kubectl apply -f 命令:從yaml文件中創(chuàng)建資源對象。
-f 參數(shù)為強制執(zhí)行。kubectl apply和kubectl create的區(qū)別如下:kubectl create 和 kubectl apply 是 Kubernetes 中兩個常用的命令,它們用于創(chuàng)建和更新資源。
kubectl create 用于創(chuàng)建一個新的資源,如果該資源已經(jīng)存在,則會返回錯誤。
kubectl apply 用于創(chuàng)建或更新一個資源,如果該資源不存在,則會創(chuàng)建;如果該資源已存在,則會對其進行更新。
因此,如果想要創(chuàng)建一個新的資源,可以使用 kubectl create;如果想要更新已有的資源,可以使用 kubectl apply。
建議掌握kubectl apply -f 命令,了解kubectl create命令和kubectl apply的區(qū)別就行,平時操作c。
示例:使用kubectl create -f命令,如下資源已經(jīng)存在,則報錯
kubectl create -f helloworld.yaml
提示錯誤,要創(chuàng)建的資源已經(jīng)存在
使用kubectl apply -f命令,
kubectl apply -f helloworld.yaml
執(zhí)行成功,資源沒有發(fā)送任何改變。
編輯 helloworld.yaml文件,更改version字段value為v2及對應的鏡像名稱
apiVersion: apps/v1
kind: Deployment
metadata:name: helloworld-v1labels:app: helloworldversion: v2
spec:replicas: 1selector:matchLabels:app: helloworldversion: v2template:metadata:labels:app: helloworldversion: v2spec:containers:- name: helloworldimage: docker.io/istio/examples-helloworld-v2resources:requests:cpu: "100m"imagePullPolicy: IfNotPresent #Alwaysports:- containerPort: 5000
kubectl create -f 命令依然會執(zhí)行失敗,kubectl apply -f命令則會更新其鏡像
2. kubectl delete-f 命令:刪除資源對象,例如Pod、Service、Deployment甚至是node等。
此命令比較危險,操作前務必謹慎,先確認后執(zhí)行。
如果刪除的是POD,刪除后,k8s依然會自動再次創(chuàng)建。
如果是node資源,可能會導致整個k8s集群崩潰,比如只有一個master節(jié)點的集群,給master節(jié)點刪除了。
示例:
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