最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解kubectl資源管理命令(陳述式)

 更新時間:2025年04月02日 10:23:05   作者:@_Orange—  
kubectl是官方的CTL命令行工具,用于與apiserver進(jìn)行通信,將用戶在命令行輸入的命令,組織并轉(zhuǎn)化為apiserver能識別的信息,進(jìn)而實現(xiàn)管理k8s各種資源的一種有效途徑,這篇文章主要介紹了詳解kubectl資源管理命令(陳述式),需要的朋友可以參考下

一、陳述式對象管理

1、基本概念

  • kubernetes集群管理資源的唯一入口是通過相應(yīng)的方法調(diào)用apiserver的接口。
  • kubectl是官方的CTL命令行工具,用于與apiserver進(jìn)行通信,將用戶在命令行輸入的命令,組織并轉(zhuǎn)化為apiserver能識別的信息,進(jìn)而實現(xiàn)管理k8s各種資源的一種有效途徑。

kubectl 命令

  • kubectl 是kubernetes集群的命令行工具,通過它能夠?qū)罕旧碛浶怨芾?,并能夠在集群上進(jìn)行容器化應(yīng)用安裝部署。

kubectl命令語法格式如下

  • kubernetes中所有的內(nèi)容都抽象為資源,可以通過kubectl api-resources進(jìn)行查看
kubectl [command] [type] [name] [flags]
command: //指定要對資源執(zhí)行的操作,例如:create、get、delete
type: //指定資源類型,比如deployment、pod、service
name: //指定資源的名稱,名稱大小寫敏感
flags: //指定額外的可選參數(shù)

2、基礎(chǔ)命令使用

kubectl logs nginx-cdb6b5b95-fjm2x
#查看訪問日志
kubectl describe deployment nginx-wl -n kube-public
#查看nginx-wl的pod控制器的詳細(xì)信息,
kubectl describe pods 【pod名稱】 -n kube-public
#查看某個pod的詳細(xì)信息
kubectl version
#查看版本信息(服務(wù)端和客戶端版本都可查看到)
kubectl api-resources
#查看資源對象簡寫以及版本
kubectl cluster-info
#查看集群信息
source <(kubectl completion bash)
//可以將此條命令放入到環(huán)境變量中,每次開機都會執(zhí)行自動補全命令
#配置kubectl 自動補全
###命令放在/etc/profile 或者/root/.bashrc
journalctl -u kubelet -f
#node節(jié)點查看日志
kubectl get pods -w
#持續(xù)監(jiān)聽pod的狀態(tài)信息

3、基本信息查看(kubectl get)

kubectl get <resource> [-o wide|json|yaml] [-n namespace]
#獲取資源的相關(guān)信息,-o指定輸出格式,-n 指定命令空間
//<resource> :可以是具體資源名稱,如pods
//nginx-xxx: 也可以是資源類型,如pod,或all(僅展示幾種核心資源,并不完整)

案例演示

kubectl get pods
#查看當(dāng)前默認(rèn)命令空間(defaults)的pods信息
kubectl get pods -n kube-system
#查看指定的kube-system命名空間的資源
kubectl get pods -owide
#查看默認(rèn)命名空間的pod詳細(xì)信息
kubectl get pods -A 或者 kubectl get pods --all-namespace
#查看所有命名空間的pod資源信息
kubecrl get pods -A -owide
#查看所有命名空間下的pod資源信息,并顯示詳細(xì)信息
kubectl get pods --show-labels 
#查看當(dāng)前默認(rèn)的命令空間的下的pods的標(biāo)簽類型信息
kubectl get pods --show-labels -A
#查看所有命令空間下的標(biāo)簽信息
kubectl get pods -A -l app
#查看所有命名空間下,僅顯示標(biāo)簽為app的資源
kubectl get pods -l app=nginx-ydq
#查看默認(rèn)命名空間下的標(biāo)簽為nginx-ydq的資源
kubectl get cs
#查看服務(wù)組件狀態(tài)信息
kubectl get nodes 
#查看node節(jié)點集群的信息
kubectl get ns
#查看命令空間資源(用于允許不同 命名空間 的 相同類型 的資源 重名的)
kubectl get deployment
#查看deployment的pod控制器
kubectl get all
#查看默認(rèn)命名空間下的所有資源
kebectl get svc 
#查看service信息

