自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Kubernetes上對(duì)應(yīng)用程序進(jìn)行故障排除的6個(gè)技巧

運(yùn)維 系統(tǒng)運(yùn)維
我今天分享下我認(rèn)為最有用的5條故障排除技巧,以及一些其他的使用技巧。

[[378046]]

 從 Docker 遷移到 Docker Swarm,再到 Kubernetes,然后處理了多年來(lái)的所有各種 API 更改之后,我非常樂(lè)意發(fā)現(xiàn)部署中出現(xiàn)的問(wèn)題和把問(wèn)題進(jìn)行修復(fù)。我今天分享下我認(rèn)為最有用的5條故障排除技巧,以及一些其他的使用技巧。

kubectl –“瑞士軍刀”

kubectl 就是我們的瑞士軍刀,我們經(jīng)常在出現(xiàn)問(wèn)題的時(shí)候使用他們,在出現(xiàn)問(wèn)題如何使用他們很重要,讓我們從5個(gè)“實(shí)際案例”開(kāi)始,看出現(xiàn)問(wèn)題時(shí)如何使用它們。

情況將是:我的YAML已被接受,但我的服務(wù)未啟動(dòng)且已啟動(dòng),但無(wú)法正常工作。

1.kubectl get deployment/pods

這個(gè)命令如此重要的原因是它無(wú)需顯示大量?jī)?nèi)容即可顯示很有用的信息。

如果要為工作負(fù)載使用部署,則有兩種選擇: 

  1. kubectl get deploy  
  2. kubectl get deploy -n  名稱空間  
  3. kubectl get deploy –all-namespaces [或“ -A”] 

理想情況下,您希望看到的是1/1或等值的2/2,以此類推。這表明您的部署已被接受,并已嘗試進(jìn)行部署。

接下來(lái),您可能需要查看kubectl get pod,以查看部署的后備Pod是否正確啟動(dòng)。

2. kubectl get events

我感到驚訝的是,我不得不經(jīng)常向與Kubernetes有問(wèn)題的人們解釋這個(gè)小技巧。此命令將打印出給定名稱空間中的事件,非常適合查找關(guān)鍵問(wèn)題,例如崩潰的pod或無(wú)法pull容器鏡像。

Kubernetes中的日志是“未排序的”,因此,您將需要添加以下內(nèi)容,這些內(nèi)容取自O(shè)penFaaS文檔。 

  1. $ kubectl get events --sort-by=.metadata.creationTimestamp 

kubectl get事件的另一個(gè)接近的命令是是kubectl  describe,就像get deploy / pod一樣,它與對(duì)象的名稱一起工作: 

  1. kubectl describe deploy/figlet -n openfaas 

您會(huì)在這里獲得非常詳細(xì)的信息。您可以描述大多數(shù)事情,包括節(jié)點(diǎn),這些節(jié)點(diǎn)將顯示由于資源限制或其他問(wèn)題而無(wú)法啟動(dòng) Pod。

更多:什么,容器太多操作不過(guò)來(lái)?我選擇Docker Compose梭哈

3. kubectl logs

這個(gè)命令肯定經(jīng)常大家經(jīng)常使用,但很多人使用了錯(cuò)誤的方式。

如果您進(jìn)行了部署,比方說(shuō)cert-manager命名空間中的cert-manager,那么很多人認(rèn)為他們首先必須找到Pod的長(zhǎng)(唯一)名稱并將其用作參數(shù)。不對(duì)。 

  1. kubectl logs deploy/cert-manager -n cert-manager 

要跟蹤日志,請(qǐng)?zhí)砑?f 

  1. kubectl logs deploy/cert-manager -n cert-manager -f 

您可以將所有三個(gè)結(jié)合起來(lái)。

如果您的 Deployment 或 Pod 有任何標(biāo)簽,則可以使用 -l app = name 或任何其他標(biāo)簽集來(lái)附加到一個(gè)或多個(gè)匹配Pod的日志中。 

  1. kubectl logs -l app=nginx 

有一些工具,例如 stern 和 kail,可以幫助您匹配模式并節(jié)省一些鍵入操作,但我發(fā)現(xiàn)它們會(huì)分散您的注意力。

4.kubectl get -o yaml

