亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

高效管理Kubernetes集群的實(shí)用技巧

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 2025-08-13 15:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為一名經(jīng)驗(yàn)豐富的運(yùn)維工程師,我深知在日常的Kubernetes集群管理中,熟練掌握kubectl命令是提升工作效率的關(guān)鍵。今天,我將分享15個經(jīng)過實(shí)戰(zhàn)檢驗(yàn)的kubectl實(shí)用技巧,幫助你像藝術(shù)家一樣優(yōu)雅地管理K8s集群。

1. 智能資源簡寫,告別冗長命令

忘記那些冗長的資源名稱吧!kubectl支持資源簡寫,讓你的命令更加簡潔:

# 傳統(tǒng)方式
kubectl get deployments
kubectl get services
kubectl get persistentvolumes

# 優(yōu)雅簡寫
kubectl get deploy
kubectl get svc 
kubectl get pv

專家提示:使用kubectl api-resources查看所有可用的簡寫形式。

2. 上下文切換的藝術(shù)

管理多集群環(huán)境時,頻繁切換上下文是家常便飯。掌握這些技巧讓切換變得絲般順滑:

# 查看所有可用上下文
kubectl config get-contexts

# 快速切換上下文
kubectl config use-context production

# 臨時使用特定上下文執(zhí)行命令
kubectl --context=staging get pods

# 設(shè)置默認(rèn)命名空間
kubectl config set-context --current --namespace=monitoring

3. 強(qiáng)大的標(biāo)簽選擇器

標(biāo)簽選擇器是Kubernetes的靈魂,掌握復(fù)雜查詢能讓你快速定位資源:

# 基礎(chǔ)標(biāo)簽查詢
kubectl get pods -l app=nginx

# 多標(biāo)簽組合查詢
kubectl get pods -l'environment in (production,staging)'
kubectl get pods -l'version!=v1.0'

# 查詢沒有特定標(biāo)簽的資源
kubectl get pods -l'!debug'

# 在所有命名空間中按標(biāo)簽查詢
kubectl get pods --all-namespaces -l tier=frontend

4. 實(shí)時監(jiān)控資源變化

運(yùn)維工作中,實(shí)時監(jiān)控資源狀態(tài)變化至關(guān)重要:

# 實(shí)時監(jiān)控Pod狀態(tài)
kubectl get pods --watch

# 監(jiān)控特定資源的詳細(xì)變化
kubectl get events --watch --field-selector involvedObject.name=my-pod

# 持續(xù)監(jiān)控多種資源
kubectl get pods,svc --watch

5. 高效的日志管理

日志分析是故障排查的核心技能:

# 查看容器日志(最近1小時)
kubectl logs my-pod --since=1h

# 實(shí)時跟蹤日志
kubectl logs -f my-pod

# 多容器Pod中指定容器
kubectl logs my-pod -c nginx

# 查看崩潰前的日志
kubectl logs my-pod --previous

# 查看多個Pod的日志
kubectl logs -l app=nginx --prefix=true

6. 強(qiáng)大的字段選擇器

字段選擇器讓你能夠基于資源字段進(jìn)行精確查詢:

# 查詢特定狀態(tài)的Pod
kubectl get pods --field-selector=status.phase=Running

# 查詢特定節(jié)點(diǎn)上的Pod
kubectl get pods --field-selector=spec.nodeName=worker-node-1

# 查詢失敗的Job
kubectl getjobs--field-selector=status.successful=0

# 組合字段選擇器
kubectl get events --field-selector=involvedObject.kind=Pod,reason=Failed

7. 自定義輸出格式

掌握輸出格式控制,讓信息展示更符合需求:

# 寬格式輸出,顯示更多信息
kubectl get pods -o wide

# JSON格式輸出
kubectl get pod my-pod -o json

# YAML格式輸出
kubectl get pod my-pod -o yaml

# 自定義列輸出
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName

# 僅顯示資源名稱
kubectl get pods -o name

8. JSONPath的高級應(yīng)用

JSONPath讓你能夠精確提取所需信息:

# 提取Pod的容器鏡像
kubectl get pods -o jsonpath='{.items[*].spec.containers[*].image}'

# 獲取節(jié)點(diǎn)的可分配資源
kubectl get nodes -o jsonpath='{.items[*].status.allocatable.cpu}'

