chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

解析K8S實用命令

馬哥Linux運維 ? 來源:馬哥Linux運維 ? 2025-07-24 14:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言:作為運維工程師,掌握 Kubernetes 命令行工具是日常工作的核心技能。本文將深入解析 K8S 最實用的命令,從基礎操作到高級技巧,助你成為容器化集群管理專家。

快速導航

?基礎集群信息查看

?Pod 生命周期管理

?服務與網(wǎng)絡管理

?存儲與配置管理

?故障排查神技

?性能監(jiān)控與優(yōu)化

?高級運維技巧

基礎集群信息查看

集群狀態(tài)總覽

# 查看集群信息
kubectl cluster-info

# 查看節(jié)點狀態(tài)
kubectl get nodes -o wide

# 查看節(jié)點詳細信息
kubectl describe node 

# 查看集群資源使用情況
kubectl top nodes
kubectl top pods --all-namespaces

命名空間管理

# 查看所有命名空間
kubectl get namespaces

# 創(chuàng)建命名空間
kubectl create namespace 

# 刪除命名空間(謹慎操作)
kubectl delete namespace 

# 設置默認命名空間
kubectl config set-context --current --namespace=

實戰(zhàn)技巧:使用kubectl config view --minify | grep namespace快速查看當前命名空間。

Pod 生命周期管理

Pod 基礎操作

# 查看所有 Pod
kubectl get pods --all-namespaces

# 查看指定命名空間的 Pod
kubectl get pods -n 

# 實時監(jiān)控 Pod 狀態(tài)變化
kubectl get pods -w

# 查看 Pod 詳細信息
kubectl describe pod  -n 

# 刪除 Pod
kubectl delete pod  -n 

# 強制刪除卡住的 Pod
kubectl delete pod  --grace-period=0 --force

Pod 高級查詢

# 按標簽選擇器查詢
kubectl get pods -l app=nginx

# 按字段選擇器查詢
kubectl get pods --field-selector status.phase=Running

# 查看 Pod 的 YAML 配置
kubectl get pod  -o yaml

# 查看 Pod 資源使用情況
kubectl top pod 