常用命令參數(shù)總結(jié)

--all-namespace 或 -A   //表示顯示所有的命令空間
--show-labels //顯示所有標(biāo)簽
-l app //僅顯示標(biāo)簽為app的資源
-n  //指定命令空間
-owide //顯示詳細(xì)信息

4、增刪等操作

創(chuàng)建pod資源

  • 創(chuàng)建pod資源分為兩種,一種為 自主式pod ,一種為 控制器pod
  • 自主式pod 創(chuàng)建無法指定副本數(shù)量,當(dāng)pod掛掉后,不會進(jìn)行重建,可直接刪除。
  • 控制器pod 創(chuàng)建可以設(shè)置副本數(shù)量,且當(dāng)pod掛掉后,pod控制器會重新創(chuàng)建,要想刪除只能刪除pod控制器。
kubectl create ns app
#創(chuàng)建命名空間app
kubectl delete ns app
#刪除命名空間app
kubectl create deployment nginx-wl --image=nginx --port=80 --replicas=2 -n kube-public 
#在命名空間kube-public創(chuàng)建副本控制器(deployment)來啟動pod,并創(chuàng)建2個副本(pod名稱它會隨機)
//刪除它只能刪除的pod控制器,刪除控制器后,pod控制器下面的所有pod都會刪除
###注意?。。?!pod控制器,不能單獨創(chuàng)建,基本是和創(chuàng)建pod一起制定創(chuàng)建pod控制器。
kubectl run nginx-wl2 --image=nginx -n kube-public
#直接創(chuàng)建自主式pod(掛掉后不會重建,沒有pod控制器)
//可以直接刪除這個pod,它沒有pod控制器
kubectl describe deployment nginx-wl -n kube-public
#查看nginx-ydq的pod控制器的詳細(xì)信息,
kubectl describe pods 【pod名稱】 -n kube-public
#查看某個pod的詳細(xì)信息
kubectl delete deployment nginx-wl -n kube-public
#刪除pod控制器,(里面所有的pod都會被刪除)
kubectl delete pod nginx-wl2 -n kube-public
#刪除自主式pod。
kubectl delete pod 【pod名稱】 -n 【命名空間】 --force --grace-period=0
#如pod無法刪除,總是處于terminate狀態(tài),則要強行刪除
//grace-period 表示過度存活期,默認(rèn)30s,在刪除pod之前允許POD慢慢終止其上的容器進(jìn)程,從而優(yōu)雅退出,0表示立即終止

5、登錄pod中的容器

kubectl exec -it 【pod名稱】 bash
#可以跨主機登錄到指定的pod中的容器中,docker exec只能在容器所在主機上登錄

6、擴容縮容pod控制器的pod

可以根據(jù)指定的數(shù)量,創(chuàng)建或縮小任意的pod的數(shù)量。

kubectl scale deployment nginx-wl --replicas=4 -n kube-public
#擴容
kubectl scale deployment nginx-wl --replicas=2 -n kube-public 
#縮容

7、刪除副本控制器

kubectl delete deployment nginx-wl -n kube-public
kubectl delete deployment/nginx-wl -n kube-public

二、創(chuàng)建項目實例

項目的生命周期:創(chuàng)建-->發(fā)布-->更新-->回滾-->刪除

1、創(chuàng)建    kubectl create命令

  • 創(chuàng)建并運行一個或多個容器鏡像。
  • 創(chuàng)建一個deployment 或job 來管理容器。
//幫助
kubectl create --help  
//啟動 nginx 實例,暴露容器端口 80,設(shè)置副本數(shù) 3
kubectl create deployment nginx --image=nginx:1.14 --port=80 --replicas=3
kubectl get pods   ##查看創(chuàng)建的pods
kubectl get all   

2、發(fā)布    kubectl expose命令

Kubernetes為什么要用Service:

  • 一方面是因為 Pod 的 IP 不是固定的(Pod可能會重建)
  • 另一方面則是因為一組 Pod 實例之間總會有負(fù)載均衡的需求

對于容器應(yīng)用而言,Kubernetes 提供了基于 VIP(虛擬IP) 的網(wǎng)橋的方式訪問 Service,再由 Service 重定向到相應(yīng)的 Pod。

