成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的新羅網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

最近正巧在進(jìn)行 Newbe.Claptrap 新版本的開發(fā),其中使用到了 Tye 來輔助 k8s 應(yīng)用的開發(fā)。

安裝 Tye

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

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

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

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

安裝完畢后,在控制臺(tái)中運(yùn)行 tye,便可以查看到如下結(jié)果:

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

創(chuàng)建并運(yùn)行一個(gè)測(cè)試項(xiàng)目

接下來我們創(chuàng)建一個(gè) netcore 應(yīng)用來測(cè)試該部署方案。選擇一個(gè)合適的位置運(yùn)行以下命令來創(chuàng)建測(cè)試項(xiàng)目:

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

這樣,我們就得到了一個(gè)測(cè)試的解決方案和 WebApi 項(xiàng)目。我們可以運(yùn)行以下命令在本地啟動(dòng)這個(gè)服務(wù):

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

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

使用 tye 在本地運(yùn)行應(yīng)用

接下來,我們關(guān)閉前面正在運(yùn)行的應(yīng)用,改為使用 tye 在本地啟動(dòng)測(cè)試應(yīng)用。

在解決方案目錄下,使用控制臺(tái)運(yùn)行以下命令:

tye run

運(yùn)行之后,可能會(huì)得到如下的結(jié)果:

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 成功啟動(dòng)的 tye dashboard。使用瀏覽器打開 dashboard 便可以查看到已經(jīng)部署起來的應(yīng)用列表。如下圖所示:

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

通過 dashboard ,可以看到測(cè)試程序已經(jīng)啟動(dòng),并且綁定了 http://localhost:14099 和 https://localhost:14100。實(shí)際在自行測(cè)試中,這兩個(gè)端口是隨機(jī)選擇的,因此會(huì)有不同。

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

本地部署一個(gè) k8s

接下來,我們將使用 Tye 將應(yīng)用部署到 k8s 當(dāng)中。那么為了實(shí)現(xiàn)這個(gè)效果,首先需要準(zhǔn)備一個(gè) k8s 。

在開發(fā)機(jī)器上部署 k8s 的方式多種多樣,本次實(shí)驗(yàn)采用的是 Docker Desktop + k8s 的方案,原因不是別的,就是因?yàn)槭褂闷渌桨冈谶^程中遇到了或多或少的問題。具體的開發(fā)者可以自行選擇。

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

《Docker Desktop 啟動(dòng) Kubernetes》https://www.cnblogs.com/weschen/p/12658839.html

本次實(shí)驗(yàn)除了 k8s 本體之外,還需要安裝 nginx ingress 和 helm ,也可以參考以上文章中的內(nèi)容進(jìn)行安裝。

將應(yīng)用部署到 k8s 中

但 k8s 配置完畢之后,我們就可以使用 tye 將應(yīng)用快速發(fā)布到 k8s 中進(jìn)行查看。

登錄 docker registry

首先,需要為本地的 docker 配置 docker registry。因?yàn)樵谑褂?tye 發(fā)布的過程中將會(huì)將項(xiàng)目打包的 docker image 并且推送到一個(gè) docker registry 中。

開發(fā)者可以選擇多種方式獲得一個(gè)自己的 docker registry:

  • Nexus OSS Repository

  • 阿里云、騰訊云、DaoCloud 等等都有免費(fèi)額度的 docker registry

  • docker hub,如果網(wǎng)絡(luò)都好的話

使用 docker login 登錄你的 docker registry。

tye init 創(chuàng)建 tye.yml

在解決方案目錄中,運(yùn)行以下命令來創(chuàng)建 tye.yml 配置文件:

tye init

運(yùn)行之后,將會(huì)在解決方案文件夾得到如下文件:

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

這就是一個(gè)最簡(jiǎn)單的 tye.yml 文件。

修改 tye.yml

我們?cè)?tye.yml 中加入一行關(guān)于 docker registry 的配置,以指定構(gòu)建出來的鏡像將推送到何處:

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

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

