Knative是一款基于Kubernetes的開源Serverless應用編排框架,其目標是制定云原生、跨平臺的Serverless應用編排標準。ACK Serverless Knative基于容器服務 Serverless 版之上,在完全兼容社區Knative的同時,支持事件驅動、自動彈性。本文通過一個示例介紹如何通過Knative部署消息處理和Homepage,并最終實現彈幕消息發送。
前提條件
步驟一:部署消息處理服務和HomePage
消息處理用于接收彈幕請求,并根據請求數進行自動擴縮容。HomePage用于發送和接收彈幕消息。部署消息處理服務和HomePage操作步驟如下。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在Knative頁面,單擊服務管理頁簽,然后單擊使用模板創建。
默認創建一個名為danmu-message的服務。示例代碼中的
image
需根據集群所在地域進行替換。本文以華北2(北京)地域為例進行創建,請根據不同地域替換代碼中的image
。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: danmu-message namespace: default spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: "10" autoscaling.knative.dev/minScale: "1" spec: containerConcurrency: 2 containers: - args: - /message - --url=http://danmu-portal.default.svc.cluster.local/api/result env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name image: registry-vpc.cn-beijing.aliyuncs.com/acs/knative-danmu-message:v1.0 name: user-container ports: - containerPort: 8080 name: http1
重復執行上一步。清空模板內容,將下方HomePage的YAML示例粘貼至新的空白模板,然后單擊創建。
默認會創建一個名為danmu-portal的服務。示例代碼中的
image
需根據集群所在地域進行替換。本文以華北2(北京)地域為例進行創建,請根據不同地域替換代碼中的image
。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: danmu-portal namespace: default spec: template: metadata: annotations: autoscaling.knative.dev/maxScale: "1" autoscaling.knative.dev/minScale: "1" spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/acs/knative-danmu-portal:v1.0 name: user-container args: - /danmu - --url=http://danmu-message.default.svc.cluster.local/web/api/process ports: - containerPort: 8080 name: http1
在服務管理頁簽,當danmu-message和danmu-portal的狀態變為成功時,表明消息處理服務和HomePage部署成功。
記錄此處訪問網關的IP地址,在下一步操作中使用。
步驟二:綁定訪問網關地址和域名
消息處理服務和HomePage部署完成后,需要將上一步記錄的訪問網關地址綁定到待訪問的用于發送和接收彈幕消息的HomePage的域名danmu-portal.default.example.com
。
找到計算機中Hosts文件所在位置,然后在Hosts文件中添加綁定信息,具體格式為訪問網關+空格+域名,例如,47.96.XX.XX danmu-portal.default.example.com
,然后通過域名直接對服務進行訪問。
步驟三:部署服務
完成以上操作后,在瀏覽器輸入域名http://danmu-portal.default.example.com
直接訪問彈幕服務。在訪問頁面設置如下彈幕的參數,然后單擊發送消息,查看彈幕信息。
配置項 | 說明 | 示例 |
消息 | 具體發送的消息。 | welcome |
并發 | 彈幕消息的并發數。 | 20 |
持續 | 彈幕消息的持續時間,單位為秒。 | 30 |