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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Knative 多容器支持介绍

發布時間:2024/9/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Knative 多容器支持介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介:微服務和容器化帶來了將應用程序分解成可重復使用的小型單元的訴求,這些單元通常作為單獨的進程運行,或者在單獨的容器運行。 Kubernetes的Pod模型允許用戶創建一個部署單元,該單元可以打包多個容器作為應用程序的單個實例。 Knative 用戶當前同樣存在將多個容器部署到一個Pod中對訴求。支持多個容器的能力將有利于把更廣泛的工作負載部署到Knative Serving模型中。因此 Knative 從 0.16.0 版本開始提供多個容器的能力。

導讀

微服務和容器化帶來了將應用程序分解成可重復使用的小型單元的訴求,這些單元通常作為單獨的進程運行,或者在單獨的容器運行。 Kubernetes的Pod模型允許用戶創建一個部署單元,該單元可以打包多個容器作為應用程序的單個實例。

Knative 用戶當前同樣存在將多個容器部署到一個Pod中對訴求。支持多個容器的能力將有利于把更廣泛的工作負載部署到Knative Serving模型中。因此 Knative 從 0.16.0 版本開始提供多個容器的能力。

多容器支持

單容器介紹

Knative 0.16.0之前的版本,僅支持設置一個業務容器,也就是在Knative Service中只能設置一個容器。在服務創建的過程中,會默認在POD中加上一個 QUEUE 容器,該容器主要用戶接管入口流量,用于基于流量的KPA指標收集。典型的一個Knative Service 如下:

apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 env: - name: TARGET value: "Knative"

創建完成運行中POD示意圖如下:

如果我們想要加上一個自定義的SideCar容器(一般用于網絡互通,文件下載拷貝等輔助功能),是沒有辦法去支持的,也就限制了實際的使用場景。

多容器介紹

Knative 從 0.16.0 版本開始也支持了多容器(沒什么好說的,k8s pod天然的特性必須要支持)

那么如何使用多容器呢?很簡單,其實就是在containers屬性中配置多個即可,示例如下:

apiVersion: serving.knative.dev/v1 kind: Service metadata: name: multi-container namespace: default spec: template: spec: containers: - image: docker.io/savita3020/servingcontainer ports: - containerPort: 8881 - image: docker.io/savita3020/sidecarcontainer

開啟多容器特性

  • 阿里云 Knative v0.18.3 已經默認開啟。
  • 社區 Knative 0.16.0 默認未開啟, 從0.17.0 開始默認開啟,執行下面操作可查看是否開啟:
$ kubectl -n knative-serving get configmap config-features -oyaml ...... multi-container: "enabled" ......

多容器實踐

前提條件

  • 創建Kubernetes托管版集群
  • 一鍵部署Knative


創建服務

接下來我們創建多容器的一個服務,該服務包括兩個容器:

  • servingcontainer 容器
  • sidecarcontainer 容器

servingcontainer調用sidecarcontainer, 示例代碼如下:

package main import ( "fmt" "io/ioutil" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { log.Println("serving container received a request.") res, err := http.Get("http://127.0.0.1:8882") if err != nil { log.Fatal(err) } resp, err := ioutil.ReadAll(res.Body) if err != nil { log.Fatal(err) } fmt.Fprintln(w, string(resp)) } func main() { log.Print("serving container started...") http.HandleFunc("/", handler) log.Fatal(http.ListenAndServe(":8881", nil)) }

sidecarcontainer 容器用于打印信息“Yay!! multi-container works”,示例代碼如下:

package main import ( "fmt" "log" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { log.Println("sidecar container received a request.") fmt.Fprintln(w, "Yay!! multi-container works") } func main() { log.Print("sidecar container started...") http.HandleFunc("/", handler) log.Fatal(http.ListenAndServe(":8882", nil)) }

我們創建multi-container的服務

apiVersion: serving.knative.dev/v1 kind: Service metadata: name: multi-container namespace: default spec: template: spec: containers: - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/servingcontainer:v1 ports: - containerPort: 8881 - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/sidecarcontainer:v1

執行部署命令:

kubectl apply -f multi-container.yaml

查看pod信息,發現一個 3 個容器(queue容器、servingcontainer 容器、sidecarcontainer 容器):

richard@B-N3TEMD6P-1650 multi-container % kubectl get po NAME READY STATUS RESTARTS AGE multi-container-dfqtv-deployment-799c4f694c-bkc8t 3/3 Running 0 9s

訪問服務:

richard@B-N3TEMD6P-1650 multi-container % curl -H "host: multi-container.default.example.com" http://182.92.208.172 Yay!! multi-container works

我們可以看到多容器訪問已經生效。

總結

本文介紹了從 Knative 0.16.0 版本支持的多容器特性,以及如何在Knative Service 中使用多個容器,有興趣的同學可以體驗一下,也歡迎加入 Knative 交流群一起交流:

原文鏈接:https://developer.aliyun.com/article/782390?

版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。

總結

以上是生活随笔為你收集整理的Knative 多容器支持介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。