我們透過與事物互動和理解事物的方式來感知事物。對於基礎架構團隊來說,Kubernetes 是一種擴展和管理應用程式的好方法,但對於前端/後端開發人員來說,它可能看起來很複雜且壓力很大。
Kubernetes 引入了許多概念和術語(部署、服務、pod…),這些概念和術語需要時間來掌握,甚至需要更多時間來掌握。但開發人員有時必須每週(甚至每天)與他們互動。
透過我們的經驗和研究,我們確定了開發人員使用 Kubernetes 的三種最常見的方式。
那麼,開發人員眼中的 Kubernetes 是什麼樣子的呢?
在我們開始之前,如果您為我們的開源儲存庫加註星標並幫助我們獲得我們的產品,我們將非常高興
在其他開發者面前的工具 ⭐
根據公司的結構和開發工作流程,開發人員要么根本不與 Kubernetes 交互,因為自動化流程和腳本正在執行此操作,要么通過三個接觸點與 Kubernetes 交互:
他們的應用程式的配置文件
在 K8s 叢集中部署應用程式
監控他們的應用程式
設定檔告訴 Kubernetes 如何處理應用程式。它們是聲明性的,這意味著您編寫您想要看到的結果,而不是實現該結果的步驟。
這些文件通常用YAML編寫,它們很大且難以閱讀和理解。用 YAML 寫作會帶來挑戰(和怪癖),因為它是開發人員需要學習的額外程式語言。
配置錯誤很難發現和修正,但卻是一件大事。即使您對應用程式進行了完美編碼,沒有任何錯誤(假設😅),配置中的錯誤也可能意味著您的應用程式將無法執行。
部署應用程式是在 Kubernetes 叢集中啟動應用程式的過程。執行此操作的本機方法是使用kubectl
。
kubectl
是 Kubernetes 的命令列工具。作為命令列工具/介面是我們應該考慮的。高級開發人員應該習慣 CLI,但初級開發人員可能仍然很膽怯。習慣kubectl
為學習曲線增加了新的一層。
然而,部署需要的不僅僅是了解kubectl
的可用命令;它還需要了解上下文以及它如何操作 Kubernetes 物件。
現在我們的開發人員已經配置並部署了他們的應用程式,他們就完成了,對吧?嗯,不。
該應用程式可能存在相當多的錯誤和問題,並且他們應該能夠監視它們並在需要時修復它們。
找出 Kubernetes 叢集內的應用程式出了什麼問題並不簡單。開發人員需要了解叢集中的物件以及它們如何相互互動。
例如,要取得應用程式的日誌,您需要知道它在 Pod 中執行。該 Pod 位於副本集中,副本集本身位於 Deployment 內。在使用kubectl
翻閱 K8s 資源時,您必須了解這些關係。
這只是 Kubernetes 的冰山一角。它的複雜性大大延長了新開發人員的入職時間,並且引入的所有額外步驟都會減慢開發週期。
公司通常有專門的團隊來處理基礎設施和 Kubernetes。當開發人員遇到問題或需要協助時,他們會向這些團隊尋求協助。但你可以想像,在處理像 Kubernetes 這樣複雜的事情時,需要幫助是很常見的事情。
這就是為什麼我們看到開發者平台興起,它減少了開發者和基礎設施團隊之間的摩擦。一個好的平台可以使建立、更新和部署的開發週期盡可能順利和直接。
Cyclops是一款出色的開源開發工具,它將 Kubernetes 的複雜性抽象化為簡單的圖形使用者介面。我們將其稱為平台,因為您的基礎架構團隊可以自訂 UI 以滿足您的特定需求和願望。
那麼,Cyclops是如何解決上述問題的呢?
使用 Cyclops,您的開發人員永遠不會直接與設定檔互動。您建立一個模板,然後將其作為表單呈現給開發人員。這避免了學習 YAML 等語言的需要,並且還有一個額外的好處,即允許您向其輸入加入驗證,從而使開發人員更難犯錯。
一旦開發人員在 Cyclops 的幫助下指定了他們的需求,部署他們的應用程式就像單擊按鈕一樣簡單。
現在他們已經部署了應用程式,Cyclops 可以透過其用戶介面輕鬆監控其狀態。應用程式的詳細資訊很容易存取,包括它使用的所有資源(和日誌)。
讓我們看看它的實際效果!
安裝過程只需兩步,但有一些先決條件,最主要的是 Kubernetes 叢集。
因此,一旦叢集啟動並執行,您就可以使用以下命令安裝 Cyclops:
kubectl apply -f https://raw.githubusercontent.com/cyclops-ui/cyclops/blogs-demo/install/cyclops-install.yaml
一旦成功安裝(可能需要一兩分鐘),您可以透過以下方式存取它:
kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops
Cyclops 現在應該可以在瀏覽器中存取http://localhost:3000 。
現在,透過點擊Add Module
按鈕,您將進入以下畫面:
我們為您建立了一個預設模板,但此畫面是高度可自訂的(您可以嘗試自己的 Helm 圖表!)。現在,開發人員無需讀取和編寫 YAML,而是可以透過點擊「儲存」按鈕填寫這些字段,然後他們的應用程式將部署!
下一個畫面顯示了新部署的應用程式的詳細視圖。在這裡,您可以查看所有指定的資源(並輕鬆存取日誌😉)。如果出現任何問題,都可以在這裡看到!
如果您希望更改配置中的某些內容(例如新增應用程式的更多副本),請按一下Edit
按鈕。您將被帶到與第一個螢幕類似的螢幕,您可以在其中進行這些更改,甚至不知道您正在下面處理 YAML。
我們希望本文能很好地展示了開發人員在 Kubernetes 中遇到的一些問題,以及您或您的開發人員下次使用它時可以考慮的潛在解決方案。
如果您遇到 Kubernetes 問題或開發人員用 K8s 相關問題糾纏您,請考慮在我們的 GitHub儲存庫上給我們一個星星來支援我們 ⭐
您是否遇過 Kubernetes 的這些接觸點?在下面的評論中分享您的經驗!
原文出處:https://dev.to/cyclops-ui/kubernetes-through-the-developers-perspective-38lf