這期內容當中小編將會給大家帶來有關實現快速K8S開發的3款工具分別是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
荷塘網站制作公司哪家好,找創新互聯!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設等網站項目制作,到程序開發,運營維護。創新互聯自2013年創立以來到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯。
時至今日,Kubernetes正在變得越來越重要,不僅僅是運維需要Kubernetes,在開發的世界里Kubernetes也不可或缺。因此能夠熟練掌握Kubernetes知識會備受追捧。然而問題是,開發人員是否需要直接上手操作Kubernetes,他們是否必須完全了解Kubernetes。
規避這一問題的常見方法是通過提供一個平臺或CI/CD流水線,將Kubernetes的復雜性從開發人員身上抽象出來,使開發人員更容易在Kubernetes內測試應用程序,而無需直接訪問Kubernetes。
然而,允許開發人員直接訪問Kubernetes,讓他們直接在Kubernetes內部開發一些應用程序往往是有意義的,因為這樣可以在一個非常接近生產的環境中工作。
這就出現了一個問題,即如何讓開發人員使用Kubernetes工作,同時又不因其復雜性而使他們不堪重負。這個問題的答案可能是需要使用為Kubernetes而準備的開發者工具,例如DevSpace。在這篇文章中,我們將探討開發人員如何使用DevSpace和Rancher來簡化Kubernetes開發。
DevSpace是一款面向Kubernetes的客戶端、開源的開發者工具。它可以:
直接在Kubernetes內部構建、測試和調試應用程序
通過更新正在運行的容器而不需要重建鏡像或重啟容器來進行熱重載開發
在團隊內部以及在開發、暫存和生產中統一部署工作流程
自動完成鏡像構建和部署的重復性任務
DevSpace作為開發者的客戶端工具,是對Rancher的補充。開發者在Rancher內獲得分配的項目,然后直接在Kubernetes內開發或測試應用。這使開發環境更接近生產環境,讓開發人員在發布新功能時更有把握,相信一切都能夠在生產環境中運行良好。
首先需要下載DevSpace二進制文件,接下來,在一個已經容器化的項目中通過運行devspace init創建一個新的項目。如果你現在手邊沒有一個可以用來進行試驗的項目,你可以使用我們的示例項目:
https://devspace.sh/cli/docs/getting-started/initialize-project#choose-a-project
$ devspace init ____ ____ | _ \ _____ __/ ___| _ __ __ _ ___ ___ | | | |/ _ \ \ / /\___ \| '_ \ / _` |/ __/ _ \ | |_| | __/\ V / ___) | |_) | (_| | (_| __/ |____/ \___| \_/ |____/| .__/ \__,_|\___\___| |_| ? How do you want to initialize this project? Use the Dockerfile in ./Dockerfile ? Which registry do you want to use for storing your Docker images? Use hub.docker.com => you are logged in as devspacecloud ? Which image name do you want to use on Docker Hub? devspacecloud/quickstart ? Which port is your application listening on? (Enter to skip) 8080 [done] √ Project successfully initialized
在你回答了幾個關于應該被初始化的項目的問題之后,DevSpace將為你創建一個devspace.yaml
。這個文件包含了如何使用DevSpace部署和開發項目,看起來如下所示:
version: v1beta9 # This section defines the images that should be built images: app: image: devspacecloud/quickstart preferSyncOverRebuild: true # this option tells devspace to automatically wrap the Dockerfile entrypoint in memory # with a small restart helper script so that the process can be easily restarted from within the # container. injectRestartHelper: true # Defines an array of everything (component, Helm chart, Kubernetes maninfests) # that will be deployed with DevSpace in the specified order deployments: - name: quickstart helm: # Uses a special helm chart provided by devspace to complement projects that don't have an own # helm chart componentChart: true values: containers: - image: devspacecloud/quickstart service: ports: - port: 8080 # Configuration that will be used for developing the application dev: # Port forward certain ports from the application to the local computer ports: - imageName: app forward: - port: 8080 # Hot reload changes instead of rebuilding the complete docker image all the time sync: - imageName: app # This tells devspace to restart the container after a file was synced into it onUpload: restartContainer: true profiles: ...
現在,你可以跨團隊分享這個配置。它指定了如何在Kubernetes內部獨立于本地設置開發應用程序。
要開始開發應用程序,你需要訪問一個Kubernetes集群或Rancher項目。最佳實踐是為每個開發人員創建一個Rancher項目或者為一個共享集群內的開發者團隊創建一個單一項目。
為了在不同項目和命名空間之間確保簡單的隔離,使用常見的Kubernetes資源,如Resource Quotas、網絡策略、Pod安全策略和Limit Ranges等。
運行命令devspace.dev
來開啟開發流程。這將起到以下作用:
構建和部署你的應用程序
流式傳輸在部署過程中部署的所有容器日志
轉發在devspace.yaml中的dev.ports指定的所有端口
根據dev.sync中的同步配置來同步所有的文件更改,這樣你就可以在運行的容器中重啟應用程序,而無需重建鏡像或重新部署任何東西
$ devspace dev -n test [info] Using kube context 'docker-desktop' [info] Using namespace 'test' [done] √ Created namespace: test [info] Building image 'myusername/devspace:C5992q4' with engine 'docker' Step 1/7 : FROM node:13.12-alpine ... [done] √ Done processing image 'myusername/devspace' [done] √ Deployed helm chart (Release revision: 0) [done] √ Successfully deployed quickstart with helm [done] √ Port forwarding started on 3000:3000 [done] √ Sync started on /devspace/examples/quickstart <-> . (Pod: test/quickstart-5d7f4d8fd-w95cx) ######################################################### [info] DevSpace UI available at: http://localhost:8090 ######################################################### [info] Starting log streaming for containers that use images defined in devspace.yaml [quickstart] [quickstart] > node-js-sample@0.0.1 start /app [quickstart] > nodemon index.js [quickstart] [quickstart] [nodemon] 1.19.4 [quickstart] [nodemon] to restart at any time, enter `rs` [quickstart] [nodemon] watching dir(s): *.* [quickstart] [nodemon] watching extensions: js,mjs,json [quickstart] [nodemon] starting `node index.js` [quickstart] Example app listening on port 3000!
本地修改文件后,文件會同步到容器中。容器重啟后無需通過Docker完全重建,大大加快了開發進程。
然后DevSpace會啟動一個本地UI,你可以訪問和檢查創建的pod。這簡化了與Kubernetes的交互,特別是對于不熟悉kubectl
的用戶。
除了devspace dev
,devspace deploy
命令可以用于打包和部署應用程序,而不需要熱重載、端口轉發或日志流。DevSpace提供了許多自定義功能,以根據你的用例和設置調整其行為,包括:
依賴項,可以讓你開發和部署依賴于其他項目的項目
Profiles,可以在一個devspace.yaml
中進行多種配置
允許指定動態配置值的變量
允許為項目配置自定義命令的命令
可以在特定的DevSpace事件上執行某些功能的Hooks
自動為devspace命令添加標志(flag)的環境變量
擴展DevSpace和其命令的插件
DevSpace標準化和簡化了開發人員與Kubernetes的交互方式的同時,Rancher在服務器端管理著開發者如何在Kubernetes內部工作。Rancher可以讓你啟動開發集群并將它們分到不同的項目中,在這些項目中開發團隊可以一起工作和測試。
Resource Quotas項目除了常見的Kubernetes隔離資源外,還可以在資源方面約束團隊,讓團隊在共享Kubernetes集群中得到公平的使用。共享Kubernetes集群可以減少基礎設施的開銷并且可以直接在Kubernetes內部進行有效開發。
loft是另一個很有用的工具,它可以在開發過程中添加一些比較方便的功能,包括:
虛擬集群,比“真實的”集群成本更低,并且可以在數秒內創建并再次清理,而且功能比簡單的命名空間更強大
在共享集群中為開發人員提供命名空間的自助服務(self-service)
睡眠模式,在一定時間不活動后,將命名空間置于睡眠狀態,以節省計算成本
你可以通過安裝loft helm chart 輕松地將loft添加到Rancher。loft CLI也可以作為DevSpace的插件。
上述就是小編為大家分享的實現快速K8S開發的3款工具分別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創新互聯行業資訊頻道。
網站標題:實現快速K8S開發的3款工具分別是什么
當前路徑:http://vcdvsql.cn/article18/gghjgp.html
成都網站建設公司_創新互聯,為您提供網站導航、企業建站、微信公眾號、面包屑導航、全網營銷推廣、網頁設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