service 的 type 類型:

  • ClusterIP:提供一個集群內(nèi)部的虛擬IP以供Pod訪問(service默認(rèn)類型)
  • NodePort:在每個Node上打開一個端口以供外部訪問,Kubernetes將會在每個Node上打開一個端口并且每個Node的端口都是一樣的,通過 NodeIp:NodePort 的方式Kubernetes集群外部的程序可以訪問Service。每個端口只能是一種服務(wù),端口范圍只能是 30000-32767。
  • LoadBalancer:通過設(shè)置LoadBalancer映射到云服務(wù)商提供的LoadBalancer地址。這種用法僅用于在公有云服務(wù)提供商的云平臺上設(shè)置Service的場景。通過外部的負(fù)載均衡器來訪問,通常在云平臺部署LoadBalancer還需要額外的費用。在service提交后,Kubernetes就會調(diào)用CloudProvider在公有云上為你創(chuàng)建一個負(fù)載均衡服務(wù),并且把被代理的Pod的IP地址配置給負(fù)載均衡服務(wù)做后端。
  • externalName:將service名稱映射到一個DNS域名上,相當(dāng)于DNS服務(wù)的CNAME記錄,用于讓Pod去訪問集群外部的資源,它本身沒有綁定任何的資源。

將資源暴露為新的 Service。

kubectl expose --help
//為deployment的nginx創(chuàng)建service,并通過Service的80端口轉(zhuǎn)發(fā)至容器的80端口上,Service的名稱為nginx-service,類型為NodePort
kubectl expose deployment nginx --port=80 --target-port=80 --name=nginx-service --type=NodePort
//查看pod網(wǎng)絡(luò)狀態(tài)詳細(xì)信息和 Service暴露的端口
kubectl get pods,svc -o wide

3、更新    kubectl set

#更改現(xiàn)有應(yīng)用資源一些信息。
kubectl set --help
#查看當(dāng)前 nginx 的版本號
curl -I 192.168.247.10:30801
#將nginx 版本更新為 1.15 版本
kubectl set image deployment/nginx nginx=nginx:1.15
#處于動態(tài)監(jiān)聽 pod 狀態(tài),由于使用的是滾動更新方式,所以會先生成一個新的pod,然后刪除一個舊的pod,往后依次類推
kubectl get pods -w
#再看更新好后的 Pod 的 ip 會改變
kubectl get pods -o wide
#再看 nginx 的版本號
curl -I 192.168.247.10:30801

4、回滾    kubectl rollout 

#對資源進(jìn)行回滾管理
kubectl rollout --help
*查看歷史版本
kubectl rollout history deployment/nginx 
*執(zhí)行回滾到上一個版本
kubectl rollout undo deployment/nginx
*執(zhí)行回滾到指定版本
kubectl rollout undo deployment/nginx --to-revision=1
*檢查回滾狀態(tài)
kubectl rollout status deployment/nginx

5、刪除    kubectl delete

#刪除副本控制器
kubectl delete deployment/nginx
#刪除service
kubectl delete svc/nginx-service
kubectl get all

三、金絲雀發(fā)布

Deployment控制器支持自定義控制更新過程中的滾動節(jié)奏,如“暫停(pause)”或“繼續(xù)(resume)”更新操作。比如等待第一批新的Pod資源創(chuàng)建完成后立即暫停更新過程,此時,僅存在一部分新版本的應(yīng)用,主體部分還是舊的版本。然后,再篩選一小部分的用戶請求路由到新版本的Pod應(yīng)用,繼續(xù)觀察能否穩(wěn)定地按期望的方式運行。確定沒問題之后再繼續(xù)完成余下的Pod資源滾動更新,否則立即回滾更新操作。這就是所謂的金絲雀發(fā)布。

1、更新deployment的版本,并配置暫停deployment

kubectl set image deployment/nginx nginx=nginx:1.14 && kubectl rollout pause deployment/nginx
kubectl rollout status deployment/nginx  #觀察更新狀態(tài)
 

2、將已更新的Pod進(jìn)行端口單獨暴露

##創(chuàng)建一個新的service
kubectl expose deployment nginx-zz --name=hew-nginx.servicet=80 --target-port=80 --type=NodePort
##查看相關(guān)信息
kubectl get endpoints
##獲取到新Pod的子標(biāo)簽
kubectl get pod --show-labels -owide、
##獲取新service的yaml文件
kubectl edit svc new-nginx 

