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

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

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

一、陳述式對(duì)象管理

1、基本概念

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

kubectl 命令

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

kubectl命令語(yǔ)法格式如下

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

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

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

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

kubectl get <resource> [-o wide|json|yaml] [-n namespace]
#獲取資源的相關(guān)信息,-o指定輸出格式,-n 指定命令空間
//<resource> :可以是具體資源名稱(chēng),如pods
//nginx-xxx: 也可以是資源類(lèi)型,如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)簽類(lèi)型信息
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é)點(diǎn)集群的信息
kubectl get ns
#查看命令空間資源(用于允許不同 命名空間 的 相同類(lèi)型 的資源 重名的)
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)建無(wú)法指定副本數(shù)量,當(dāng)pod掛掉后,不會(huì)進(jìn)行重建,可直接刪除。
  • 控制器pod 創(chuàng)建可以設(shè)置副本數(shù)量,且當(dāng)pod掛掉后,pod控制器會(huì)重新創(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)來(lái)啟動(dòng)pod,并創(chuàng)建2個(gè)副本(pod名稱(chēng)它會(huì)隨機(jī))
//刪除它只能刪除的pod控制器,刪除控制器后,pod控制器下面的所有pod都會(huì)刪除
###注意?。。?!pod控制器,不能單獨(dú)創(chuàng)建,基本是和創(chuàng)建pod一起制定創(chuàng)建pod控制器。
kubectl run nginx-wl2 --image=nginx -n kube-public
#直接創(chuàng)建自主式pod(掛掉后不會(huì)重建,沒(méi)有pod控制器)
//可以直接刪除這個(gè)pod,它沒(méi)有pod控制器
kubectl describe deployment nginx-wl -n kube-public
#查看nginx-ydq的pod控制器的詳細(xì)信息,
kubectl describe pods 【pod名稱(chēng)】 -n kube-public
#查看某個(gè)pod的詳細(xì)信息
kubectl delete deployment nginx-wl -n kube-public
#刪除pod控制器,(里面所有的pod都會(huì)被刪除)
kubectl delete pod nginx-wl2 -n kube-public
#刪除自主式pod。
kubectl delete pod 【pod名稱(chēng)】 -n 【命名空間】 --force --grace-period=0
#如pod無(wú)法刪除,總是處于terminate狀態(tài),則要強(qiáng)行刪除
//grace-period 表示過(guò)度存活期,默認(rèn)30s,在刪除pod之前允許POD慢慢終止其上的容器進(jìn)程,從而優(yōu)雅退出,0表示立即終止

5、登錄pod中的容器

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

6、擴(kuò)容縮容pod控制器的pod

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

kubectl scale deployment nginx-wl --replicas=4 -n kube-public
#擴(kuò)容
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)建項(xiàng)目實(shí)例

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

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

  • 創(chuàng)建并運(yùn)行一個(gè)或多個(gè)容器鏡像。
  • 創(chuàng)建一個(gè)deployment 或job 來(lái)管理容器。
//幫助
kubectl create --help  
//啟動(dòng) nginx 實(shí)例,暴露容器端口 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:

  • 一方面是因?yàn)?Pod 的 IP 不是固定的(Pod可能會(huì)重建)
  • 另一方面則是因?yàn)橐唤M Pod 實(shí)例之間總會(huì)有負(fù)載均衡的需求

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

service 的 type 類(lèi)型:

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

將資源暴露為新的 Service。

kubectl expose --help
//為deployment的nginx創(chuàng)建service,并通過(guò)Service的80端口轉(zhuǎn)發(fā)至容器的80端口上,Service的名稱(chēng)為nginx-service,類(lèi)型為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 的版本號(hào)
curl -I 192.168.247.10:30801
#將nginx 版本更新為 1.15 版本
kubectl set image deployment/nginx nginx=nginx:1.15
#處于動(dòng)態(tài)監(jiān)聽(tīng) pod 狀態(tài),由于使用的是滾動(dòng)更新方式,所以會(huì)先生成一個(gè)新的pod,然后刪除一個(gè)舊的pod,往后依次類(lèi)推
kubectl get pods -w
#再看更新好后的 Pod 的 ip 會(huì)改變
kubectl get pods -o wide
#再看 nginx 的版本號(hào)
curl -I 192.168.247.10:30801

