欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

kubectl?命令詳解

 更新時(shí)間:2025年04月02日 10:23:26   作者:頭未禿  
這篇文章主要介紹了kubectl?命令的相關(guān)資料,包括常用命令,基本命令和使用說明,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

一、常用命令

1、獲取信息

#獲取節(jié)點(diǎn)信息
kubectl get nodes
#獲取pod信息
kubectl get pods
#獲取pod信息包含具體在哪個(gè)節(jié)點(diǎn)
kubectl get pods -o wide

2、部署

# 部署pod
kubectl create deployment tomcat9 --image=tomcat:9.0.102-jre17 
# 發(fā)布service
# --post=80 --target-post=8080 : pod的80端口映射容器的8080端口  
# --type=NodePort : service會(huì)代理pod的80端口
kubectl expose deployment tomcat9 --port=8080 --target-port=8080 --type=NodePort
# --dry-run 表示測(cè)試不實(shí)際運(yùn)行
# -o yaml  生成yaml
# > tomcat.yaml  輸出到tomcat.yaml
#根據(jù)kubectl create deployment tomcat9 --image=tomcat:9.0.102-jre17生成yaml并輸出到tomcat.yaml
kubectl create deployment tomcat9 --image=tomcat:9.0.102-jre17 --dry-run -o yaml > tomcat.yaml
# 應(yīng)用tomcat.yaml(根據(jù)上面命令生成的 tomcat.yaml), 實(shí)際上和kubectl create deployment tomcat6 --image=tomcat:9.0.102-jre17一樣的效果,只是yaml可以自己寫更靈活
kubectl apply -f tomcat.yaml

二、基本命令

使用以下語法從終端窗口運(yùn)行 kubectl 命令:

kubectl [command] [TYPE] [NAME] [flags]

其中 command、TYPENAMEflags 分別是:

  • command:指定要對(duì)一個(gè)或多個(gè)資源執(zhí)行的操作,例如 create、getdescribe、delete。
  • TYPE:指定資源類型。資源類型不區(qū)分大小寫, 可以指定單數(shù)、復(fù)數(shù)或縮寫形式。
  • NAME:指定資源的名稱。名稱區(qū)分大小寫。 如果省略名稱,則顯示所有資源的詳細(xì)信息。例如:kubectl get pods。
  • flags: 指定可選的參數(shù)。例如,可以使用 -s--server 參數(shù)指定 Kubernetes API 服務(wù)器的地址和端口。

在對(duì)多個(gè)資源執(zhí)行操作時(shí),你可以按類型和名稱指定每個(gè)資源,或指定一個(gè)或多個(gè)文件,要按類型和名稱指定資源:

要對(duì)所有類型相同的資源進(jìn)行分組,請(qǐng)執(zhí)行以下操作:TYPE1 name1 name2 name<#>。
例子:kubectl get pod example-pod1 example-pod2

分別指定多個(gè)資源類型:TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>。
例子:kubectl get pod/example-pod1 replicationcontroller/example-rc1

用一個(gè)或多個(gè)文件指定資源:-f file1 -f file2 -f file<#>
例子:kubectl get -f ./pod.yaml(為什么使用 YAML 而不是 JSON, 是因?yàn)?YAML 對(duì)用戶更友好, 特別是對(duì)于配置文件)

1、操作

