真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Kubectl管理Kubernetes的全解教程

云計(jì)算

我們將介紹如何在您的計(jì)算機(jī)上安裝kubectl,如何與您的Kubernetes環(huán)境進(jìn)行通信并執(zhí)行一些常見操作。大多數(shù)常見的kubectl命令會(huì)提供某特定的操作,如創(chuàng)建、刪除等。此方法通常需要解釋描述Kubernetes中的對(duì)象(如POD、服務(wù)、資源等)的文件(YAML或JSON)。這些文件通常被用作模板以及環(huán)境的持續(xù)文檔,并有助于保留Kubernetes對(duì)聲明性配置的關(guān)注。命令行上給出的操作將傳遞給API服務(wù)器,然后根據(jù)需要與Kubernetes中的后端服務(wù)進(jìn)行通信。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名雅安服務(wù)器托管、營(yíng)銷軟件、網(wǎng)站建設(shè)、本溪網(wǎng)站維護(hù)、網(wǎng)站推廣。

我們將介紹一些最常見的kubectl命令并提供一些示例。有關(guān)每個(gè)命令的更多詳細(xì)信息,包括所有支持的標(biāo)志和子命令,請(qǐng)查看kubectl參考文檔:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands。

安裝kubectl

kubectl是一個(gè)獨(dú)立的程序,因此不需要復(fù)雜的安裝過(guò)程。它是一個(gè)需要位于操作系統(tǒng)PATH中的單個(gè)文件。有許多方法可以獲得kubectl二進(jìn)制文件,例如通過(guò)操作系統(tǒng)的本機(jī)包管理器或通過(guò)curl。下表中的一些示例就是如何為各種操作系統(tǒng)安裝kubectl:

注意

隨著新版本的發(fā)布,版本的kubectl for Windows將隨著時(shí)間的推移而發(fā)生變化。要查找當(dāng)前二進(jìn)制文件,請(qǐng)點(diǎn)擊此鏈接查找最新的穩(wěn)定版本,并根據(jù)需要調(diào)整上述URL:https://storage.googleapis.com/kubernetes-release/release/stable.txt

環(huán)境中使用的kubectl版本,需要與Kubernetes服務(wù)器的版本保持一致。您可以通過(guò)鍵入以下內(nèi)容來(lái)查看正在使用的kubectl客戶端的版本:

kubectl在各方面都會(huì)保持與一個(gè)版本的兼容性。其中客戶端版本會(huì)比服務(wù)器版本領(lǐng)先一步。這為服務(wù)器版本:v1.13.4中提供的功能和命令提供了支持。如果客戶端版本不是服務(wù)器版本之后的各版本中的一個(gè),那么在嘗試訪問(wèn)相應(yīng)服務(wù)器版本中可用的功能時(shí),可能會(huì)遇到錯(cuò)誤或不兼容。

kubectl語(yǔ)法

kubectl 的語(yǔ)法使用如下:

Command(命令):指你想要執(zhí)行的操作(創(chuàng)建、刪除等等)

Type(類別):指你正在執(zhí)行命令的資源類型(Pod、Service等)

Name(名稱):對(duì)象的名稱(需區(qū)分大小寫)。如果未指定名稱,則可以獲取有關(guān)命令匹配的所有資源的信息(例如Pod)

Flags(標(biāo)志):這個(gè)可以按需選擇(非必須),不過(guò)它在查找特定資源時(shí)非常有用。例如,--namespacespace可以讓你指定要在哪個(gè)特定的命名空間中執(zhí)行操作。

kubeconfig

kubectl使用配置文件來(lái)訪問(wèn)Kubernetes集群。默認(rèn)的kubectl配置文件位于?/ .kube / config,稱為kubeconfig文件。

kubeconfig文件組織有關(guān)集群、用戶、命名空間和身份驗(yàn)證機(jī)制的信息。kubectl命令使用這些文件來(lái)查找它在選擇集群并與之通信時(shí)所需要的信息。

加載順序遵循以下規(guī)則:

如果設(shè)置了--kubeconfig標(biāo)志,則僅加載給定文件。該標(biāo)志只能設(shè)置一次,不會(huì)發(fā)生合并。

如果設(shè)置了$ KUBECONFIG環(huán)境變量,則根據(jù)系統(tǒng)的正常路徑分隔規(guī)則,將其解析為文件系統(tǒng)路徑列表。

否則,如果上述兩項(xiàng)都未設(shè)置,則使用${HOME}/.kube/config 文件,不進(jìn)行任何合并。

如果您看到類似于以下內(nèi)容的消息,則意味著kubectl配置不正確或無(wú)法連接到Kubernetes集群。

The?connection?to?the?server??was?refused?-?did?you?specify?the?right?host?or?port?

你可以通過(guò)多種方式創(chuàng)建配置文件,具體取決于你使用何種Kubernetes發(fā)行版。以下列出的是不同的K8S發(fā)行版及其位置:

RKE

使用RKE創(chuàng)建Kubernetes集群時(shí),RKE會(huì)在本地目錄中創(chuàng)建一個(gè)kube_config_rancher-cluster.yml文件,該文件包含使用kubectl等工具連接到新集群所需的憑據(jù)。

您可以將此文件復(fù)制到$ HOME / .kube / config,或者,如果您正在使用多個(gè)Kubernetes集群,請(qǐng)將KUBECONFIG環(huán)境變量設(shè)置為kube_config_rancher-cluster.yml的路徑,如下所示:

Rancher統(tǒng)一管理的Kubernetes集群

在Rancher中,您可以通過(guò)Web UI下載kubeconfig文件,并使用它通過(guò)kubectl連接到Kubernetes環(huán)境。

在Rancher UI中,單擊要通過(guò)kubectl連接的集群。在頁(yè)面的右上角,單擊Kubeconfig File按鈕:

單擊按鈕以詳細(xì)查看配置文件以及放置在~/.kube/config中的方向。

將配置復(fù)制到~/.kube/config后,你無(wú)需指定--kube-config文件位置,就可以運(yùn)行kubectl命令:

一些基本命令的示例

以下我將重點(diǎn)介紹在典型環(huán)境中會(huì)用到的許多命令。我們將從概述集群開始,一直到探索Kubernetes環(huán)境中當(dāng)前正在運(yùn)行的內(nèi)容的各種場(chǎng)景。

相信下文的內(nèi)容將幫助您熟悉kubectl和典型輸出的命令。

管理kubectl配置

kubectl命令包含一些不同的命令,可用來(lái)幫助查看和管理自己的配置。這些在初始設(shè)置期間,或在你需要處理的集群集發(fā)生變化時(shí),將非常有用。

要查看當(dāng)前配置,請(qǐng)鍵入:

apiVersion:?v1?clusters:?-?cluster:?????certificate-authority-data:?DATA+OMITTED?????server:?https://www..com/k8s/clusters/???name:?gcpcluster?-?cluster:?????certificate-authority-data:?DATA+OMITTED?????server:?https://10.240.0.41:6443???name:?gcpcluster-k8s-1?-?cluster:?????certificate-authority-data:?DATA+OMITTED?????server:?https://10.240.0.42:6443???name:?gcpcluster-k8s-2?-?cluster:?????certificate-authority-data:?DATA+OMITTED?????server:?https://10.240.0.43:6443???name:?gcpcluster-k8s-3?contexts:?-?context:?????cluster:?gcpcluster?????namespace:?rancher?????user:?user-qkvpz???name:?gcpcluster

你將能看到的輸出內(nèi)容匯總展現(xiàn)了你所配置的集群和及上下文。cluster鍵包含每個(gè)可用集群的列表,以及相關(guān)的連接和驗(yàn)證詳細(xì)信息。contexts鍵將用戶、集群和可選的命名空間組合在一起,以形成用于與集×××互的唯一標(biāo)識(shí)和使用上下文。