# 查看所有容器狀態(tài)
kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"	"}{.status.phase}{"
"}{end}'

運維秘籍:使用kubectl get pods --sort-by=.metadata.creationTimestamp按創(chuàng)建時間排序,快速定位新部署的應用。

服務與網(wǎng)絡管理

Service 服務管理

# 查看所有服務
kubectl get services --all-namespaces

# 查看服務詳細信息
kubectl describe service 

# 查看服務端點
kubectl get endpoints 

# 臨時端口轉(zhuǎn)發(fā)(調(diào)試神器)
kubectl port-forward pod/ 8080:80
kubectl port-forward service/ 8080:80

# 查看服務的選擇器匹配的 Pod
kubectl get pods -l 

Ingress 管理

# 查看 Ingress 規(guī)則
kubectl get ingress --all-namespaces

# 查看 Ingress 詳細配置
kubectl describe ingress 

# 查看 Ingress 控制器日志
kubectl logs -n ingress-nginx deployment/nginx-ingress-controller

網(wǎng)絡策略與排查

# 查看網(wǎng)絡策略
kubectl get networkpolicies --all-namespaces

# 測試 Pod 間網(wǎng)絡連通性
kubectlexec-it  -- ping 
kubectlexec-it  -- nslookup 

# 查看 DNS 配置
kubectlexec-it  --cat/etc/resolv.conf

存儲與配置管理

ConfigMap 和 Secret

# 查看配置映射
kubectl get configmaps --all-namespaces

# 查看 ConfigMap 內(nèi)容
kubectl describe configmap 
kubectl get configmap  -o yaml

# 創(chuàng)建 ConfigMap
kubectl create configmap  --from-file=
kubectl create configmap  --from-literal=key=value

# 查看密鑰
kubectl get secrets --all-namespaces

# 查看 Secret 內(nèi)容(Base64 解碼)
kubectl get secret  -o jsonpath='{.data.password}'|base64-d

持久化存儲

# 查看持久卷
kubectl get pv

# 查看持久卷聲明
kubectl get pvc --all-namespaces

# 查看存儲類
kubectl get storageclass

# 查看卷詳細信息
kubectl describe pv 
kubectl describe pvc 

性能優(yōu)化:使用kubectl get pvc -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,VOLUME:.spec.volumeName,CAPACITY:.status.capacity.storage,STORAGECLASS:.spec.storageClassName快速查看存儲概況。

故障排查神技

日志查看與分析

# 查看 Pod 日志
kubectl logs  -n 

# 查看多容器 Pod 的特定容器日志
kubectl logs  -c 

# 實時跟蹤日志
kubectl logs -f 

# 查看之前崩潰容器的日志
kubectl logs  --previous

# 查看最近指定時間的日志
kubectl logs  --since=1h
kubectl logs  --since-time=2024-01-01T0000Z

# 導出所有 Pod 日志
forpodin$(kubectl get pods -o name);do
 kubectl logs$pod>${pod##*/}.log2>&1
done

容器調(diào)試

# 進入容器 Shell
kubectlexec-it  -- /bin/bash
kubectlexec-it  -- /bin/sh

# 在多容器 Pod 中指定容器
kubectlexec-it  -c  -- /bin/bash

# 復制文件到/從容器
kubectlcp :
kubectlcp: 

# 臨時運行調(diào)試容器
kubectl run debug-pod --rm-it --image=busybox -- /bin/sh

# 在現(xiàn)有網(wǎng)絡命名空間中運行調(diào)試容器
kubectl debug  -it --image=nicolaka/netshoot

事件與狀態(tài)分析

# 查看集群事件
kubectl get events --sort-by='.lastTimestamp'

# 查看特定資源的事件
kubectl describe  

# 監(jiān)控資源變化
kubectl get pods -w
kubectl get events -w

# 查看資源使用情況
kubectl describe node  | grep -A 5"Allocated resources"

故障定位心法:

1. 先看 Pod 狀態(tài):kubectl get pods

2. 再看事件:kubectl describe pod

3. 查看日志:kubectl logs

4. 最后進容器調(diào)試:kubectl exec -it -- /bin/bash

性能監(jiān)控與優(yōu)化

資源監(jiān)控

# 查看節(jié)點資源使用
kubectl top nodes

# 查看 Pod 資源使用
kubectl top pods --all-namespaces

# 查看特定命名空間資源使用
kubectl top pods -n 

# 按 CPU 使用率排序
kubectl top pods --sort-by=cpu

# 按內(nèi)存使用率排序
kubectl top pods --sort-by=memory

擴縮容管理

# 手動擴縮容 Deployment
kubectl scale deployment  --replicas=5

# 查看 HPA(水平自動擴縮容)
kubectl get hpa

# 查看 VPA(垂直自動擴縮容)
kubectl get vpa

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

# 查看滾動更新歷史
kubectl rollouthistorydeployment/

# 回滾到上一個版本
kubectl rollout undo deployment/

資源配額管理

# 查看資源配額
kubectl get resourcequota --all-namespaces

# 查看 LimitRange
kubectl get limitrange --all-namespaces

# 查看資源配額詳情
kubectl describe resourcequota 

高級運維技巧

批量操作與自動化

# 批量刪除狀態(tài)為 Evicted 的 Pod
kubectl get pods --all-namespaces | grep Evicted | awk'{print $1, $2}'| xargs -n2 kubectl delete pod -n

# 批量重啟所有 Deployment
kubectl get deployments -o name | xargs -I {} kubectl rollout restart {}

# 批量獲取所有 Pod 的鏡像信息
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.metadata.name}{"	"}{.spec.containers[*].image}{"
"}{end}'

# 查找沒有設置資源限制的 Pod
kubectl get pods --all-namespaces -o json | jq'.items[] | select(.spec.containers[].resources.limits == null) | .metadata.name'

安全與權限管理

# 查看當前用戶權限
kubectl auth can-i --list

# 檢查特定用戶權限
kubectl auth can-i create pods --as=

# 查看 RBAC 角色
kubectl get roles,rolebindings --all-namespaces
kubectl get clusterroles,clusterrolebindings

# 查看服務賬戶
kubectl get serviceaccounts --all-namespaces

# 查看安全策略
kubectl get podsecuritypolicies

集群維護與備份

# 驅(qū)逐節(jié)點(維護前)
kubectl drain  --ignore-daemonsets --delete-emptydir-data

# 標記節(jié)點不可調(diào)度
kubectl cordon 

# 恢復節(jié)點調(diào)度
kubectl uncordon 

# 導出資源配置(備份)
kubectl get all --all-namespaces -o yaml > cluster-backup.yaml

# 導出特定資源類型
kubectl get configmaps --all-namespaces -o yaml > configmaps-backup.yaml
kubectl get secrets --all-namespaces -o yaml > secrets-backup.yaml

性能調(diào)優(yōu)命令

# 查看集群組件狀態(tài)
kubectl get componentstatuses

# 查看 API Server 指標
kubectl get --raw /metrics

# 查看調(diào)度器隊列
kubectl get events --field-selector reason=FailedScheduling

# 分析 Pod 啟動時間
kubectl get pods -o custom-columns=NAME:.metadata.name,STATUS:.status.phase,START_TIME:.status.startTime,NODE:.spec.nodeName

實用技巧錦囊

命令行優(yōu)化

# 設置別名提高效率
aliask='kubectl'
aliaskgp='kubectl get pods'
aliaskgs='kubectl get services'
aliaskgn='kubectl get nodes'
aliaskdp='kubectl describe pod'
aliaskl='kubectl logs'

# 使用 kubectx 快速切換集群
kubectx 

# 使用 kubens 快速切換命名空間
kubens 

輸出格式化

# JSON 輸出
kubectl get pods -o json

# YAML 輸出
kubectl get pods -o yaml

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

# 使用 JSONPath 提取特定字段
kubectl get pods -o jsonpath='{.items[*].metadata.name}'

# 格式化輸出(需要 jq)
kubectl get pods -o json | jq'.items[] | {name: .metadata.name, status: .status.phase}'

總結與最佳實踐

日常運維檢查清單

1.集群健康檢查

? 節(jié)點狀態(tài):kubectl get nodes

? 系統(tǒng) Pod:kubectl get pods -n kube-system

? 資源使用:kubectl top nodes

2.應用狀態(tài)監(jiān)控

? Pod 狀態(tài):kubectl get pods --all-namespaces

? 服務狀態(tài):kubectl get services --all-namespaces

? 事件監(jiān)控:kubectl get events --sort-by='.lastTimestamp'

3.性能優(yōu)化檢查

? 資源配額:kubectl describe node

? HPA 狀態(tài):kubectl get hpa

? 存儲使用:kubectl get pvc --all-namespaces

安全運維準則

? 定期備份關鍵配置:ConfigMap、Secret、PV

? 設置合理的資源限制和配額

? 監(jiān)控異常事件和失敗的調(diào)度

? 及時清理不需要的資源和鏡像

? 保持集群組件版本更新

寫在最后

掌握這些 K8S 命令,你已經(jīng)具備了高效管理容器化集群的核心技能。記住,熟練運用這些命令不僅能提高工作效率,更能在關鍵時刻快速定位和解決問題。

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

    關注

    0

    文章

    143

    瀏覽量

    17666
  • 命令
    +關注

    關注

    5

    文章

    755

    瀏覽量

    23757
  • kubernetes
    +關注

    關注

    0

    文章

    263

    瀏覽量

    9494

原文標題:30分鐘掌握K8S核心命令:快速上手指南

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    什么是 K8S,如何使用 K8S

    Kubernetes(簡稱K8S)是一個用于管理容器化應用程序的開源平臺。以下是關于K8S及其使用方法的介紹: 一、什么是 K8S 核心特點 自動化容器編排:自動處理容器的部署、擴展、負載均衡
    發(fā)表于 06-25 06:45

    OpenStack與K8s結合的兩種方案的詳細介紹和比較

    OpenStack與K8S結合主要有兩種方案。一是K8S部署在OpenStack平臺之上,二是K8S和OpenStack組件集成。
    的頭像 發(fā)表于 10-14 09:38 ?2.8w次閱讀

    Docker不香嗎為什么還要用K8s

    Docker 雖好用,但面對強大的集群,成千上萬的容器,突然感覺不香了。 這時候就需要我們的主角 Kubernetes 上場了,先來了解一下 K8s 的基本概念,后面再介紹實踐,由淺入深步步為營
    的頭像 發(fā)表于 06-02 11:56 ?4119次閱讀

    簡單說明k8s和Docker之間的關系

    ,但最近發(fā)現(xiàn)k8s概念較多,命令也有些不夠用了,故想借此機會寫點東西,更全面認識并使用k8s。本篇文章目的:讓你更全面了解k8s概念,以及學到在工作中常用的操作。整體更偏向于原理和應用
    的頭像 發(fā)表于 06-24 15:48 ?4205次閱讀

    K8S集群服務訪問失敗怎么辦 K8S故障處理集錦

    問題1:K8S集群服務訪問失?。?? ? 原因分析:證書不能被識別,其原因為:自定義證書,過期等。 解決方法:更新證書即可。 問題2:K8S集群服務訪問失??? curl: (7) Failed
    的頭像 發(fā)表于 09-01 11:11 ?1.7w次閱讀
    <b class='flag-5'>K8S</b>集群服務訪問失敗怎么辦 <b class='flag-5'>K8S</b>故障處理集錦

    K8S(kubernetes)學習指南

    K8S(kubernetes)學習指南
    發(fā)表于 06-29 14:14 ?0次下載

    切換k8s上下文有多快

    use-context 命令就會很低效。 今天介紹3個工具會讓你在多k8s集群環(huán)境中工作的很輕松。我將從以下幾個方面來評估工具實用性: 速度 如果你有多個k8s集群可選擇,你切換k8s
    的頭像 發(fā)表于 05-29 15:26 ?1406次閱讀
    切換<b class='flag-5'>k8s</b>上下文有多快

    k8s是什么意思?kubeadm部署k8s集群(k8s部署)|PetaExpres

    k8s是什么意思? kubernetes簡稱K8s,是一個開源的,用于管理云平臺中多個主機上的容器化的應用,Kubernetes的目標是讓部署容器化的應用簡單并且高效(powerful
    發(fā)表于 07-19 13:14 ?1721次閱讀

    什么是K3sK8sK3sK8s有什么區(qū)別?

    Kubernetes,通??s寫為 K8s,是領先的容器編排工具。該開源項目最初由 Google 開發(fā),幫助塑造了現(xiàn)代編排的定義。該系統(tǒng)包括了部署和運行容器化系統(tǒng)所需的一切。
    的頭像 發(fā)表于 08-03 10:53 ?9429次閱讀

    k8s生態(tài)鏈包含哪些技術

    去監(jiān)聽 K8s 中的 Ingress 資源,并對這些資源進行相應規(guī)則的解析和實際承載流量。在當下趨勢中,像 Kubernetes Ingress Nginx 就是使用最廣泛的 Ingress
    的頭像 發(fā)表于 08-07 10:56 ?2163次閱讀
    <b class='flag-5'>k8s</b>生態(tài)鏈包含哪些技術

    混合云部署k8s集群方法有哪些?

    混合云部署k8s集群方法是首先需在本地與公有云分別建立K8s集群,并確保網(wǎng)絡連接。接著,配置kubeconfig文件連接兩集群,并安裝云服務插件以實現(xiàn)資源互通。然后,編寫Deployment文件部署應用,并使用kubectl命令
    的頭像 發(fā)表于 11-07 09:37 ?979次閱讀

    k8s和docker區(qū)別對比,哪個更強?

    Docker和Kubernetes(K8s)是容器化技術的兩大流行工具。Docker關注構建和打包容器,適用于本地開發(fā)和單主機管理;而K8s則提供容器編排和管理平臺,適用于多主機或云環(huán)境,具備自動化
    的頭像 發(fā)表于 12-11 13:55 ?1416次閱讀

    自建K8S集群認證過期

    今天使用kubectl命令查看pod信息時,一直正常運行的k8s集群突然不能訪問了,輸入任何命令都提示以下報錯。
    的頭像 發(fā)表于 02-07 12:32 ?839次閱讀

    k8s權限管理指南說明

    我們在目前的k8s集群環(huán)境里面,只能在master節(jié)點上執(zhí)行kubectl的一些命令,在其他節(jié)點上執(zhí)行就會報錯。
    的頭像 發(fā)表于 06-26 14:06 ?736次閱讀

    一文帶你徹底搞懂K8s網(wǎng)絡

    說實話,K8s 網(wǎng)絡是我見過最讓新手頭疼的知識點,沒有之一。記得我剛接觸 K8s 那會兒,看著流量在 Pod、Service、Node 之間穿梭,完全是一臉懵逼。后來踩了無數(shù)坑,熬了無數(shù)夜,總算把這套網(wǎng)絡模型摸透了。今天這篇文章,我會用最接地氣的方式,帶你徹底搞懂
    的頭像 發(fā)表于 02-06 10:15 ?448次閱讀