自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Emoji.voto,Linkerd 服務網(wǎng)格(service mesh)的示例應用程序

網(wǎng)絡 通信技術(shù)
一個微服務應用程序,允許用戶為他們最喜歡的表情符號(emoji)投票,并跟蹤排行榜上收到的投票。愿最好的 emoji 獲勝。

[[412321]]

一個微服務應用程序,允許用戶為他們最喜歡的表情符號(emoji)投票,并跟蹤排行榜上收到的投票。愿最好的 emoji 獲勝。

該應用程序由以下 3 個服務組成:

emojivoto-web:Web 前端和 REST API

  • https://github.com/BuoyantIO/emojivoto/tree/main/emojivoto-web

emojivoto-emoji-svc:用于查找和列出 emoji 的 gRPC API

  • https://github.com/BuoyantIO/emojivoto/tree/main/emojivoto-emoji-svc

emojivoto-voting-svc:用于投票和排行榜的 gRPC API

  • https://github.com/BuoyantIO/emojivoto/blob/main/emojivoto-voting-svc

實戰(zhàn)

騰訊云 K8S 集群實戰(zhàn) Service Mesh—Linkerd2 & Traefik2 部署 emojivoto 應用

運行

在 Minikube 中

使用 Linkerd2 服務網(wǎng)格將應用程序部署到 Minikube。

1.安裝 linkerd CLI

  1. curl https://run.linkerd.io/install | sh 

2.安裝 Linkerd2

  1. linkerd install | kubectl apply -f - 

3.查看儀表盤!

  1. linkerd dashboard 

4.Inject, Deploy, and Enjoy

  1. kubectl kustomize kustomize/deployment | \ 
  2.     linkerd inject - | \ 
  3.     kubectl apply -f - 

5.使用應用程序!

  1. minikube -n emojivoto service web-svc 

在 docker-compose 中

也可以使用 docker-compose(不帶 Linkerd2)運行應用程序。

構(gòu)建并運行:

  1. make deploy-to-docker-compose 

Web 應用程序?qū)⒃?docker 主機的端口 8080 上運行。

通過 URL

獨立部署到現(xiàn)有集群:

  1. kubectl apply -k github.com/BuoyantIO/emojivoto/kustomize/deployment 

生成一些流量

VoteBot 服務可以為你帶來一些流量。它對表情符號“隨機”投票如下:

  • 15% 的選票投給 🍩
  • 不給 🍩 投票時,它會隨機選擇一個表情符號

如果您使用上述 instructions(部署說明) 運行應用程序,則 VoteBot 將已部署,并將開始向投票端點發(fā)送流量。

如果您想手動運行機器人:

  1. export WEB_HOST=localhost:8080 # replace with your web location 
  2. go run emojivoto-web/cmd/vote-bot/main.go 

發(fā)布新版本

要構(gòu)建和推送 multi-arch docker 鏡像:

1.更新 common.mk 中的標簽名稱

2.創(chuàng)建 Buildx 構(gòu)建器實例

  1. docker run --rm --privileged multiarch/qemu-user-static --reset -p yes 
  2. docker buildx create --name=multiarch-builder --driver=docker-container --use 
  3. docker buildx inspect multiarch-builder --bootstrap 

3.構(gòu)建 & 推送 multi-arch docker 鏡像到 hub.docker.com

  1. docker login 
  2. make multi-arch 

4.更新:

  • docker-compose.yml
  • kustomize/deployment/emoji.yml
  • kustomize/deployment/vote-bot.yml
  • kustomize/deployment/voting.yml
  • kustomize/deployment/web.yml

5.分發(fā)到 Linkerd website repo

  1. kubectl kustomize kustomize/deployment  > ../website/run.linkerd.io/public/emojivoto.yml 
  2. kubectl kustomize kustomize/daemonset   > ../website/run.linkerd.io/public/emojivoto-daemonset.yml 
  3. kubectl kustomize kustomize/statefulset > ../website/run.linkerd.io/public/emojivoto-statefulset.yml 

Prometheus 指標

默認情況下,投票服務在端口 8801 上公開有關(guān)當前投票計數(shù)的 Prometheus 指標。

這可以通過取消設置 PROM_PORT 環(huán)境變量來禁用。

本地開發(fā)

Emojivoto webapp

這個應用程序是用 React 編寫的,并使用 webpack 打包。使用以下命令運行 emojivoto go services 并在前端進行開發(fā)。

設置 proto 文件,構(gòu)建應用程序

  1. make build 

啟動投票服務

  1. GRPC_PORT=8081 go run emojivoto-voting-svc/cmd/server.go 

[在單獨的終端窗口中] 啟動 emoji 服務

  1. GRPC_PORT=8082 go run emojivoto-emoji-svc/cmd/server.go 

[在單獨的終端窗口中] 捆綁前端資源

  1. cd emojivoto-web/webapp 
  2. yarn install 
  3. yarn webpack # one time asset-bundling OR 
  4. yarn webpack-dev-server --port 8083 # bundle/serve reloading assets 

