K8s Kubectl集群管理工具使用技巧
kubectl是Kubernetes命令行管理工具,可以使用它部署、查看和管理集群所有資源。
作為一名K8s運維工程師,必須要熟悉它,下面總結(jié)一些kubectl常用的命令示例,供大家練習~
創(chuàng)建資源
創(chuàng)建命名空間:使用?
kubectl create namespace
?命令可以創(chuàng)建新的命名空間。
kubectl create?namespace?my-namespace
使用
kubectl apply
命令創(chuàng)建資源對象:使用
kubectl apply
命令可以從配置文件中創(chuàng)建或更新資源對象。
kubectl?apply?-f?my-pod.yaml
kubectl?apply?-f?my-deployment.yaml
kubectl?apply?-f?my-service.yaml
使用
kubectl create
命令創(chuàng)建資源對象:使用
kubectl create
命令可以通過命令行參數(shù)直接創(chuàng)建資源對象。
kubectl create?pod my-pod --image=my-image
kubectl create?deployment my-deployment --image=my-image
kubectl create?service my-service --port=8080 --target-port=80
從模板生成資源對象:使用
kubectl create
命令結(jié)合
--dry-run=client -o yaml
選項可以從模板生成資源對象的配置文件,并進行進一步修改或保存。
kubectl create?pod my-pod --image=my-image --dry-run=client -o yaml > my-pod.yaml
kubectl create?deployment my-deployment --image=my-image --dry-run=client -o yaml > my-deployment.yaml
kubectl create?service my-service --port=8080 --target-port=80 --dry-run=client -o yaml > my-service.yaml
查看資源
查看所有資源對象:使用
kubectl get
命令可以列出當前命名空間中的所有資源對象。
kubectl get?all
查看特定類型的資源:
kubectl get?pods
kubectl get?deployments
kubectl get?services
查看所有命名空間中的資源:使用
--all-namespaces
選項可以列出所有命名空間中的資源對象。
kubectl get?all?--all-namespaces
使用標簽過濾資源:使用
-l
選項可以根據(jù)標簽過濾資源對象。
kubectl get?pods -l?app=my-app
kubectl get?deployments -l?environment=production
顯示資源詳細信息:使用
-o yaml
或
-o json
選項可以獲取資源對象的詳細信息,以YAML或JSON格式顯示。
kubectl get?pods ?-o?yaml
kubectl get?services ?-o?json
查看資源的事件日志:使用
kubectl describe
命令可以查看資源對象的事件日志,包括創(chuàng)建、更新和刪除等操作的詳細信息。
kubectl describe?pod name>
kubectl describe?service name>
使用字段選擇器顯示特定字段:使用
-o custom-columns
選項可以選擇要顯示的特定字段,并按自定義列格式輸出。
kubectl get?pods -o?custom-columns=NAME:.metadata.name,STATUS:.status.phase
kubectl get?services -o?custom-columns=NAME:.metadata.name,TYPE:.spec.type
修改資源
使用
kubectl edit
命令進行交互式編輯:使用
kubectl edit
命令可以在默認編輯器中打開指定資源對象的配置,并進行交互式編輯。
kubectl edit?pods
kubectl edit?deployments
kubectl edit?services
直接修改原有YAML文件:使用文本編輯器編輯資源對象的YAML配置文件,并使用
kubectl apply -f
?命令指定配置文件將更新應(yīng)用到集群中。
kubectl?apply?-f?my-pod.yaml
kubectl?apply?-f?my-deployment.yaml
kubectl?apply?-f?my-service.yaml
使用
kubectl patch
命令進行部分更新:使用
kubectl patch
命令可以對資源對象進行部分更新,而不必修改整個配置文件。
kubectl patch pods ?--patch '{"spec": {"containers": [{"name": "my-container", "image": "new-image"}]}}'
kubectl patch deployments ?--patch '{"spec": {"replicas": 3}}'
kubectl patch services ?--patch '{"spec": {"type": "LoadBalancer"}}'
使用標簽選擇器批量修改資源:使用
kubectl label
命令可以使用標簽選擇器批量修改符合條件的資源對象的標簽。
kubectl label pods -l app=my-app new-label=value
kubectl label deployments -l environment=production new-label=value
使用
kubectl annotate
命令添加注釋:使用
kubectl annotate
命令可以為資源對象添加注釋信息。
kubectl annotate pods ?description="www.aliangedu.cn"
kubectl annotate services ?owner="www.aliangedu.cn"
刪除資源
刪除指定類型的資源:使用
kubectl delete
命令可以刪除指定類型的資源對象。
kubectl delete?pods name>
kubectl delete?deployments name>
kubectl delete?services name>
刪除所有資源對象:使用
--all
選項可以刪除當前命名空間中的所有資源對象。
kubectl delete?all?--all
刪除特定命名空間中的資源:使用
-n
選項可以刪除指定命名空間中的資源對象。
kubectl delete?pods -n
kubectl delete?deployments -n
kubectl delete?services -n
刪除符合標簽選擇器條件的資源:使用
-l
選項可以根據(jù)標簽選擇器刪除符合條件的資源對象。
kubectl delete?pods -l app=my-app
kubectl delete?deployments -l environment=production
批量刪除資源對象:使用
--filename
或
-f
選項可以從配置文件中批量刪除資源對象。
kubectl delete?-f my-pods.yaml
kubectl delete?-f my-deployments.yaml
kubectl delete?-f my-services.yaml
刪除命名空間:使用
kubectl delete namespace
命令可以刪除指定的命名空間及其所有相關(guān)資源對象。
kubectl delete?namespace?<namespace>
請注意,刪除操作是不可逆的,并且會立即刪除資源對象。在刪除資源對象之前,請確保你了解刪除操作的影響,并謹慎操作。
- END -
?
推薦閱讀?
原來懂Kubernetes,找工作這么吃香!?K8S 常用資源 YAML 詳解
DevOps與CI/CD常見面試問題匯總
我會在Docker容器中抓包了!
Ansible 批量100臺服務(wù)器添加 Crontab
19 個 K8S集群常見問題總結(jié),建議收藏
運維高可用架構(gòu)的 6 大常規(guī)方案
運維監(jiān)控指標全方面總結(jié)
9 個實用 Shell 腳本,建議收藏!
詳解 K8S Helm CI/CD發(fā)布流程
ES+Redis+MySQL,這套高可用架構(gòu)設(shè)計太頂了!
一臺服務(wù)器最大能支持多少條TCP連接?
K8S運維必知必會的 Kubectl 命令總結(jié)
16 張圖硬核講解 Kubernetes 網(wǎng)絡(luò)
史上最全 Jenkins Pipeline流水線詳解
Jenkins 自動化部署實例講解,另附安裝教程!
主流監(jiān)控系統(tǒng) Prometheus 學習指南
搭建一套完整的企業(yè)級 K8s 集群(二進制方式)
40個 Nginx 常問面試題
Linux運維工程師 50個常見面試題
點亮,服務(wù)器三年不宕機
