秋霞步兵区国产精品,国产精品视频二区第二页,亚洲aⅴ欧美综合一区二区三区,亚洲日韩欧美一区二区不卡

      1. <small id="x8tpb"></small>
        <address id="x8tpb"></address>

        新疆信息港歡迎您!

        新疆信息港
        新疆信息港 > 時(shí)尚 >如何在Kubernetes中開(kāi)發(fā)Go應(yīng)用程序

        如何在Kubernetes中開(kāi)發(fā)Go應(yīng)用程序

        2020-03-30 11:23:32
        來(lái)源:互聯(lián)網(wǎng)
        閱讀:-

        Kubernetes是一個(gè)開(kāi)源項(xiàng)目,用于自動(dòng)化容器的部署,擴(kuò)展和管理。它已迅速成為運(yùn)行生產(chǎn)工作負(fù)載的標(biāo)準(zhǔn),周圍的社區(qū)也很棒!但是在Kubernetes中進(jìn)行開(kāi)發(fā)提出了一些挑戰(zhàn)。典型的開(kāi)發(fā)工作流程如下:編寫代碼,構(gòu)建Docker映像,將其推送到注冊(cè)表,重新部署,驗(yàn)證更改并重復(fù)。...

        Kubernetes是一個(gè)開(kāi)源項(xiàng)目,用于自動(dòng)化容器的部署,擴(kuò)展和管理。它已迅速成為運(yùn)行生產(chǎn)工作負(fù)載的標(biāo)準(zhǔn),周圍的社區(qū)也很棒!

        但是在Kubernetes中進(jìn)行開(kāi)發(fā)提出了一些挑戰(zhàn)。典型的開(kāi)發(fā)工作流程如下:編寫代碼,構(gòu)建Docker映像,將其推送到注冊(cè)表,重新部署,驗(yàn)證更改并重復(fù)。這種流程不僅速度緩慢,而且使我們無(wú)法從Go工具的標(biāo)準(zhǔn)功能中受益,例如快速增量構(gòu)建,熱重載器或調(diào)試器。

        OkOkteto(https://github.com/okteto/okteto)創(chuàng)建就是為了解決這個(gè)問(wèn)題。在此博客文章上,我們將向您展示Okteto如何改善Go開(kāi)發(fā)人員在Kubernetes中的開(kāi)發(fā)人員體驗(yàn)。在Kubernetes中直接開(kāi)發(fā)應(yīng)用程序時(shí),您將能夠充分利用諸如go build依賴項(xiàng)緩存,IDE調(diào)試器(VS Code,GoLand,Atom…)之類的工具。

        步驟1:部署Go Sample App

        通過(guò)執(zhí)行以下命令來(lái)獲取Go Sample App的本地版本:

        $ git clone [https://github.com/okteto/go-getting-started](https://github.com/okteto/go-getting-started)
        $ cd go-getting-started

        該k8s.yml文件包含用于部署Go Sample App的Kubernetes清單。通過(guò)執(zhí)行以下命令運(yùn)行應(yīng)用程序:

        $ kubectl apply -f k8s.yml
        deployment.apps “hello-world” created
        service “hello-world” created

        這很酷!您鍵入了一個(gè)命令,您的應(yīng)用程序的開(kāi)發(fā)版本僅運(yùn)行。

        步驟2:安裝Okteto CLI

        該Okteto CLI(https://github.com/okteto/okteto)是一個(gè)開(kāi)源項(xiàng)目,可以讓你直接在Kubernetes開(kāi)發(fā)應(yīng)用程序,同時(shí)充分利用當(dāng)?shù)刂哪>?。我們將使用它?lái)加快我們的開(kāi)發(fā)周期,而不是使用基于構(gòu)建docker映像和重新部署容器的典型開(kāi)發(fā)工作流程。

        通過(guò)運(yùn)行以下命令來(lái)安裝Okteto CLI:

        MacOS / Linux

        $ curl [https://get.okteto.com](https://get.okteto.com/) -sSfL | sh

        Windows

        $ wget [https://downloads.okteto.com/cli/okteto-Windows-x86_64](https://downloads.okteto.com/cli/okteto-Windows-x86_64) -OutFile c:\windows\system32\okteto.exe

        步驟3:在Kubernetes中啟動(dòng)您的開(kāi)發(fā)環(huán)境

        部署Go Sample Application后,運(yùn)行以下命令:

        $ okteto up
        ? Development environment activated
        ? Files synchronized
        Namespace: pchico83
        Name: hello-world
        Forward: 8080 -&gt; 8080
        2345 -&gt; 2345
        okteto&gt;

        該okteto up命令將啟動(dòng)Kubernetes開(kāi)發(fā)環(huán)境,這意味著:

        • Go Sample App容器已使用docker image更新okteto/golang:1。該圖像包含構(gòu)建,測(cè)試,調(diào)試和運(yùn)行Go Sample App所需的開(kāi)發(fā)工具。
        • 一個(gè)文件同步服務(wù)創(chuàng)建,讓您改變了最新的本地文件系統(tǒng)和應(yīng)用程序之間的豆莢。
        • 附加了一個(gè)卷以將Go緩存和軟件包持久保存在Kubernetes開(kāi)發(fā)環(huán)境中。
        • 容器端口8080(應(yīng)用程序)和2345(調(diào)試器)被轉(zhuǎn)發(fā)到localhost。
        • 在您的Kubernetes開(kāi)發(fā)環(huán)境中啟動(dòng)了一個(gè)遠(yuǎn)程Shell。就像在本地計(jì)算機(jī)中一樣,構(gòu)建,測(cè)試和運(yùn)行您的應(yīng)用程序。

        所有這些(以及更多)都可以通過(guò)okteto.yml 進(jìn)行自定義。

        要運(yùn)行該應(yīng)用程序,請(qǐng)?jiān)谶h(yuǎn)程shell程序中執(zhí)行:

        okteto&gt; go run main.go
        Starting hello-world server...

        第一次運(yùn)行該應(yīng)用程序時(shí),Go會(huì)下載您的依賴項(xiàng)并編譯您的應(yīng)用程序。等待此過(guò)程完成并通過(guò)在本地shell程序中運(yùn)行以下命令來(lái)測(cè)試您的應(yīng)用程序:

        $ curl localhost:8080
        Hello world!

        步驟4:直接在Kubernetes中進(jìn)行開(kāi)發(fā)

        main.go在您喜歡的本地IDE中打開(kāi)文件,然后在第17行上將響應(yīng)消息修改為來(lái)自集群的Hello world!。保存您的更改。

        func helloServer(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, “Hello world from the cluster!”)
        }

        Okteto將您的更改同步到Kubernetes中的開(kāi)發(fā)環(huán)境。go run main.go通過(guò)按取消從遠(yuǎn)程Shell 執(zhí)行ctrl + c。重新運(yùn)行您的應(yīng)用程序:

        okteto&gt; go run main.go
        Starting hello-world server...

        從本地外殼調(diào)用您的應(yīng)用程序以驗(yàn)證更改:

        $ curl localhost:8080
        Hello world from the cluster!

        您的代碼更改立即應(yīng)用于Kubernetes。無(wú)需提交,構(gòu)建或推送!

        步驟5:直接在Kubernetes中進(jìn)行調(diào)試

        Okteto使您可以直接從自己喜歡的IDE調(diào)試應(yīng)用程序。讓我們看一下它在VS Code中的工作原理,VS Code是Go開(kāi)發(fā)中最受歡迎的IDE之一。

        go run main.go通過(guò)按取消從遠(yuǎn)程Shell 執(zhí)行ctrl + c。在調(diào)試模式下重新運(yùn)行您的應(yīng)用程序:

        okteto&gt; dlv debug --headless --listen=:2345 --log --api-version=2
        API server listening at: [::]:2345
        2019–10–17T14:39:24Z info layer=debugger launching process with args: [/okteto/__debug_bin]

        打開(kāi)Debug擴(kuò)展并運(yùn)行Connect to okteto啟動(dòng)配置:

        {
        “version”: “0.2.0”,
        “configurations”: [
        {
        “name”: “Connect to okteto”,
        “type”: “go”,
        “request”: “attach”,
        “mode”: “remote”,
        “remotePath”: “/okteto”,
        “port”: 2345,
        “host”: “127.0.0.1”
        }
        ]
        }

        在main.go第17行上添加一個(gè)斷點(diǎn)。通過(guò)從本地Shell執(zhí)行來(lái)調(diào)用您的應(yīng)用程序:

        $ curl localhost:8080

        執(zhí)行將在您的斷點(diǎn)處停止。然后,您可以檢查請(qǐng)求,可用變量等。

        結(jié)論

        Kubernetes有潛力成為一個(gè)強(qiáng)大的開(kāi)發(fā)平臺(tái),提供可復(fù)制的,資源高效的和類似生產(chǎn)的開(kāi)發(fā)環(huán)境。我們已經(jīng)向您展示了如何使用Okteto創(chuàng)建開(kāi)發(fā)工作流程,該工作流程還使您可以在直接在Kubernetes中直接開(kāi)發(fā)應(yīng)用程序時(shí)利用增量構(gòu)建,熱重載器或調(diào)試器等功能。

        翻譯自:https://medium.com/okteto/how-to-develop-go-applications-in-kubernetes-8d733391564c

        推薦閱讀:旗龍網(wǎng)

        免責(zé)聲明:本文僅代表企業(yè)觀點(diǎn),與新疆信息港無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
        熱門圖片
        熱門搜索