驗證:

3、確保更新的pod沒問題了,繼續(xù)更新

kubectl rollout resume deployment/nginx

4、查看最后的更新情況

kubectl get pods -w 

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

相關(guān)文章

  • k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場景案例

    k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場景案例

    這篇文章主要為大家介紹了k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場景案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • k8s之Pod控制器使用及說明

    k8s之Pod控制器使用及說明

    本文介紹了Kubernetes中的Pod控制器,包括Deployment、ReplicaSet、StatefulSet、DaemonSet、Job和CronJob等類型,詳細(xì)解釋了它們的工作原理、特點和應(yīng)用場景
    2025-11-11
  • k8s證書有效期時間修改的方法詳解

    k8s證書有效期時間修改的方法詳解

    K8S集群有證書的概念,之前一直是使用默認(rèn)的,默認(rèn)都是1年和10年的,1年有效期這顯然對于生產(chǎn)環(huán)境是不合適的,下面這篇文章主要給大家介紹了關(guān)于k8s證書有效期時間修改的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • kubelet啟動失敗的解決方案

    kubelet啟動失敗的解決方案

    這篇文章主要介紹了kubelet啟動失敗的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-10-10
  • kubernetes中pod的調(diào)度親和性affinity詳解

    kubernetes中pod的調(diào)度親和性affinity詳解

    本文簡要介紹了Kubernetes中的三種親和性機制:節(jié)點親和性(控制Pod調(diào)度到指定節(jié)點)、Pod親和性(與特定Pod共處同一節(jié)點)和Pod反親和性(避免與特定Pod共處同一節(jié)點),并通過示例說明了其配置方式及實際調(diào)度效果
    2025-09-09
  • Kubernetes Gateway API TLS路由使用及說明

    Kubernetes Gateway API TLS路由使用及說明

    TLSRoute是GatewayAPI中的一個資源類型,用于處理TLS流量,可以根據(jù)主機名等TLS元數(shù)據(jù)將流量定向到不同的Kubernetes后端服務(wù),通過配置Gateway和TLSRoute,可以實現(xiàn)TLS流量的透傳和終止處理,滿足不同的安全和管理需求
    2026-03-03
  • K8s中的臨時容器Ephemeral?Containers使用

    K8s中的臨時容器Ephemeral?Containers使用

    這篇文章主要介紹了K8s中的臨時容器Ephemeral?Containers使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • K8S Node異常問題排查過程

    K8S Node異常問題排查過程

    文章介紹了使用kubectl命令行對K8S集群中的Node異常進(jìn)行初步定位的方法,包括查看NotReady發(fā)生時間、異常event、NodeConditions以及kubelet日志,文章還詳細(xì)描述了常見問題的解決方法,如Kubelet停止匯報心跳、PLEG不可用和Node被驅(qū)逐等情況
    2026-01-01
  • Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解

    Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解

    這篇文章主要為大家介紹了Kubernetes存儲系統(tǒng)數(shù)據(jù)持久化管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • k8s控制deamonset中pod數(shù)量的方法

    k8s控制deamonset中pod數(shù)量的方法

    DaemonSet是Kubernetes中用于確保每個節(jié)點運行一個Pod副本的控制器,常用于運行集群守護進(jìn)程,通過節(jié)點選擇器、節(jié)點親和性、容忍度和更新策略,可以精確控制Pod的數(shù)量和調(diào)度,本文介紹k8s控制deamonset中pod數(shù)量的方法,感興趣的朋友一起看看吧
    2025-01-01

最新評論

甘南县| 庆云县| 确山县| 石林| 南昌县| 高要市| 达尔| 子洲县| 梅河口市| 北流市| 枝江市| 蓬莱市| 东辽县| 南涧| 那曲县| 津市市| 宝应县| 偏关县| 澄城县| 石门县| 厦门市| 尉犁县| 海丰县| 郯城县| 兴安盟| 合阳县| 招远市| 巴马| 宣汉县| 卢湾区| 措美县| 岱山县| 简阳市| 乌审旗| 塘沽区| 文登市| 区。| 吉林省| 蒙山县| 庆安县| 鄂州市|