4、回滾    kubectl rollout 

#對(duì)資源進(jìn)行回滾管理
kubectl rollout --help
*查看歷史版本
kubectl rollout history deployment/nginx 
*執(zhí)行回滾到上一個(gè)版本
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控制器支持自定義控制更新過(guò)程中的滾動(dòng)節(jié)奏,如“暫停(pause)”或“繼續(xù)(resume)”更新操作。比如等待第一批新的Pod資源創(chuàng)建完成后立即暫停更新過(guò)程,此時(shí),僅存在一部分新版本的應(yīng)用,主體部分還是舊的版本。然后,再篩選一小部分的用戶(hù)請(qǐng)求路由到新版本的Pod應(yīng)用,繼續(xù)觀察能否穩(wěn)定地按期望的方式運(yùn)行。確定沒(méi)問(wèn)題之后再繼續(xù)完成余下的Pod資源滾動(dòng)更新,否則立即回滾更新操作。這就是所謂的金絲雀發(fā)布。

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

kubectl set image deployment/nginx nginx=nginx:1.14 && kubectl rollout pause deployment/nginx
kubectl rollout status deployment/nginx  #觀察更新?tīng)顟B(tài)
 

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

##創(chuàng)建一個(gè)新的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 

驗(yàn)證:

3、確保更新的pod沒(méi)問(wèn)題了,繼續(xù)更新

kubectl rollout resume deployment/nginx

4、查看最后的更新情況

kubectl get pods -w 

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

相關(guān)文章

  • 常見(jiàn)Kubernetes kubectl命令使用詳解

    常見(jiàn)Kubernetes kubectl命令使用詳解

    這篇文章主要為大家介紹了常見(jiàn)Kubernetes kubectl命令使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • K8S?中?kubectl?命令詳解

    K8S?中?kubectl?命令詳解

    這篇文章主要介紹了K8S?中?kubectl?命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • K8S中的mountPath和subPath使用詳解

    K8S中的mountPath和subPath使用詳解

    這篇文章主要介紹了K8S中的mountPath和subPath使用的相關(guān)資料,通過(guò)示例展示了如何使用mountPath和subPath來(lái)掛載ConfigMap到Pod中,并解決了服務(wù)無(wú)法啟動(dòng)的問(wèn)題,需要的朋友可以參考下
    2024-12-12
  • K8S中五種控制器的介紹以及使用

    K8S中五種控制器的介紹以及使用

    這篇文章主要給大家介紹了關(guān)于K8S中五種控制器及使用的相關(guān)資料,控制器 又稱(chēng)之為工作負(fù)載,本文通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-12-12
  • k8s安裝calico時(shí)如何選擇網(wǎng)卡問(wèn)題

    k8s安裝calico時(shí)如何選擇網(wǎng)卡問(wèn)題

    這篇文章主要介紹了k8s安裝calico時(shí)如何選擇網(wǎng)卡問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程

    k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程

    這篇文章主要介紹了k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程,本文通過(guò)一個(gè)demo示例給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-04-04
  • Rainbond使用Dockerfile構(gòu)建便捷應(yīng)用運(yùn)行流程

    Rainbond使用Dockerfile構(gòu)建便捷應(yīng)用運(yùn)行流程

    這篇文章主要為大家介紹了Rainbond使用Dockerfile構(gòu)建便捷應(yīng)用運(yùn)行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • Harbor高可用配置及倉(cāng)庫(kù)使用介紹

    Harbor高可用配置及倉(cāng)庫(kù)使用介紹

    這篇文章主要為大家介紹了Harbor高可用配置及倉(cāng)庫(kù)使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • kubernetes k8s 存儲(chǔ)動(dòng)態(tài)掛載配置詳解

    kubernetes k8s 存儲(chǔ)動(dòng)態(tài)掛載配置詳解

    這篇文章主要為大家介紹了kubernetes k8s 存儲(chǔ)動(dòng)態(tài)掛載配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • k8s實(shí)現(xiàn)身份認(rèn)證策略及過(guò)程解析

    k8s實(shí)現(xiàn)身份認(rèn)證策略及過(guò)程解析

    這篇文章主要為大家介紹了k8s實(shí)現(xiàn)身份認(rèn)證策略及過(guò)程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02

最新評(píng)論