久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

k8s中Tye的安裝及用法是什么

206次閱讀
沒有評論

共計 7746 個字符,預計需要花費 20 分鐘才能閱讀完成。

今天就跟大家聊聊有關 k8s 中 Tye 的安裝及用法是什么,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

最近正巧在進行 Newbe.Claptrap 新版本的開發,其中使用到了 Tye 來輔助 k8s 應用的開發。

安裝 Tye

首先,確保已經正確安裝了 netcore 2.1 或以上版本的 dotnet SDK。

Tye 目前還處于開發階段,因此,目前只能安裝預覽版本進行使用。通過以下鏈接可以搜索到當前最新的版本,并復制界面上的 CLI 安裝。

https://www.nuget.org/packages/Microsoft.Tye/

dotnet tool install --global Microsoft.Tye --version 0.6.0-alpha.21070.5

安裝完畢后,在控制臺中運行 tye,便可以查看到如下結果:

PS C:\tools\Cmder  tyetye: Developer tools and publishing for microservices.Usage: tye [options] [command]Options: --no-default Disable default options from environment variables -?, -h, --help Show help and usage information --version Show version informationCommands: init  path  create a yaml manifest run  path  run the application build  path  build containers for the application push  path  build and push application containers to registry deploy  path  deploy the application undeploy  path  delete deployed application

創建并運行一個測試項目

接下來我們創建一個 netcore 應用來測試該部署方案。選擇一個合適的位置運行以下命令來創建測試項目:

dotnet new sln -n TyeTestdotnet new webapi -n TyeTestdotnet sln .\TyeTest.sln add .\TyeTest\TyeTest.csproj

這樣,我們就得到了一個測試的解決方案和 WebApi 項目。我們可以運行以下命令在本地啟動這個服務:

dotnet run --project .\TyeTest\TyeTest.csproj

啟動后,可以在瀏覽器中打開  https://localhost:5001/swagger/index.html  來查看啟動好的 swagger 界面。

使用 tye 在本地運行應用

接下來,我們關閉前面正在運行的應用,改為使用 tye 在本地啟動測試應用。

在解決方案目錄下,使用控制臺運行以下命令:

tye run

運行之后,可能會得到如下的結果:

PS C:\Repos\TyeTest  tye runLoading Application Details...Launching Tye Host...[12:11:30 INF] Executing application from C:\Repos\TyeTest\TyeTest.sln[12:11:30 INF] Dashboard running on http://127.0.0.1:8000[12:11:30 INF] Building projects[12:11:32 INF] Launching service tyetest_9dd91ae4-f: C:\Repos\TyeTest\TyeTest\bin\Debug\net5.0\TyeTest.exe[12:11:32 INF] tyetest_9dd91ae4-f running on process id 24552 bound to http://localhost:14099, https://localhost:14100[12:11:32 INF] Replica tyetest_9dd91ae4-f is moving to a ready state[12:11:32 INF] Selected process 24552.[12:11:33 INF] Listening for event pipe events for tyetest_9dd91ae4-f on process id 24552

按照以上的提示,在  http://127.0.0.1:8000  成功啟動的 tye dashboard。使用瀏覽器打開 dashboard 便可以查看到已經部署起來的應用列表。如下圖所示:

通過 dashboard,可以看到測試程序已經啟動,并且綁定了  http://localhost:14099  和  https://localhost:14100。實際在自行測試中,這兩個端口是隨機選擇的,因此會有不同。

我們通過上面公開的 https 綁定打開 swagger 就能看到和前面使用  dotnet run  一樣的效果:https://localhost:14100/swagger

本地部署一個 k8s

接下來,我們將使用 Tye 將應用部署到 k8s 當中。那么為了實現這個效果,首先需要準備一個 k8s。

在開發機器上部署 k8s 的方式多種多樣,本次實驗采用的是 Docker Desktop + k8s 的方案,原因不是別的,就是因為使用其他方案在過程中遇到了或多或少的問題。具體的開發者可以自行選擇。

Docker Desktop + k8s 的方案在以下鏈接中講述的非常清楚,建議開發者可以參考:

《Docker Desktop 啟動 Kubernetes》https://www.cnblogs.com/weschen/p/12658839.html

本次實驗除了 k8s 本體之外,還需要安裝 nginx ingress 和 helm,也可以參考以上文章中的內容進行安裝。

將應用部署到 k8s 中

但 k8s 配置完畢之后,我們就可以使用 tye 將應用快速發布到 k8s 中進行查看。

登錄 docker registry

首先,需要為本地的 docker 配置 docker registry。因為在使用 tye 發布的過程中將會將項目打包的 docker image 并且推送到一個 docker registry 中。