要獲得每個(gè)可用上下文的更簡(jiǎn)潔摘要,你可以鍵入:

輸出的內(nèi)容顯示了每個(gè)已定義上下文的詳細(xì)信息以及當(dāng)前選定的上下文,由星號(hào)(*)表示。

要快速檢查當(dāng)前使用的上下文,請(qǐng)鍵入:

雖然我們不會(huì)在本摘要中介紹它,但除此之外你還可以使用kubectl set-cluster、kubectl set-credentials和kubectl set-context以及各種標(biāo)志來(lái)定義集群和上下文,不過(guò)我們?cè)诒疚闹芯筒毁樖隽恕?/p>

要更改要連接的上下文,請(qǐng)使用use-context命令:

檢查集群組件的狀態(tài)

為集群選擇好適當(dāng)?shù)纳舷挛暮螅梢允褂胓et componentstatuses(縮寫為get cs)命令檢查核心主組件的狀態(tài):

輸出的內(nèi)容將顯示調(diào)度程序、控制器管理器和etcd節(jié)點(diǎn)的狀態(tài)以及從每個(gè)服務(wù)收集的最新消息和錯(cuò)誤。如果你的集群運(yùn)行不正常,這是一個(gè)很好的、進(jìn)行第一次診斷檢查的機(jī)會(huì)。

可以使用cluster-info命令收集其他連接和服務(wù)信息:

Kubernetes?master?is?running?at?https://www..com/k8s/clusters/?Kubedns?is?running?at?https://www..com/k8s/clusters//api/v1/namespaces/kube-system/services/kube-dns:dns/proxy?To?further?debug?and?diagnose?cluster?problems,?use?\'kubectl?cluster-info?dump\'.

這里,輸出顯示了我們的Kubernetes master的端點(diǎn)以及KubeDNS服務(wù)端點(diǎn)的端點(diǎn)。

要查看有關(guān)作為集群成員的每個(gè)單個(gè)節(jié)點(diǎn)的信息,需使用get nodes命令:

NAME????STATUS???ROLES??????????????????????AGE???VERSION???INTERNAL-IP???EXTERNAL-IP???OS-IMAGE???????KERNEL-VERSION????CONTAINER-RUNTIME?k8s-1???Ready????controlplane,etcd,worker???34d???v1.13.5?????????????????????Ubuntu?18.10???4.18.0-1011-gcp???docker://18.9.5?k8s-2???Ready????controlplane,etcd,worker???34d???v1.13.5?????????????????????Ubuntu?18.10???4.18.0-1011-gcp???docker://18.9.5?k8s-3???Ready????controlplane,etcd,worker???34d???v1.13.5?????????????????????Ubuntu?18.10???4.18.0-1011-gcp???docker://18.9.5

這列出了在每個(gè)節(jié)點(diǎn)上運(yùn)行的核心軟件的狀態(tài)、角色、連接信息和版本號(hào)。如果需要在集群節(jié)點(diǎn)上執(zhí)行維護(hù)或登錄以調(diào)試問(wèn)題,此命令可以幫助您提供所需的信息。

查看資源和事件信息

要概述集群中可用的命名空間,請(qǐng)使用get namespaces命令:

這顯示了當(dāng)前集群中定義的命名空間分區(qū)。

要跨所有命名空間概述集群上運(yùn)行的所有資源,使用以下命令:

輸出的內(nèi)容會(huì)顯示部署了每個(gè)資源的命名空間信息,以及加上了資源類型前綴的資源名稱(例如上面顯示的示例中的pod)。之后,有關(guān)每個(gè)資源的就緒和運(yùn)行狀態(tài)的信息將有助于確定進(jìn)程是否運(yùn)行正常。

要查看與資源關(guān)聯(lián)的事件,請(qǐng)使用get events命令:

NAMESPACE???????LAST?SEEN???TYPE??????REASON???????????????????KIND??????????????????????MESSAGE?cattle-system???9m31s???????Normal????BackOff??????????????????Pod???????????????????????Back-off?pulling?image?miguelgt/k8s-demo:v2?cattle-system???24m?????????Warning???Failed???????????????????Pod???????????????????????Error:?ImagePullBackOff?cattle-system???14m?????????Normal????BackOff??????????????????Pod???????????????????????Back-off?pulling?image?miguelgt/k8s-demo:v2?cattle-system???9m30s???????Warning???Failed???????????????????Pod???????????????????????Error:?ImagePullBackOff

輸出內(nèi)容將列出資源記錄的最新事件,包括事件消息及其觸發(fā)的原因。

示 例

為了更具體地演示您在使用kubectl時(shí)可能參與的工作流程,我們將在這一部分介紹將容器部署到集群的快速方案,并將其部署到非默認(rèn)命名空間中。

默認(rèn)情況下,如果在未指定命名空間的情況下部署集群,kubectl會(huì)將資源放在名為default的命名空間中。如果要部署到其他名稱空間,則需要指定所需的替代項(xiàng)。

雖然我們可以為創(chuàng)建命令提供命名空間,但如果我們要使用命名空間來(lái)處理多個(gè)命令,更改上下文的方法會(huì)更為容易。更改與上下文關(guān)聯(lián)的命名空間將自動(dòng)將命名空間規(guī)范應(yīng)用于任何其他命令,直到更改上下文。

要更改當(dāng)前上下文的命名空間,請(qǐng)使用帶有--currentand --namespace標(biāo)志的set-context命令:

這將改變當(dāng)前上下文,以自動(dòng)將未來(lái)的操作應(yīng)用于rancher命名空間。

接下來(lái),我們可以創(chuàng)建一個(gè)名為nginx的部署,它基于默認(rèn)的nginx容器鏡像運(yùn)行容器。因?yàn)槲覀兏淖兞宋覀兊纳舷挛模运鼤?huì)在rancher命名空間中運(yùn)行:

您可以通過(guò)列出當(dāng)前部署的pod來(lái)檢查部署是否成功:

在這里,我們可以看到Nginx部署正常運(yùn)行。READY那一列顯示容器已就緒,狀態(tài)是“正在運(yùn)行”,沒有出現(xiàn)故障。

雖然我們已經(jīng)驗(yàn)證了pod正在運(yùn)行,但我們還沒有得到關(guān)于它部署到了哪個(gè)命名空間的信息。但是,我們可以通過(guò)添加--all-namespaces標(biāo)志來(lái)稍微改變輸出:

這將顯示在每個(gè)命名空間中運(yùn)行的pod,并另外添加一個(gè)NAMESPACE列,列出每個(gè)資源部署到了哪個(gè)命名空間。在這里,我們看到Nginx pod已正確部署到我們的rancher命名空間而不是通常的default命名空間。

這表明我們的上下文操作和我們的部署都按預(yù)期工作了。

你還可以通過(guò)鍵入以下內(nèi)容來(lái)清理已部署的資源:

其他參考信息

雖然本章中深入討論這些內(nèi)容可能超出了本文原意的范圍,但我們還是為大家列出了一些非常有用的命令。

Pod

資源刪除

服務(wù)

事件&指標(biāo)

命名空間&安全

中級(jí)命令

其他資源

kubectl的官方概述:https://kubernetes.io/docs/reference/kubectl/overview/

kubectl的官方命令文檔:https://kubernetes.io/docs/reference/kubectl/kubectl/

kubectl的官方備忘單:https://kubernetes.io/docs/reference/kubectl/cheatsheet/

Rancher kubeconfig文檔:https://rancher.com/docs/rancher/v2.x/en/cluster-admin/kubeconfig/

有關(guān)使用kubectl訪問(wèn)集群的Rancher文檔:https://rancher.com/docs/rancher/v2.x/en/cluster-admin/kubectl/

kubectl配置命令:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#config

使用kubeconfig文件組織集群:https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/


當(dāng)前標(biāo)題:使用Kubectl管理Kubernetes的全解教程
鏈接URL:http://weahome.cn/article/cgeshi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部