雲本地應用程序開發的五件重要知識正在迅速成為行業的常態。隨著對雲技術的越來越依賴,應用程序開發已轉移到一種更注重雲的方法。容器化是為這些雲本地應用供電的最前沿,並且集裝箱應用程序引起了容器編排的需求。
Kubernetes源於對容器編排作為容器管理的強大解決方案的需求。
它已成為其功能強大的功能集,健壯的自然和活躍社區的容器編排的事實上標準,可不斷改進平台。但是,這種廣泛的用法也使Kubernetes成為一個複雜的解決方案。這種複雜性導致了從Kubernetes開始的任何人的學習曲線相對陡峭的學習曲線。因此,在本文中,讓我們看一下作為Kubernetes的新手應該知道的一些關鍵概念和實踐。
豆莢不等於容器
任何人都應該知道的第一件事是豆莢和容器之間的區別。豆莢是K8S中最小的可部署單元。 POD不類似於容器,因為它們可以由單個或多個容器組成,並作為單個實體進行管理。可以將POD視為共享資源的一組緊密耦合的容器。具有POD的容器可以簡單地視為在單個邏輯主機中運行的容器。
忽略標籤的重要性
標籤可能不是唯一的標識符,但它們為用戶提供了一種機制,可以向Kubernetes對象添加有意義且可識別的元數據。這些鍵值對可以在K8S對象的生命週期的任何點實現和修改。除了提供可識別的信息外,在選擇Kubernetes對象時,標籤至關重要。 Kubernetes API使用標籤扇區通過基於平等或基於集合的選擇器來識別和選擇必要的K8S對象。
無論您創建部署,replicaset,定義網絡服務,還是通過Kubectl查詢PODS,標籤都用於選擇K8S對象。
始終考慮吊艙終止行為
必須考慮應用程序的終止行為,以減少對最終用戶的影響並促進快速恢復。 Kubernetes利用Linux信號來終止信號。常見的過程是向吊艙中的容器發送一個Sigterm信號,該信號信號終止並等待指定的終止寬限期(默認情況下為30秒)關閉。最後,Kubernetes發送Sigkill信號以卸下POD並清潔任何Kubernetes對象。
因此,必須對容器進行編程以接收這些信號,並且應在您的應用程序中實施適當的優美終止流程。根據要求,可以使用PRESTOP掛鉤或“ terminationGracePeriod”標誌來輕鬆更改終止行為而無需修改應用程序代碼。當對與POD終止有關的錯誤故障排除時,此方法非常有用。此外,它允許用戶通過按照Sigkill的指南來輕鬆理解潛在問題,該指南表示為Signal 9。
定義資源請求或限制
與任何應用程序一樣,資源管理應成為任何Kubernetes群集管理的核心部分。不指定容器或不正確規範的請求和限制會導致災難性後果,例如集群中的資源飢餓,由於容器消耗無限資源或過失和CPU節流問題而導致的託管K8S群集的急劇成本增加。
因此,至關重要的是正確配置了用於性能調整和提高K8S環境效率的容器的請求和限制。請求的金額定義了容器可以要求的資源金額,而限制指定容器可以消耗的最大資源限制。設置這些限制必鬚根據應用程序的要求和特定用例來完成。此外,擁有足夠的餘量來處理關鍵任務容器來處理意外工作量始終是一個好主意。
利用Kubernetes監視
監視是整個生命週期應用程序正確維護的重要方面。 Kubernetes監視為主動管理K8S群集提供了骨幹。 Kubernetes利用其公制服務器從群集的每個節點中匯總和收集數據。通過公制服務器獲得的一些關鍵指標是節點狀態,POD可用性,CPU和內存利用率,API請求延遲,可用存儲等。
這些指標對於確定總體群集的性能以及識別可能導致K8S對象和基礎架構的可用性或性能問題的失敗或不符合性的性能至關重要。指標服務器對於提供DA至關重要null