開發者可以選擇多種方式獲得一個自己的 docker registry:

Nexus OSS Repository

阿里云、騰訊云、DaoCloud 等等都有免費額度的 docker registry

docker hub,如果網絡都好的話

使用  docker login  登錄你的 docker registry。

tye init 創建 tye.yml

在解決方案目錄中,運行以下命令來創建 tye.yml 配置文件:

tye init

運行之后,將會在解決方案文件夾得到如下文件:

name: tyetestservices: - name: tyetest project: TyeTest/TyeTest.csproj

這就是一個最簡單的 tye.yml 文件。

修改 tye.yml

我們在 tye.yml 中加入一行關于 docker registry 的配置,以指定構建出來的鏡像將推送到何處:

name: tyetestregistry: registry.cn-hangzhou.aliyuncs.com/newbe36524services: - name: tyetest project: TyeTest/TyeTest.csproj

例如,此處筆者使用的是阿里云杭州節點的 docker registry,名稱空間為 newbe36524。因此增加了一行  registry: registry.cn-hangzhou.aliyuncs.com/newbe36524。

這就相當于,如果進行構建,將會構建一個 tag 為  registry.cn-hangzhou.aliyuncs.com/newbe36524/tyetest:1.0.0  的鏡像并推送到阿里云中。

提前下載 netcore 基礎鏡像

因為此次我們發布的是 netcore 程序,他們將會被構建的 netcore 鏡像,因此,為了更加順利的進行構建,建議先使用加速工具在本地提前下載好基礎鏡像。

例如,筆者在此次的使用中使用的 net5 TFM 的應用程序,因此,就需要在本地先拉好  mcr.microsoft.com/dotnet/aspnet:5.0  作為基礎鏡像。

由于現在 netcore 基礎鏡像的源已經從 docker hub 遷移到 mcr.microsoft.com。故而,建議使用  Newbe.McrMirror  進行加速下載。

詳細的使用方法可以參考:https://github.com/newbe36524/Newbe.McrMirror

如果開發者不知道自己當前需要拉取的基礎鏡像是什么,也可以先嘗試下面一個步驟直接發布,查看過程中使用的基礎鏡像內容,再來拉取。

使用 tye deploy

一切已經準備就緒,現在,繼續在解決方案目錄運行以下命令,便可以進行發布:

tye deploy

可能會得到如下結果:

PS C:\Repos\TyeTest  tye deployLoading Application Details...Verifying kubectl installation...Verifying kubectl connection to cluster...Processing Service  tyetest ... Applying container defaults... Compiling Services... Publishing Project... Building Docker Image... #1 [internal] load build definition from Dockerfile #1 sha256:a3872c76e0ccfd4bade43ecac3349907e0d110092c3ca8c61f1d360689bad7e2 #1 transferring dockerfile: 144B done #1 DONE 0.0s #2 [internal] load .dockerignore #2 sha256:9e3b70115b86134ab4be5a3ce629a55cd6060936130c89b906677d1958215910 #2 transferring context: 2B done #2 DONE 0.0s #3 [internal] load metadata for mcr.microsoft.com/dotnet/aspnet:5.0 #3 sha256:3b35130338ebb888f84ec0aa58f64d182f10a676a625072200f5903996d93690 #3 DONE 0.0s #7 [1/3] FROM mcr.microsoft.com/dotnet/aspnet:5.0 #7 sha256:31acc33a1535ed7869167d21032ed94a0e9b41bbf02055dc5f04524507860176 #7 DONE 0.0s #5 [internal] load build context #5 sha256:2a74f859befdf852c0e7cf66b6b7e71ec4ddeedd37d3bb6e4840dd441d712a20 #5 transferring context: 3.87MB 0.0s done #5 DONE 0.1s #4 [2/3] WORKDIR /app #4 sha256:56abde746b4f39a24525b2b730b2dfb6d9688bcf704d367c86a4753aefff33f6 #4 CACHED #6 [3/3] COPY . /app #6 sha256:4a3b76a4eea70c858830bad519b2d8faf5b6969a820b7e38994c2116d3bacab2 #6 DONE 0.0s #8 exporting to image #8 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00 #8 exporting layers 0.0s done #8 writing image sha256:8867f4e2ed6ccddb509e9c39e86c736188a78f348d6487d6d2e7a1b5919c1fdb #8 writing image sha256:8867f4e2ed6ccddb509e9c39e86c736188a78f348d6487d6d2e7a1b5919c1fdb done #8 naming to registry.cn-hangzhou.aliyuncs.com/newbe36524/tyetest:1.0.0 done #8 DONE 0.1s Created Docker Image:  registry.cn-hangzhou.aliyuncs.com/newbe36524/tyetest:1.0.0  Pushing Docker Image... Pushed docker image:  registry.cn-hangzhou.aliyuncs.com/newbe36524/tyetest:1.0.0  Validating Secrets... Generating Manifests...Deploying Application Manifests... Applying Kubernetes Manifests... Verifying kubectl installation... Verifying kubectl connection to cluster... Writing output to  C:\Users\Administrator\AppData\Local\Temp\tmp2BC2.tmp . Deployed application  tyetest .Time Elapsed: 00:00:12:99