# 復(fù)雜嵌套數(shù)據(jù)提取
kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"	"}{.status.phase}{"
"}{end}'

# 條件過濾
kubectl get pods -o jsonpath='{.items[?(@.status.phase=="Running")].metadata.name}'

9. 高效的資源管理操作

批量操作和資源管理的最佳實(shí)踐:

# 批量刪除特定標(biāo)簽的資源
kubectl delete pods -l app=old-version

# 強(qiáng)制刪除卡住的資源
kubectl delete pod my-pod --grace-period=0 --force

# 批量更新資源
kubectl patch deployment my-app -p'{"spec":{"replicas":5}}'

# 滾動重啟Deployment
kubectl rollout restart deployment/my-app

# 查看滾動更新狀態(tài)
kubectl rollout status deployment/my-app

10. 調(diào)試和故障排查神器

高效的調(diào)試技巧能讓問題排查事半功倍:

# 進(jìn)入Pod進(jìn)行調(diào)試
kubectlexec-it my-pod -- /bin/bash

# 創(chuàng)建臨時調(diào)試容器
kubectl run debug --rm-i --tty--image=busybox -- sh

# 查看資源使用情況
kubectl top pods
kubectl top nodes

# 詳細(xì)描述資源狀態(tài)
kubectl describe pod my-pod

# 查看集群事件
kubectl get events --sort-by=.metadata.creationTimestamp

11. 配置管理的藝術(shù)

配置和密鑰管理的實(shí)用技巧:

# 從文件創(chuàng)建ConfigMap
kubectl create configmap app-config --from-file=config/

# 從環(huán)境變量創(chuàng)建Secret
kubectl create secret generic db-secret --from-literal=username=admin --from-literal=password=secret

# 查看ConfigMap內(nèi)容
kubectl get configmap app-config -o jsonpath='{.data}'

# 更新ConfigMap
kubectl patch configmap app-config -p'{"data":{"new-key":"new-value"}}'

12. 網(wǎng)絡(luò)診斷利器

網(wǎng)絡(luò)問題排查的專業(yè)技巧:

# 測試服務(wù)連通性
kubectl run test-pod --rm-i --tty--image=busybox -- nslookup my-service

# 查看服務(wù)端點(diǎn)
kubectl get endpoints my-service

# 端口轉(zhuǎn)發(fā)進(jìn)行本地測試
kubectl port-forward pod/my-pod 8080:80

# 查看網(wǎng)絡(luò)策略
kubectl get networkpolicies

13. 資源配額和限制管理

資源管理的精細(xì)化控制:

# 查看命名空間資源配額
kubectl get resourcequota

# 查看限制范圍
kubectl get limitrange

# 查看Pod資源請求和限制
kubectl get pods -o custom-columns=NAME:.metadata.name,CPU-REQUEST:.spec.containers[*].resources.requests.cpu,MEMORY-REQUEST:.spec.containers[*].resources.requests.memory

14. 高級搜索和過濾

復(fù)雜場景下的資源查找技巧:

# 查找使用特定鏡像的所有Pod
kubectl get pods -A -o jsonpath='{range .items[*]}{.metadata.namespace}{"	"}{.metadata.name}{"	"}{.spec.containers[*].image}{"
"}{end}'| grep nginx

# 查找資源消耗最高的Pod
kubectl top pods --sort-by=memory

# 查找未就緒的Pod
kubectl get pods --field-selector=status.phase!=Running

# 查找孤兒資源
kubectl get pods --field-selector=status.phase=Succeeded

15. 別名和效率提升

最后,分享一些能顯著提升效率的別名配置:

# 在~/.bashrc或~/.zshrc中添加
aliask=kubectl
aliaskg='kubectl get'
aliaskd='kubectl describe'
aliaskdel='kubectl delete'
aliaskl='kubectl logs'
aliaskex='kubectl exec -it'

# 函數(shù)式別名
kns() { kubectl config set-context --current --namespace=$1; }
kctx() { kubectl config use-context$1; }

實(shí)戰(zhàn)建議

1.建立肌肉記憶:每天練習(xí)這些命令,讓它們成為你的第二天性

2.組合使用:將多個技巧組合使用,發(fā)揮最大效果

3.定制化配置:根據(jù)你的工作場景定制kubectl配置和別名

4.持續(xù)學(xué)習(xí):kubectl功能豐富,保持學(xué)習(xí)新特性的習(xí)慣

掌握這15個kubectl技巧,你將能夠更加優(yōu)雅和高效地管理Kubernetes集群。記住,運(yùn)維的藝術(shù)不僅在于解決問題,更在于預(yù)防問題和提升效率。希望這些技巧能幫助你在Kubernetes的世界中游刃有余!

你最常用的kubectl技巧是什么?歡迎在評論區(qū)分享你的實(shí)戰(zhàn)經(jīng)驗(yàn)!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 集群
    +關(guān)注

    關(guān)注

    0

    文章

    129

    瀏覽量

    17575
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    745

    瀏覽量

    23372
  • kubernetes
    +關(guān)注

    關(guān)注

    0

    文章

    255

    瀏覽量

    9380

原文標(biāo)題:kubectl命令行藝術(shù):掌握高效管理K8s集群的15個實(shí)用技巧

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    阿里云上Kubernetes集群聯(lián)邦

    摘要: kubernetes集群讓您能夠方便的部署管理運(yùn)維容器化的應(yīng)用。但是實(shí)際情況中經(jīng)常遇到的一些問題,就是單個集群通常無法跨單個云廠商的多個Region,更不用說支持跨跨域不同的云
    發(fā)表于 03-12 17:10

    kubernetes集群配置

    基于v1104版本手動搭建高可用kubernetes 集群
    發(fā)表于 08-19 08:07

    kubernetes v112二進(jìn)制方式集群部署

    kubernetes v112 二進(jìn)制方式集群部署
    發(fā)表于 05-05 16:30

    請問鴻蒙系統(tǒng)上可以部署kubernetes集群嗎?

    鴻蒙系統(tǒng)上可以部署kubernetes集群
    發(fā)表于 06-08 11:16

    如何部署基于Mesos的Kubernetes集群

    kubernetes是一個跨多個計算節(jié)點(diǎn)的管理容器化應(yīng)用的系統(tǒng),它提供了一系列基本的功能,如應(yīng)用的自動化部署,維護(hù)和擴(kuò)展等。Mesos是Apache下的開源分布式資源管理框架,它被稱為是分布式系統(tǒng)
    發(fā)表于 10-09 18:04 ?0次下載
    如何部署基于Mesos的<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>

    淺談Kubernetes集群的高可用方案

    Kubernetes作為容器應(yīng)用的管理中心,通過對Pod的數(shù)量進(jìn)行監(jiān)控,并且根據(jù)主機(jī)或容器失效的狀態(tài)將新的Pod調(diào)度到其他Node上,實(shí)現(xiàn)了應(yīng)用層的高可用性。針對Kubernetes集群
    發(fā)表于 10-11 10:04 ?1次下載
    淺談<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>的高可用方案

    Kubernetes API詳解

    摘要:Kubernetes是Google開源的容器集群管理系統(tǒng)。它構(gòu)建Ddocker技術(shù)之上,為容器化的應(yīng)用提供資源調(diào)度、部署運(yùn)行、服務(wù)發(fā)現(xiàn)、擴(kuò)容縮容等整一套功能,本文節(jié)選自龔正
    發(fā)表于 10-12 16:19 ?0次下載
    <b class='flag-5'>Kubernetes</b> API詳解

    Kubernetes集群發(fā)生網(wǎng)絡(luò)異常時如何排查

    本文將引入一個思路:“在 Kubernetes 集群發(fā)生網(wǎng)絡(luò)異常時如何排查”。文章將引入 Kubernetes 集群中網(wǎng)絡(luò)排查的思路,包含網(wǎng)絡(luò)異常模型,常用工具,并且提出一些案例以供學(xué)
    的頭像 發(fā)表于 09-02 09:45 ?9204次閱讀

    Kubernetes 集群的功能

    Telepresence 是一個開源工具,可讓您在本地運(yùn)行單個服務(wù),同時將該服務(wù)連接到遠(yuǎn)程 Kubernetes 集群。
    的頭像 發(fā)表于 09-05 10:58 ?1558次閱讀

    Kubernetes集群內(nèi)服務(wù)通信機(jī)制介紹

    現(xiàn)在在 Kubernetes 集群中,我們擁有構(gòu)成集群管理組件和一組工作機(jī)器(稱為節(jié)點(diǎn))的控制平面。這些節(jié)點(diǎn)托管 Pod,這些 Pod 將后端微服務(wù)作為容器化服務(wù)運(yùn)行。
    發(fā)表于 10-04 10:13 ?778次閱讀

    Kubernetes集群的關(guān)閉與重啟

    在日常對 Kubernetes 集群運(yùn)行維護(hù)的過程中,您可能需要臨時的關(guān)閉或者是重啟 Kubernetes 集群集群進(jìn)行維護(hù),本文將介紹如
    的頭像 發(fā)表于 11-07 09:50 ?1.1w次閱讀

    Kubernetes集群部署

    Kubeadm是一種Kubernetes集群部署工具,通過kubeadm init命令創(chuàng)建master節(jié)點(diǎn),通過 kubeadm join命令把node節(jié)點(diǎn)加入到集群
    的頭像 發(fā)表于 02-15 10:35 ?2388次閱讀

    Kubernetes是怎樣工作的?

    。 您可以將運(yùn)行 Linux? 容器的主機(jī)組集群在一起,Kubernetes 可幫助您輕松高效管理這些集群。
    的頭像 發(fā)表于 05-12 16:13 ?896次閱讀
    <b class='flag-5'>Kubernetes</b>是怎樣工作的?

    Awesome 工具如何更好地管理Kubernetes

    應(yīng)用程序,那么 Kubernetes 是必備工具之一。有數(shù)百種工具可與 Kubernetes 配合使用以添加更多功能。我說的是用于更好地管理,安全性,儀表板和 Kubernetes
    的頭像 發(fā)表于 06-25 16:12 ?1130次閱讀
    Awesome 工具如何更好地<b class='flag-5'>管理</b><b class='flag-5'>Kubernetes</b>

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(duì)(被 VMWare 收購)開源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?904次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b><b class='flag-5'>集群</b>