日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Knative 实战:一个微服务应用的部署

發(fā)布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Knative 实战:一个微服务应用的部署 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

作者 | 元毅 阿里云智能事業(yè)群高級開發(fā)工程師

在 Istio 中提供了一個 Bookinfo 的示例,用于演示微服務(wù)之間的調(diào)用,那么如何在 Knative 中部署這個示例呢?本文將會給大家介紹一下在 Knative 中部署 Bookinfo 微服務(wù)以及查看調(diào)用鏈追蹤信息。

背景

Bookinfo 這個示例應(yīng)用由 4 個微服務(wù)組成。 Bookinfo 應(yīng)用架構(gòu)圖如下:

  • productpage 微服務(wù): 調(diào)用 details 微服務(wù)和 reviews 微服務(wù)來生成頁面
  • details 微服務(wù): 包含圖書的詳細(xì)信息
  • reviews 微服務(wù): 提供圖書的評論功能,也可以調(diào)用 rating 微服務(wù)給圖書評分
  • ratings 微服務(wù): 提供圖書的評分功能

另外 reviews 微服務(wù)目前有 3 個版本:

  • v1 不會調(diào)用 ratings 微服務(wù)
  • v2 調(diào)用 ratings 微服務(wù),并將評分顯示 1~5 個黑色星星
  • v3 調(diào)用 ratings 微服務(wù),并將每個評分顯示為 1~5 個紅色星星

準(zhǔn)備

  • 已部署 Knative。可參考:阿里云容器服務(wù)部署 Knative
  • 已開啟鏈路追蹤 Tracing Analysis服務(wù),可參考:在Knative 上實現(xiàn) Tracing 分布式追蹤

部署

首先開啟 Istio Sidecar 注入,我們在 default 命名空間打上 istio-injection=enabled 的 Label:

kubectl label namespace default istio-injection=enabled

部署 Bookinfo Knative Service 服務(wù), 簡單直接通過 yaml 文件一鍵拉起來,bookinfo.yaml:

apiVersion: serving.knative.dev/v1 kind: Service metadata:name: details-v1namespace: default spec:template:spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/examples-bookinfo-details-v1:1.15.0ports:- containerPort: 9080 --- apiVersion: serving.knative.dev/v1 kind: Service metadata:name: ratings-v1namespace: default spec:template:spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/examples-bookinfo-ratings-v1:1.15.0ports:- containerPort: 9080--- apiVersion: serving.knative.dev/v1 kind: Service metadata:name: reviews-v1namespace: default spec:template:spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/examples-bookinfo-reviews-v1:v1-aliyunports:- containerPort: 9080--- apiVersion: serving.knative.dev/v1 kind: Service metadata:name: reviews-v2namespace: default spec:template:spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/examples-bookinfo-reviews-v2:v1-aliyunports:- containerPort: 9080env:- name: SERVICES_DOMAINvalue: default.svc.cluster.local- name: RATINGS_HOSTNAMEvalue: ratings-v1 --- apiVersion: serving.knative.dev/v1 kind: Service metadata:name: reviews-v3namespace: default spec:template:spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/examples-bookinfo-reviews-v3:v1-aliyunports:- containerPort: 9080env:- name: SERVICES_DOMAINvalue: default.svc.cluster.local- name: RATINGS_HOSTNAMEvalue: ratings-v1 --- apiVersion: serving.knative.dev/v1 kind: Service metadata:name: productpage-v1namespace: default spec:template:spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/knative-sample/productpage:v1-aliyunports:- containerPort: 9080env:- name: SERVICES_DOMAINvalue: default.svc.cluster.local- name: DETAILS_HOSTNAMEvalue: details-v1- name: RATINGS_HOSTNAMEvalue: ratings-v1- name: REVIEWS_HOSTNAMEvalue: reviews-v2

這里需要說明幾點:

  • productpage 環(huán)境變量設(shè)置:

    • SERVICES_DOMAIN:微服務(wù)直接通過內(nèi)部訪問域名進行訪問,這里設(shè)置域名后綴為:default.svc.cluster.local
    • DETAILS_HOSTNAME:設(shè)置為 details-v1
    • RATINGS_HOSTNAME:設(shè)置為 ratings-v1
    • REVIEWS_HOSTNAME: 這里設(shè)置 reviews-v2
  • reviews v2, v3 環(huán)境變量設(shè)置。由于 v2 和 v3 需要訪問 rate 進行評分, 因此需要設(shè)置對應(yīng)的環(huán)境變量:

    • SERVICES_DOMAIN:微服務(wù)直接通過內(nèi)部訪問域名進行訪問,這里設(shè)置域名后綴為:default.svc.cluster.local
    • RATINGS_HOSTNAME:設(shè)置為 ratings-v1

執(zhí)行命令:

# kubectl apply -f bookinfo.yaml

查看執(zhí)行結(jié)果:

# kubectl get kservice productpage-v1 http://productpage-v1.default.knative.kuberun.com productpage-v1-s4drn productpage-v1-s4drn True ratings-v1 http://ratings-v1.default.knative.kuberun.com ratings-v1-bsvb2 ratings-v1-bsvb2 True details-v1 http://details-v1.default.knative.kuberun.com details-v1-dj47j details-v1-dj47j True reviews-v1 http://reviews-v1.default.knative.kuberun.com reviews-v1-q5wz4 reviews-v1-q5wz4 True reviews-v2 http://reviews-v2.default.knative.kuberun.com reviews-v2-5r7mm reviews-v2-5r7mm True reviews-v3 http://reviews-v3.default.knative.kuberun.com reviews-v3-s2v6j reviews-v3-s2v6j True

通過頁面進行訪問,說明服務(wù)訪問正常:

微服務(wù)調(diào)用鏈

一般情況下,用戶比較關(guān)注微服務(wù)中的調(diào)用鏈信息,通過 Tracing Analysis 服務(wù),我們可以方便的查看服務(wù)調(diào)用鏈。

首先我們進行一次服務(wù)訪問,在 productpage 頁面,點擊?Normal user。

可以看到 Book Details ?和 Book Reviews 信息。productpage 服務(wù)依次會調(diào)用:details、reviews 和 ratings 服務(wù)。

接下來登錄 Tracing Analysis 服務(wù)控制臺,選擇【應(yīng)用列表】,點擊 productpage.default。

選擇 調(diào)用鏈分析 頁簽,可以查看服務(wù)調(diào)用鏈信息。

結(jié)論

通過上面的介紹,我們可以在 Knative 中輕松實現(xiàn)微服務(wù)部署,并且結(jié)合 Tracing Analysis 服務(wù)可以滿足部署生產(chǎn)級別服務(wù)訴求。

歡迎加入 Knative 交流群

作者簡介:元毅,阿里云容器平臺高級開發(fā)工程師,負(fù)責(zé)阿里云容器平臺 Knative 相關(guān)工作。

了解 ACK 容器服務(wù),請查看:https?:?//www.aliyun.com/product/kubernetes

“ 阿里巴巴云原生微信公眾號(ID:Alicloudnative)關(guān)注微服務(wù)、Serverless、容器、Service Mesh等技術(shù)領(lǐng)域、聚焦云原生流行技術(shù)趨勢、云原生大規(guī)模的落地實踐,做最懂云原生開發(fā)者的技術(shù)公眾號。”

總結(jié)

以上是生活随笔為你收集整理的Knative 实战:一个微服务应用的部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。