kubectl查看node状态_适用于初学者的基本 kubectl 和 Helm 命令 | Linux 中国
去雜貨店“采購”這些命令,你需要用這些 Kubernetes 工具來入門。
最近,我丈夫告訴我他即將要去參加一個工作面試,面試時他需要在計算機上運行一些基本命令。他對這場面試感到焦慮,但是對于他來說,學習和記住事情的最好方法是將不了解的事物比喻為非常熟悉的事物。因為我們的談話是在我逛雜貨店試圖決定當晚要烹飪的食物之后進行的,所以這啟發(fā)我用一次去雜貨店的行程來介紹?kubectl?和?helm?命令。
Helm(“舵輪”)是在 Kubernetes(來自希臘語,意思是“舵手” 或 “領航員”)中管理應用程序的工具。你可以輕松地使用你的應用程序信息來部署“海圖chart”,從而可以在你的 Kubernetes 環(huán)境中幾分鐘之內讓它們就緒并預配置好。在學習新知識時,查看示例的“海圖”以了解其用法總是很有幫助的,因此,如果有時間,請查看這些成型的“海圖”。(LCTT 譯注:Kubernetes 生態(tài)中大量使用了和航海有關的比喻,因此本文在翻譯時也采用了這些比喻)
kubectl?是與 Kubernetes 環(huán)境交互的命令行界面,允許你配置和管理集群。它需要一些配置才能在環(huán)境中工作,因此請仔細閱讀其文檔以了解你需要做什么。
我會在示例中使用命名空間,你可以在我的文章《Kubernetes 命名空間入門》中了解它。
現在我們已經準備好了,讓我們開始?kubectl和?helm?基本命令的購物之旅!
用 Helm 列出清單
你去商店之前要做的第一件事是什么?好吧,如果你做事有條理,會創(chuàng)建一個“清單”。同樣,這是我將解釋的第一個基本的 Helm 命令。
在一個用 Helm 部署的應用程序中,list?命令提供有關應用程序當前版本的詳細信息。在此示例中,我有一個已部署的應用程序:Jenkins CI/CD 應用程序。運行基本的?list?命令總是會顯示默認的命名空間。由于我沒有在默認的命名空間中部署任何內容,因此不會顯示任何內容:
$helm listNAME ? ?NAMESPACE ? ?REVISION ? ?UPDATED ? ?STATUS ? ?CHART ? ?APP VERSION但是,如果運行帶有額外標志的命令,則會顯示我的應用程序和信息:
$helm list --all-namespacesNAME ?? ?NAMESPACE ?REVISION ?UPDATED ? ? ? ? ? ? ? ? ? STATUS ? ? ?CHART ? ? ? ? ? APP ?VERSIONjenkins ?jenkins ? ? ? ?1 ? ? ? ? 2020-01-18 16:18:07 EST ? deployed ? ?jenkins-1.9.4 ? lts最后,我可以指示?list?命令只檢查我想從中獲取信息的命名空間:
$helm list --namespace jenkinsNAME ?? ?NAMESPACE ?REVISION ?UPDATED ? ? ? ? ? ? ? ? ? STATUS ? ?CHART ? ? ? ? ?APP VERSIONjenkins ? ?jenkins ? ? ?1 ? ? ? ? ? ? ?2020-01-18 16:18:07 EST ?deployed ?jenkins-1.9.4 ?lts ? ?現在我有了一個清單,并且知道該清單上有什么,我可以使用?get?命令來“獲取”我的物品!我會從 Kubernetes 集群開始,看看我能從中獲取到什么?
用 Kubectl 獲取物品
kubectl get?命令提供了有關 Kubernetes 中許多事物的信息,包括“吊艙Pod”、節(jié)點和命名空間。同樣,如果沒有指定命名空間標志,就會使用默認的命名空間。首先,我獲取集群中的命名空間以查看正在運行的命名空間:
$kubectl get namespacesNAME ? ? ? ? ?? ?STATUS ? AGEdefault ? ? ? ? ?Active ? 53mjenkins ? ? ? ? ?Active ? 44mkube-node-lease ?Active ? 53mkube-public ? ? ?Active ? 53mkube-system ? ? ?Active ? 53m現在我已經知道了在我的環(huán)境中運行的有哪些命名空間了,接下來獲取節(jié)點并查看有多少個節(jié)點正在運行:
$kubectl get nodesNAME ? ? ? STATUS ? ROLES ? ? ? AGE ? VERSIONminikube ? Ready ? ?master ?55m ? v1.16.2我有一個節(jié)點正在運行,這主要是因為我的 Minikube 運行在一臺小型服務器上。要得到在我的這一個節(jié)點上運行的“吊艙”可以這樣:
$kubectl get podsNo resources found in default namespace.啊哦,它是空的。我將通過以下方式獲取 Jenkins 命名空間中的內容:
$kubectl get pods --namespace jenkinsNAME ? ? ? ? ? ? ? ? ? ? ?READY ?STATUS ? RESTARTS ?AGEjenkins-7fc688c874-mh7gv ?1/1 ? ?Running ?0 ? ? ? ? 40m好消息!這里發(fā)現了一個“吊艙”,它還沒有重新啟動過,已運行了 40 分鐘了。好的,如今我知道“吊艙”已經裝好,所以我想看看用 Helm 命令可以得到什么。
用 Helm 獲取信息
helm get?命令稍微復雜一點,因為這個“獲取”命令所需要的不僅僅是一個應用程序名稱,而且你可以從應用程序中請求多個內容。我會從獲取用于制作該應用程序的值開始,然后展示“獲取全部”的操作結果的片段,該操作將提供與該應用程序相關的所有數據。
$helm get values jenkins -n jenkinsUSER-SUPPLIED VALUES:null由于我只安裝了最小限度的穩(wěn)定版,因此配置沒有更改。如果我運行“獲取全部”命令,我將得到所有的“海圖”:
$helm get all jenkins -n jenkinsoutput from helm get all command
這會產生大量數據,因此我始終建議保留一份 Helm “海圖”的副本,以便你可以查看“海圖”中的模板。我還創(chuàng)建自己的值來了解自己所擁有的。
現在,我把所有的商品都放在購物車中了,我會檢查一下“描述”它們包含什么的標簽。這些示例僅與?kubectl?命令有關,它們描述了我通過 Helm 部署的內容。
用 kubectl 查看描述
正如我使用“獲取”命令(該命令可以描述 Kubernetes 中的幾乎所有內容)所做的那樣,我將示例限定到命名空間、“吊艙”和節(jié)點上。由于我知道它們每一個是什么,因此這很容易。
$kubectl describe ns jenkinsName: ? ? ? ? ? jenkinsLabels: ? ? ? ? <none>Annotations: ?<none>Status: ? ? ? ? ActiveNo resource quota.No resource limits.我可以看到我的命名空間的名稱,并且它是活動的,沒有資源或限額限制。
describe pods?命令會產生大量信息,因此我這里提供的是一小段輸出。如果你在不使用“吊艙”名稱的情況下運行該命令,它將返回名稱空間中所有“吊艙”的信息,這可能會很麻煩。因此,請確保在此命令中始終包含“吊艙”名稱。例如:
$kubectl describe pods jenkins-7fc688c874-mh7gv --namespace jenkinsoutput of kubectl-describe-pods
這會提供容器的狀態(tài)、管理方式、標簽以及“吊艙”中所使用的鏡像(還有很多其它信息)。沒有在這個簡化過的輸出中包括的數據有:在 Helm 配置值文件中應用的各種條件下的資源請求和限制、初始化容器和存儲卷信息。如果你的應用程序由于資源不足而崩潰,或者是一個需要運行前置腳本進行配置的初始配置容器,或者生成不應該存儲于純文本 YAML 文件中的隱藏密碼,則此數據很有用。
最后,我將使用?describe node?命令,當然,它是用來描述節(jié)點的。由于本示例只有一個名為 Minikube 的示例,因此我將使用這個名字。如果你的環(huán)境中有多個節(jié)點,則必須包含你想查找的的節(jié)點名稱。
與“吊艙”一樣,這個節(jié)點的命令會產生大量數據,因此我將僅包括輸出片段。
$kubectl describe node minikubeoutput of kubectl describe node
注意,describe node?是更重要的基本命令之一。如此圖所示,該命令返回統(tǒng)計信息,該信息指示節(jié)點何時資源用盡,并且該數據非常適合在需要擴展時(如果你的環(huán)境中沒有自動擴展)向你發(fā)出警報。此輸出片段中未包含的其它內容包括:對所有資源和限制的請求所占的百分比,以及資源的使用期限和分配(例如,對于我的應用程序而言)。
買單
使用這些命令,我完成了“購物”并得到了我想要的一切。希望這些基本命令也能在你使用 Kubernetes 的日常工作中提供幫助。
我鼓勵你經常使用命令行并學習“幫助”部分中的速記標志,你可以通過運行以下命令來查看這些標志:
$helm --help或
$kubectl -h花生醬和果凍
有些東西像花生醬和果凍一樣混在一起。Helm 和?kubectl?就有點像那樣交錯在一起。
我經常在自己的環(huán)境中使用這些工具。因為它們在很多地方都有很多相似之處,所以在使用其中一個之后,我通常需要跟進另一個。例如,我可以進行 Helm 部署,并使用?kubectl?觀察它是否失敗。一起試試它們,看看它們能為你做什么。
via:?https://opensource.com/article/20/2/kubectl-helm-commands
作者:Jessica Cherry?選題:lujun9972?譯者:wxy?校對:wxy
本文由?LCTT?原創(chuàng)編譯,Linux中國?榮譽推出
總結
以上是生活随笔為你收集整理的kubectl查看node状态_适用于初学者的基本 kubectl 和 Helm 命令 | Linux 中国的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iframe 页面富文本框数据怎么保存_
- 下一篇: 计算机网络课设题目java_java课程