當(dāng)您開(kāi)始使用由另一個(gè)項(xiàng)目或諸如Helm之類的其他工具生成的YAML時(shí),您將很快需要它。在生產(chǎn)中檢查鏡像的版本或您在某處設(shè)置的注釋也很有用。 

  1. kubectl run nginx-1 --image=nginx --port=80 --restart=Always 

輸出yaml 

  1. kubectl get deploy/nginx-1 -o yaml 

現(xiàn)在我們知道了。而且,我們可以添加–export并將YAML保存在本地以進(jìn)行編輯并再次應(yīng)用。

實(shí)時(shí)編輯YAML的另一個(gè)選項(xiàng)是kubectl edit,如果您對(duì)vim感到困惑,不知道如何使用,請(qǐng)?jiān)诿钋凹由蟅ISUAL = nano,使用這個(gè)簡(jiǎn)化編輯器。

5. kubectl scale  您打開(kāi)和關(guān)閉它了嗎?

Kubectl scale可用于將Deployment及其Pod縮小為零個(gè)副本,實(shí)際上殺死了所有副本。當(dāng)您將其縮放回1/1時(shí),將創(chuàng)建一個(gè)新的Pod,重新啟動(dòng)您的應(yīng)用程序。

語(yǔ)法非常簡(jiǎn)單,您可以重新啟動(dòng)代碼并再次進(jìn)行測(cè)試。 

  1. kubectl scale deploy/nginx-1 --replicas=0  
  2. kubectl scale deploy/nginx-1 --replicas=1 

6. Port forwarding

我們需要這個(gè)技巧, 通過(guò)kubectl進(jìn)行的端口轉(zhuǎn)發(fā)使我們可以在我們自己計(jì)算機(jī)上的本地或遠(yuǎn)程群集上公開(kāi)一項(xiàng)服務(wù),以便在任何已配置的端口上訪問(wèn)它,而無(wú)需在Internet上公開(kāi)它。

以下是在本地訪問(wèn)Nginx部署的示例: 

  1. kubectl port-forward deploy/nginx-1 8080:80 

有人認(rèn)為這僅適用于部署或Pod,這是錯(cuò)誤的。服務(wù)間是公平的,通常是轉(zhuǎn)發(fā)的選擇,因?yàn)樗鼈儗⒛M生產(chǎn)集群中的配置。

如果您確實(shí)想在Internet上公開(kāi)服務(wù),通常會(huì)使用LoadBalancer服務(wù),或運(yùn)行kubectl暴露: 

  1. kubectl expose deployment nginx-1 --port=80 --type=LoadBalancer 

技巧說(shuō)完了,可以現(xiàn)在嘗試一下,我希望您發(fā)現(xiàn)這6條命令和技巧有用, 現(xiàn)在,您可以在真實(shí)的集群上對(duì)其進(jìn)行測(cè)試了。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Java知音
相關(guān)推薦

2020-10-13 12:21:59

Kubernetes程序技巧

2013-08-26 14:18:12

SELinux

2019-05-27 13:50:35

多云架構(gòu)企業(yè)多云集成云計(jì)算

2010-12-31 15:29:54

Web應(yīng)用程序

2023-03-09 16:42:00

程序性能優(yōu)化Java技巧

2020-04-26 11:16:46

KubernetesPodLinux

2013-01-16 08:56:53

iOS故障排除指南

2020-12-11 19:06:03

Kubernetes工具應(yīng)用程序

2023-09-01 00:05:40

2019-09-26 08:33:51

Nginx技術(shù)Java

2010-05-06 13:49:11

2023-09-23 15:52:21

Linux白板應(yīng)用程序

2016-02-24 13:21:49

應(yīng)用程序定量分析開(kāi)源

2020-03-24 14:45:17

程序員技能開(kāi)發(fā)者

2023-07-26 15:46:52

Docker管理容器

2020-09-24 10:14:27

云計(jì)算云原生數(shù)據(jù)

2014-05-08 11:21:22

Linux應(yīng)用程序排查故障

2011-08-10 14:03:53

2014-05-27 14:44:26

AndroidActivitysingleTask

2020-09-04 14:56:23

應(yīng)用程序疫情
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)