[在單獨的終端窗口中] 啟動 Web 服務

  1. export WEB_PORT=8080 
  2. export VOTINGSVC_HOST=localhost:8081 
  3. export EMOJISVC_HOST=localhost:8082 
  4.  
  5. # if you ran yarn webpack 
  6. export INDEX_BUNDLE=emojivoto-web/webapp/dist/index_bundle.js 
  7.  
  8. # if you ran yarn webpack-dev-server 
  9. export WEBPACK_DEV_SERVER=http://localhost:8083 
  10.  
  11. # start the webserver 
  12. go run emojivoto-web/cmd/server.go 

[可選] 啟動投票機器人以自動生成流量。

  1. export WEB_HOST=localhost:8080 
  2. go run emojivoto-web/cmd/vote-bot/main.go 

查看 emojivoto

  1. open http://localhost:8080 

測試 Linkerd 服務配置文件

Service Profiles 是 Linkerd 的一個特性, 它提供了每條路由的功能,如遙測(telemetry)、超時(timeouts)和重試(retries)。 Emojivoto 應用程序旨在通過以下說明展示服務配置文件。

Service Profiles:https://linkerd.io/2/features/service-profiles

從 .proto 文件生成 ServiceProfile 定義

emoji 和 voting 服務是具有 Protocol Buffers (protobuf) definition 文件的 gRPC 應用程序。這些 .proto 文件可用作 linkerd profile 命令的輸入, 以創(chuàng)建 ServiceProfile definition yaml 文件。Linkerd Service Profile 文檔 概述了創(chuàng)建 yaml 文件所需的步驟,這些是您可以從該存儲庫的根目錄使用的命令:

  1. linkerd profile --proto proto/Emoji.proto emoji-svc -n emojivoto 
  2. linkerd profile --proto proto/Voting.proto voting-svc -n emojivoto 

 Protocol Buffers (protobuf):https://developers.google.com/protocol-buffers

gRPC:https://grpc.io

Linkerd Service Profile 文檔:https://linkerd.io/2/tasks/setting-up-service-profiles/#protobuf

這些命令中的每一個都會輸出 yaml,您可以將其寫入文件或管道, 直接將其寫入 kubectl apply。例如:

  • 寫入文件:
  1. linkerd profile --proto proto/Emoji.proto emoji-svc -n emojivoto > emoji 
  2. -sp.yaml 
  • 直接 apply:
  1. linkerd profile --proto proto/Voting.proto voting-svc -n emojivoto | \ 
  2. kubectl apply -f - 

為 Web 部署生成 ServiceProfile 定義

emojivoto 的 web-svc 部署是一個由 Go server 托管的 React 應用程序。我們可以使用 linkerd profile auto creation,使用以下命令為 web-svc 生成 ServiceProfile 資源:

  1. linkerd profile -n emojivoto web-svc --tap deploy/web --tap-duration 10s | \ 
  2.    kubectl apply -f - 

現(xiàn)在為所有服務生成了服務配置文件,您可以在 Linkerd Dashboard 上或使用 linkerd routes 命令觀察每個服務的每條路由指標

  1. linkerd -n emojivoto routes deploy/web-svc --to svc/emoji-svc 

linkerd profile auto creation

  • https://linkerd.io/2/tasks/setting-up-service-profiles/#auto-creation

Linkerd Dashboard

  • https://linkerd.io/2/features/dashboard

 

責任編輯:姜華 來源: 黑客下午茶
相關(guān)推薦

2021-06-05 10:16:55

Linkerd 服務網(wǎng)格Kubernetes

2021-04-25 08:48:36

Traefik mes服務網(wǎng)格Kubernetes集

2021-12-08 17:54:55

架構(gòu)控制平面

2022-08-21 07:17:16

LinkerdKubernetes服務網(wǎng)格

2021-12-11 22:21:00

服務配置文件

2021-12-10 18:19:14

授權(quán) Linkerd策略

2021-10-31 20:56:25

Mesh ServiceAPI

2023-11-07 17:32:31

Istiok8s

2022-11-24 14:21:27

微服務ISTIO

2023-06-18 19:21:04

技術(shù)架構(gòu)服務網(wǎng)格

2022-08-30 20:00:37

零信任Linkerd

2020-11-15 23:48:57

服務網(wǎng)格微服務網(wǎng)絡網(wǎng)絡技術(shù)

2020-01-07 09:25:02

服務網(wǎng)格微服務Kubernetes

2022-05-16 08:00:00

服務網(wǎng)格架構(gòu)Kuma

2019-08-29 08:00:00

微服務架構(gòu)服務網(wǎng)格

2020-07-13 07:00:03

微服務服務網(wǎng)格架構(gòu)

2020-10-21 13:31:53

服務網(wǎng)格開源微服務

2020-08-26 05:45:40

服務網(wǎng)格DevOps開發(fā)

2022-08-09 08:00:00

服務網(wǎng)格云原生工具

2022-07-06 08:25:17

服務網(wǎng)格Kubernetes
點贊
收藏

51CTO技術(shù)棧公眾號