操作名稱描述語法示例
get列出指定類型的資源kubectl get <資源類型> [flags]kubectl get pods -n kube-system
describe顯示資源詳細(xì)配置和狀態(tài)kubectl describe <資源類型>/<資源名稱>kubectl describe node/node01
create通過文件創(chuàng)建資源kubectl create -f <文件路徑>kubectl create -f deployment.yaml
apply通過文件更新/創(chuàng)建資源(冪等)kubectl apply -f <文件路徑>kubectl apply -f service.yaml
delete刪除指定資源kubectl delete <資源類型>/<資源名稱>kubectl delete configmap/app-config
logs輸出容器日志流kubectl logs <Pod名稱> [-c 容器名]kubectl logs nginx-pod --tail=100
exec在容器中執(zhí)行交互命令kubectl exec -it <Pod名稱> -- <命令>kubectl exec -it redis-pod -- /bin/sh
port-forward將本地端口映射到Pod端口kubectl port-forward <資源類型>/<名稱> <本地端口>:<目標(biāo)端口>kubectl port-forward service/nginx 8080:80
scale調(diào)整Deployment副本數(shù)kubectl scale deploy/<名稱> --replicas=<數(shù)量>kubectl scale deploy/web-server --replicas=5
rollout管理資源部署,包含子命令status(查看狀態(tài))、history(查看歷史版本)、undo(回滾操作)、pause(暫停)、restart(恢復(fù)更新)kubectl rollout undo <資源類型>/<名稱>kubectl rollout undo deployment/frontend
top顯示Pod/Node資源消耗kubectl top [pods|nodes]kubectl top pods --sort-by=cpu
edit直接編輯資源定義kubectl edit <資源類型>/<資源名稱>kubectl edit deployment/backend
label為資源添加/修改標(biāo)簽kubectl label <資源類型> <名稱> <鍵>=<值>kubectl label nodes node01 disktype=ssd
config切換kubeconfig上下文kubectl config use-context <上下文名稱>kubectl config use-context prod-cluster
patch通過JSON補(bǔ)丁修改資源kubectl patch <資源類型>/<名稱> -p '<補(bǔ)丁內(nèi)容>'kubectl patch deploy/nginx -p '{"spec":{"replicas":3}}'
cp在容器和本地間傳輸文件kubectl cp <源路徑> <目標(biāo)路徑>kubectl cp default/nginx-pod:/log.txt ./local.log
taint管理節(jié)點(diǎn)的調(diào)度污點(diǎn)kubectl taint nodes <節(jié)點(diǎn)名> <鍵>=<值>:<效果>kubectl taint nodes node01 app=test:NoSchedule
cordon/uncordon禁止/允許節(jié)點(diǎn)調(diào)度Podkubectl cordon/uncordon <節(jié)點(diǎn)名>kubectl cordon node02
drain安全驅(qū)逐節(jié)點(diǎn)上的Podkubectl drain <節(jié)點(diǎn)名> [--ignore-daemonsets]kubectl drain node03 --delete-emptydir-data
run快速運(yùn)行臨時(shí)容器kubectl run <名稱> --image=<鏡像> [-- <命令]kubectl run debug-tool --image=busybox -- sleep 3600
diff對(duì)比集群配置與本地文件的差異kubectl diff -f <文件路徑> [flags]kubectl diff -f updated-deployment.yaml
expose將資源暴露為 Kubernetes 服務(wù)kubectl expose <資源類型>/<名稱> [--port=端口] [--target-port=目標(biāo)端口]kubectl expose deploy/nginx --port=80 --target-port=9376
proxy創(chuàng)建到 Kubernetes API 的代理通道kubectl proxy [--port=端口] [--address=地址]kubectl proxy --port=8080 --address='192.168.1.100'
set動(dòng)態(tài)修改資源配置(鏡像/環(huán)境變量/資源限制)kubectl set <子命令> <資源類型>/<名稱> [參數(shù)]kubectl set image deploy/nginx nginx=1.25.2-alpine
explain查看資源配置字段的文檔說明kubectl explain [<資源類型>.<字段路徑>] [--recursive]kubectl explain pod.spec.containers.resources.limits

補(bǔ)充說明

  • 表格中所有命令支持 -n <命名空間> 指定命名空間,--all-namespaces 查看全集群資源
  • 資源類型支持縮寫(如 po=pods, deploy=deployments, svc=services)
  • 使用 --dry-run=client -o yaml 可生成資源模板(如 kubectl create deploy test --image=nginx --dry-run=client -o yaml)
  • 生產(chǎn)環(huán)境建議結(jié)合 kubectl diff -f <文件> 預(yù)演配置變更
  • 資源名稱需替換為實(shí)際環(huán)境中的標(biāo)識(shí)符
  • 可通過 kubectl explain <資源字段> 查看資源配置字段說明
  • 時(shí)間敏感操作(如日志查看)可結(jié)合 --since 參數(shù)(如 --since=1h)

使用技巧與注意事項(xiàng)

多文件操作

# 批量應(yīng)用目錄下所有配置 -R:遞歸應(yīng)用某個(gè)目錄及其子目錄下的所有 YAML/JSON 文件
kubectl apply -f ./manifests/ -R 

資源選擇器組合

# 聯(lián)合使用文件選擇與標(biāo)簽過濾 
kubectl delete -f deploy.yaml  -l app=critical 

輸出格式化

