成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes上對應用程序進行故障排除的6個技巧

運維 系統運維
我今天分享下我認為最有用的5條故障排除技巧,以及一些其他的使用技巧。

[[378046]]

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

kubectl –“瑞士軍刀”

kubectl 就是我們的瑞士軍刀,我們經常在出現問題的時候使用他們,在出現問題如何使用他們很重要,讓我們從5個“實際案例”開始,看出現問題時如何使用它們。

情況將是:我的YAML已被接受,但我的服務未啟動且已啟動,但無法正常工作。

1.kubectl get deployment/pods

這個命令如此重要的原因是它無需顯示大量內容即可顯示很有用的信息。

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

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

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

接下來,您可能需要查看kubectl get pod,以查看部署的后備Pod是否正確啟動。

2. kubectl get events

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

Kubernetes中的日志是“未排序的”,因此,您將需要添加以下內容,這些內容取自OpenFaaS文檔。 

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

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

  1. kubectl describe deploy/figlet -n openfaas 

您會在這里獲得非常詳細的信息。您可以描述大多數事情,包括節點,這些節點將顯示由于資源限制或其他問題而無法啟動 Pod。

更多:什么,容器太多操作不過來?我選擇Docker Compose梭哈

3. kubectl logs

這個命令肯定經常大家經常使用,但很多人使用了錯誤的方式。

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

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

要跟蹤日志,請添加-f 

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

您可以將所有三個結合起來。

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

  1. kubectl logs -l app=nginx 

有一些工具,例如 stern 和 kail,可以幫助您匹配模式并節省一些鍵入操作,但我發現它們會分散您的注意力。

4.kubectl get -o yaml

當您開始使用由另一個項目或諸如Helm之類的其他工具生成的YAML時,您將很快需要它。在生產中檢查鏡像的版本或您在某處設置的注釋也很有用。 

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

輸出yaml 

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

現在我們知道了。而且,我們可以添加–export并將YAML保存在本地以進行編輯并再次應用。

實時編輯YAML的另一個選項是kubectl edit,如果您對vim感到困惑,不知道如何使用,請在命令前加上VISUAL = nano,使用這個簡化編輯器。

5. kubectl scale  您打開和關閉它了嗎?

Kubectl scale可用于將Deployment及其Pod縮小為零個副本,實際上殺死了所有副本。當您將其縮放回1/1時,將創建一個新的Pod,重新啟動您的應用程序。

語法非常簡單,您可以重新啟動代碼并再次進行測試。 

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

6. Port forwarding

我們需要這個技巧, 通過kubectl進行的端口轉發使我們可以在我們自己計算機上的本地或遠程群集上公開一項服務,以便在任何已配置的端口上訪問它,而無需在Internet上公開它。

以下是在本地訪問Nginx部署的示例: 

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

有人認為這僅適用于部署或Pod,這是錯誤的。服務間是公平的,通常是轉發的選擇,因為它們將模擬生產集群中的配置。

如果您確實想在Internet上公開服務,通常會使用LoadBalancer服務,或運行kubectl暴露: 

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

技巧說完了,可以現在嘗試一下,我希望您發現這6條命令和技巧有用, 現在,您可以在真實的集群上對其進行測試了。 

 

責任編輯:龐桂玉 來源: Java知音
相關推薦

2020-10-13 12:21:59

Kubernetes程序技巧

2013-08-26 14:18:12

SELinux

2019-05-27 13:50:35

多云架構企業多云集成云計算

2010-12-31 15:29:54

Web應用程序

2023-03-09 16:42:00

程序性能優化Java技巧

2013-01-16 08:56:53

iOS故障排除指南

2020-04-26 11:16:46

KubernetesPodLinux

2020-12-11 19:06:03

Kubernetes工具應用程序

2010-05-06 13:49:11

2023-09-01 00:05:40

2019-09-26 08:33:51

Nginx技術Java

2023-09-23 15:52:21

Linux白板應用程序

2014-05-08 11:21:22

Linux應用程序排查故障

2020-03-24 14:45:17

程序員技能開發者

2016-02-24 13:21:49

應用程序定量分析開源

2009-12-22 16:09:09

2011-08-10 14:03:53

2023-07-26 15:46:52

Docker管理容器

2020-09-24 10:14:27

云計算云原生數據

2010-03-03 17:56:44

Android應用程序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久香蕉网 | 久久久夜色精品亚洲 | 亚洲在线一区 | 高清欧美性猛交xxxx黑人猛交 | 91资源在线 | 国产一区二区三区 | 黄色网址免费在线观看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 欧美日一区二区 | 欧美一区二区在线播放 | 午夜精品久久久久久久久久久久久 | 99re视频在线 | 中文字幕在线一区 | 视频一区二区国产 | 夜夜骑av| 午夜免费电影 | 色一情一乱一伦一区二区三区 | 欧美日韩亚洲视频 | 欧美日韩高清在线观看 | 一级做a爰片久久毛片免费看 | 午夜性色a√在线视频观看9 | 中文字幕在线免费观看 | 国产福利在线播放麻豆 | 国产精品久久久久无码av | 亚洲精品99 | 亚洲三区在线观看 | 亚洲成人精品在线 | av在线一区二区三区 | 一区二区不卡视频 | 欧美精品欧美精品系列 | 成人黄色在线 | 色偷偷人人澡人人爽人人模 | 午夜视频一区 | 欧美综合视频在线 | 麻豆久久久久久久 | 亚洲精品中文字幕中文字幕 | 国产精品一区久久久 | 一区二区三区视频免费观看 | 色在线看 | 成人中文网 | 久久久久一区二区三区 |