這就相當(dāng)于,如果進(jìn)行構(gòu)建,將會(huì)構(gòu)建一個(gè) tag 為 registry.cn-hangzhou.aliyuncs.com/newbe36524/tyetest:1.0.0 的鏡像并推送到阿里云中。

提前下載 netcore 基礎(chǔ)鏡像

因?yàn)榇舜挝覀儼l(fā)布的是 netcore 程序,他們將會(huì)被構(gòu)建的 netcore 鏡像,因此,為了更加順利的進(jìn)行構(gòu)建,建議先使用加速工具在本地提前下載好基礎(chǔ)鏡像。

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

由于現(xiàn)在 netcore 基礎(chǔ)鏡像的源已經(jīng)從 docker hub 遷移到 mcr.microsoft.com。故而,建議使用 Newbe.McrMirror 進(jìn)行加速下載。

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

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

使用 tye deploy

一切已經(jīng)準(zhǔn)備就緒,現(xiàn)在,繼續(xù)在解決方案目錄運(yùn)行以下命令,便可以進(jìn)行發(fā)布:

tye deploy

可能會(huì)得到如下結(jié)果:

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

從輸出的日志,我們可以看出,應(yīng)用已經(jīng)發(fā)布成功。并且使用 k8s dashboard 或者 k9s,我們都可以查看到應(yīng)用已經(jīng)成功部署,并且啟動(dòng)完成。

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

值得注意的是,確保這一步正常運(yùn)行有幾個(gè)前提:

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

  • 需要確保 docker login 已經(jīng)成功。開發(fā)者可以在運(yùn)行部署前,測(cè)試以下是否可以手動(dòng)推送鏡像

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

創(chuàng)建并使用 ingress

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

這里,我們打開 tye.yml 添加 ingress 相關(guān)配置:

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

我們?cè)黾恿艘粋€(gè) ingress 配置,使得當(dāng)流量從 ingress 進(jìn)入,并且域名為 www.yueluo.pro 的時(shí)候,將會(huì)轉(zhuǎn)發(fā)到 tyetest 服務(wù)。這樣就實(shí)現(xiàn)了從外部訪問 k8s 內(nèi)部服務(wù)的目的。

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

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

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

  • 在 hosts 中加入 www.yueluo.pro -> 127.0.0.1 的映射關(guān)系

  • 使用 http 請(qǐng)求文件直接訪問。

這里我們采用 http 請(qǐng)求文件直接訪問:

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

這樣,我們就成功驗(yàn)證了綁定的結(jié)果。

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

將 ingress 部署到 k8s 中

接下來,停止 tye run, 運(yùn)行 tye deploy 將 ingress 和應(yīng)用程序發(fā)布到 k8s 中。

注意,ingress 的部署可能會(huì)花費(fèi)數(shù)十秒的時(shí)間,因此需要進(jìn)行一下等待。

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

并且,可以使用以下 http 請(qǐng)求來驗(yàn)證部署的結(jié)果:

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

其得到的結(jié)果與先前自然是一樣的。

從 k8s 中卸載應(yīng)用

卸載應(yīng)用,非常簡(jiǎn)單,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

看完上述內(nèi)容,你們對(duì)k8s中Tye的安裝及用法是什么有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

新聞標(biāo)題:k8s中Tye的安裝及用法是什么
網(wǎng)站網(wǎng)址:http://jinyejixie.com/article26/gpidjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站網(wǎng)頁設(shè)計(jì)公司、微信公眾號(hào)企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
临朐县| 莫力| 黄冈市| 积石山| 会东县| 正镶白旗| 乌什县| 安化县| 大荔县| 湖州市| 夹江县| 正宁县| 海丰县| 贵阳市| 肇庆市| 唐河县| 常山县| 延寿县| 于田县| 垫江县| 芦溪县| 阿拉尔市| 天台县| 安多县| 顺昌县| 正镶白旗| 平乐县| 丰镇市| 建阳市| 姚安县| 常熟市| 鄂州市| 清镇市| 曲周县| 右玉县| 潍坊市| 枣阳市| 临武县| 西峡县| 苏尼特右旗| 平塘县|