# 生成資源配置模板(YAML 與 JSON 互轉(zhuǎn))
kubectl get deploy/nginx -o yaml > nginx-template.yaml  

版本控制集成

# 記錄操作歷史(需配合 --record 參數(shù))
kubectl apply -f deploy.yaml  --record
  • 安全提示:使用 --force 刪除、drain 節(jié)點(diǎn)等高風(fēng)險(xiǎn)操作前,務(wù)必通過 --dry-run=server 驗(yàn)證影響范圍。

2、資源

資源名縮寫名API 版本按命名空間資源類型
Core/v1 資源
bindings-v1trueBinding
componentstatusescsv1falseComponentStatus
configmapscmv1trueConfigMap
endpointsepv1trueEndpoints
eventsevv1trueEvent
limitrangeslimitsv1trueLimitRange
namespacesnsv1falseNamespace
nodesnov1falseNode
persistentvolumeclaimspvcv1truePersistentVolumeClaim
persistentvolumespvv1falsePersistentVolume
podspov1truePod
replicationcontrollersrcv1trueReplicationController
secrets-v1trueSecret
servicessvcv1trueService
Apps 工作負(fù)載資源
daemonsetsdsapps/v1trueDaemonSet
deploymentsdeployapps/v1trueDeployment
statefulsetsstsapps/v1trueStatefulSet
replicasetsrsapps/v1trueReplicaSet
Network 網(wǎng)絡(luò)資源
ingressesingnetworking.k8s.io/v1trueIngress
networkpoliciesnetpolnetworking.k8s.io/v1trueNetworkPolicy
擴(kuò)展與安全資源
horizontalpodautoscalershpaautoscaling/v2trueHorizontalPodAutoscaler
cronjobscjbatch/v1trueCronJob
certificatesigningrequestscsrcertificates.k8s.io/v1falseCertificateSigningRequest
poddisruptionbudgetspdbpolicy/v1truePodDisruptionBudget
storageclassesscstorage.k8s.io/v1falseStorageClass
RBAC 權(quán)限資源
clusterroles-rbac.authorization.k8s.io/v1falseClusterRole
rolebindings-rbac.authorization.k8s.io/v1trueRoleBinding

關(guān)鍵特性標(biāo)注

API 版本差異

  • PodSecurityPolicy (psp) 使用已棄用的 policy/v1beta1(Kubernetes 1.25+ 移除)
  • FlowSchema/PriorityLevelConfiguration 使用測(cè)試版 API flowcontrol.apiserver.k8s.io/v1beta2

命名空間隔離性

  • 集群級(jí)資源false):nodes, persistentvolumes, storageclasses
  • 命名空間級(jí)資源true):pods, services, configmaps

高頻縮寫對(duì)照

縮寫全稱使用場(chǎng)景
dsDaemonSet節(jié)點(diǎn)守護(hù)進(jìn)程部署
hpaHorizontalPodAutoscaler自動(dòng)水平擴(kuò)縮容
pdbPodDisruptionBudget維護(hù)期 Pod 中斷預(yù)算

使用建議

# 查詢資源縮寫(含擴(kuò)展資源)
kubectl api-resources --verbs=list -o wide 
# 檢查特定資源的 API 版本兼容性 
kubectl explain <resource> --api-version=<version>

3、可選參數(shù)