從輸出的日志,我們可以看出,應用已經發布成功。并且使用 k8s dashboard 或者 k9s,我們都可以查看到應用已經成功部署,并且啟動完成。

tyetest-674865dcc4-mxkd5 ●● 1/1 Δ 0 Running Δ 10.1.0.73 docker-desktop 3m46s

值得注意的是,確保這一步正常運行有幾個前提:

需要確保本地的 kubectl 已經正確配置。一般來說,如果是使用 docker desktop,那么已經配置好了

需要確保 docker login 已經成功。開發者可以在運行部署前,測試以下是否可以手動推送鏡像

MCR 鏡像的下載速度不是很理想的話,記得用 Newbe.McrMirror 進行加速

創建并使用 ingress

到這一步,我們已經完成了應用的發布。但是,由于沒有配置 nginx ingress,服務雖然已經可以在 k8s 內部運行了,但是沒有在外部進行訪問。也就是說,在電腦上使用瀏覽器現在依然處于打不開的狀態。故而,我們還需要為服務配置 ingress。還沒有為 k8s 安裝 ingress 的朋友,建議查看前面安裝 k8s 的相關章節。

這里,我們打開 tye.yml 添加 ingress 相關配置:

name: tyetestregistry: registry.cn-hangzhou.aliyuncs.com/newbe36524services: - name: tyetest project: TyeTest/TyeTest.csprojingress: - name: tyetest-ingress bindings: - name: https protocol: https rules: - host: www.yueluo.pro service: tyetest

我們增加了一個 ingress 配置,使得當流量從 ingress 進入,并且域名為  www.yueluo.pro  的時候,將會轉發到 tyetest 服務。這樣就實現了從外部訪問 k8s 內部服務的目的。

首先,使用  tye run  命令可以在本地查看一下這個效果。運行命令之后可能在 dashboard 中查看到以下情況:

其中,https://localhost:8310  就是 ingress 的入口地址。由于我們采用的是域名綁定,因此可以采用兩種方式進行訪問以驗證效果:

在 hosts 中加入  www.yueluo.pro – 127.0.0.1 的映射關系

使用 http 請求文件直接訪問。

這里我們采用 http 請求文件直接訪問:

GET https://localhost:8310/WeatherForecastHost: www.yueluo.pro

這樣,我們就成功驗證了綁定的結果。

注意,其中的端口由于筆者沒有配置為固定端口,因此每次運行開發者都要注意發生的變化。

將 ingress 部署到 k8s 中

接下來,停止  tye run, 運行  tye deploy  將 ingress 和應用程序發布到 k8s 中。

注意,ingress 的部署可能會花費數十秒的時間,因此需要進行一下等待。

部署完成之后,便可以通過 k8s dashboard 或者 k9s 查看部署的結果。

并且,可以使用以下 http 請求來驗證部署的結果:

GET https://localhost/WeatherForecastHost: www.yueluo.pro

其得到的結果與先前自然是一樣的。

從 k8s 中卸載應用

卸載應用,非常簡單,tye undeploy。

PS C:\Repos\TyeTest  tye undeployLoading Application Details...Found 3 resource(s).Deleting  Service   tyetest  ...Deleting  Deployment   tyetest  ...Deleting  Ingress   tyetest-ingress  ...Time Elapsed: 00:00:02:87

看完上述內容,你們對 k8s 中 Tye 的安裝及用法是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-16發表,共計7746字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 固安县| 烟台市| 盐亭县| 桓仁| 康定县| 蕉岭县| 左贡县| 营山县| 闵行区| 彰武县| 修文县| 义马市| 兴城市| 丹凤县| 永顺县| 根河市| 双峰县| 淄博市| 仪陇县| 景东| 磐石市| 嘉鱼县| 金平| 墨江| 玉环县| 揭阳市| 泸州市| 呈贡县| 伊宁县| 延川县| 平泉县| 敖汉旗| 靖西县| 三门峡市| 三穗县| 南雄市| 南华县| 古田县| 和平区| 沐川县| 科技|