Flag 參數(shù)默認(rèn)值適用命令功能描述
--namespace=<ns>default所有命令指定操作的命名空間,縮寫 -n
--kubeconfig=<path>~/.kube/config所有命令指定 Kubernetes 配置文件路徑
--output=<format>textget/describe輸出格式控制(json, yaml, wide, name),縮寫 -o
--dry-run=<mode>noneapply/create試運(yùn)行模式(client/server/none),用于驗(yàn)證配置
--forcefalsedelete強(qiáng)制刪除資源(繞過優(yōu)雅刪除策略)
--selector=<label>資源查詢命令按標(biāo)簽篩選資源,縮寫 -l
--field-selector=<query>get按字段條件篩選資源(如 status.phase=Running
--recordfalseapply/set在資源注解中記錄命令操作歷史
--server=<address>所有命令直接指定 Kubernetes API 服務(wù)器地址
--insecure-skip-tls-verifyfalse所有命令跳過 TLS 證書驗(yàn)證(僅測(cè)試環(huán)境使用)
--filenameapply/create/delete/diff/replace/get/explain本地文件/目錄/URL/標(biāo)準(zhǔn)輸入流 加載資源配置,驅(qū)動(dòng)聲明式或命令式操作,縮寫 -f

特殊場(chǎng)景參數(shù)擴(kuò)展表

Flag 參數(shù)典型使用場(chǎng)景示例命令
--watch / -w實(shí)時(shí)監(jiān)控資源變化kubectl get pods -w
--timeout=<duration>設(shè)置命令超時(shí)時(shí)間(如 30s, 5mkubectl delete pod --timeout=10s
--all操作全部資源(慎用)kubectl delete pods --all
--show-labels顯示資源標(biāo)簽列kubectl get pods --show-labels
--sort-by=<jsonpath>按字段排序輸出結(jié)果kubectl get pods --sort-by=.metadata.creationTimestamp

使用說明

  • 命令兼容性:不同子命令支持的 flags 存在差異(如 --replicas 僅適用于 kubectl scale
  • 動(dòng)態(tài)查看幫助
# 查看全局 flags 
kubectl options 
# 查看子命令專屬 flags 
kubectl <command> --help 

參考資料:

參考1
參考2

到此這篇關(guān)于kubectl 命令的文章就介紹到這了,更多相關(guān)kubectl 命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Google?Kubernetes?Engine?集群實(shí)戰(zhàn)詳解

    Google?Kubernetes?Engine?集群實(shí)戰(zhàn)詳解

    這篇文章主要為大家介紹了Google?Kubernetes?Engine?集群實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 最新青龍面板2.10.2搭建+XDD-PLUS的保姆級(jí)教程

    最新青龍面板2.10.2搭建+XDD-PLUS的保姆級(jí)教程

    這篇文章主要介紹了最新青龍面板2.10.2搭建+XDD-PLUS的保姆級(jí)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • tkestack/gpu-manager在k8s1.23版本之后的使用方法

    tkestack/gpu-manager在k8s1.23版本之后的使用方法

    這篇文章主要介紹了tkestack/gpu-manager在k8s1.23版本之后的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容詳解

    k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容詳解

    在實(shí)際生產(chǎn)系統(tǒng)中,經(jīng)常會(huì)遇到某個(gè)服務(wù)需要擴(kuò)容的場(chǎng)景,可能會(huì)遇到由于資源緊張或者工作負(fù)載降低而需要減少服務(wù)實(shí)例數(shù)量的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于k8s中如何實(shí)現(xiàn)pod自動(dòng)擴(kuò)縮容的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • k8s編排之DaemonSet知識(shí)點(diǎn)詳解

    k8s編排之DaemonSet知識(shí)點(diǎn)詳解

    這篇文章主要為大家介紹了k8s編排之DaemonSet知識(shí)點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • centos搭建k8s環(huán)境詳細(xì)步驟及常用命令

    centos搭建k8s環(huán)境詳細(xì)步驟及常用命令

    kubernetes是google開源的容器集群管理系統(tǒng),提供應(yīng)用部署、維護(hù)、擴(kuò)展機(jī)制等功能,利用kubernetes能方便管理跨集群運(yùn)行容器化的應(yīng)用,這篇文章主要給大家介紹了關(guān)于centos搭建k8s環(huán)境詳細(xì)步驟及常用命令的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • K8S?Operator部署及自定義詳解

    K8S?Operator部署及自定義詳解

    這篇文章主要為大家介紹了K8S?Operator部署及自定義詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Kubernetes探針使用介紹

    Kubernetes探針使用介紹

    這篇文章主要為大家介紹了Kubernetes探針使用詳細(xì)介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Kubernetes安裝Jenkins的思路詳解

    Kubernetes安裝Jenkins的思路詳解

    這篇文章主要介紹了Kubernetes安裝Jenkins,Jenkins插件可以在Kubernetes集群中運(yùn)行動(dòng)態(tài)jenkins-slave代理,基于Kubernetes的docker,自動(dòng)化在Kubernetes中運(yùn)行的Jenkins-slave代理的縮放,需要的朋友可以參考下
    2022-06-06
  • Kubernetes?Ingress實(shí)現(xiàn)細(xì)粒度IP訪問控制

    Kubernetes?Ingress實(shí)現(xiàn)細(xì)粒度IP訪問控制

    這篇文章主要為大家介紹了Kubernetes?Ingress實(shí)現(xiàn)細(xì)粒度IP訪問控制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論