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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基于Knative开发应用

發布時間:2024/8/23 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Knative开发应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

title: (三)基于Knative開發應用

目錄

  • 安裝 Istio
  • 安裝 Knative
  • 玩轉 helloworld-go
  • WordPress 實戰

創建 Kubernetes 集群

  • 確保 Kubernetes 集群創建的時候已經選擇了啟用日志服務
  • 確保 Kubernetes 集群和 OSS 在一個 region
  • Kubernetes 集群創建的時候需要開啟 kube-apiserver 公網訪問
  • 提前幫用戶配置好 kubeconfig 命令行

安裝 Istio

安裝 Istio 時注意以下幾點:

  • 默認要安裝 gateway
  • 日志服務和 Xtrace 要提前開通,Istio 需要使用 ZipKin v1 向 Xtrace 匯報監控數據

在容器服務集群管理頁面可以直接在目標集群上部署 Istio

安裝 Knative

選擇好目標集群使用一鍵部署功能直接安裝即可,?安裝文檔

玩轉 helloworld-go

  • 配置日志采集策略
  • 部署 Helloworld
  • 監控告警
  • 調用鏈
  • 壓測數據展示

日志管理

  • 日志服務控制臺:?https://sls.console.aliyun.com
  • 本示例以容器標準輸出采集為例進行展示,詳細設置步驟可以參考日志服務文檔
  • 根據 Kubernetes 集群 ID 找到對應的日志服務 Project
  • 創建一個新的 Logstore

設置數據導入方式

選擇 Docker標準輸出

  • 配置容器標準輸出日志采集策略
{"inputs": [{"detail": {"IncludeEnv": {"K_SERVICE": "helloworld-go"},"IncludeLabel": {},"ExcludeLabel": {}},"type": "service_docker_stdout"}],"processors": [{"detail": {"KeepSource": false,"NoMatchError": true,"Keys": ["time","level","msg"],"NoKeyError": true,"Regex": "(\\d+-\\d+-\\d+ \\d+:\\d+:\\d+)\\s+(\\w+)\\s+(*)","SourceKey": "content"},"type": "processor_regex"}] }

分別為相應的鍵值 time、level 和 msg 設置數據類型

部署 Helloworld

  • 準備 kubeconfig

到容器服務控制臺頁面,打開集群詳情頁。復制 KubeConfig 內容保存到本地 ~/.kube/config 文件

  • git clone?https://github.com/knative-sample/helloworld-go
  • 安裝

    cd helloworld-go kubectl apply -f sample/service.yaml

多訪問幾次 helloworld-go 生成一些訪問日志

./sample/run-test.sh

生成一些訪問日志以后點擊查詢,即可查看相應的日志

日志服務控制臺:?https://sls.console.aliyun.com

日志服務有豐富的查詢條件,比如查詢 ERROR 日志

監控告警

使用下查詢語句進行搜索,這條語句使用了 SELECT ,可以進行更高級別的操作。

level:ERROR | SELECT COUNT(*) as total

搜索ERROR 日志,時間跨度選擇一分鐘。

點擊另存為告警

觸發條件的變量就是 左側表格中的列名稱

如下設置的含義是,1分鐘檢索一次 ERROR 日志的數量如果大于等于4 就告警。

可以設置多種告警通知方式,并且告警 body 還可以使用系統變量。獲取告警的上下文信息。

打開郵件可以看到告警通知

調用鏈

  • 調用鏈控制臺:?https://tracing-analysis.console.aliyun.com

選擇相應的 Region,點擊應用列表查看應用列表

調用鏈查詢頁面

壓測數據展示

下載源文件:?https://kstarter.oss-cn-beijing.aliyuncs.com/knload-result.html?,直接用瀏覽器打開即可查看

壓測的并發數陡增導致服務響應時間抖動,但隨著 Pod 數量的自動擴容 RT 很快就恢復到了正常水位。

  • 壓測工具 knload
  • server 端模擬:http-server

WordPress

  • 部署 WordPress
  • 修改主題和安裝 plugin
  • OSS 圖片添加水印
  • 現場互動壓測

部署 WordPress

  • 工程

    • https://github.com/knative-sample/wordpress
    • https://github.com/knative-sample/deployer
    • ?
  • 部署 WordPress

    ## ENV 換成具體的值env:- name: WORDPRESS_DB_HOSTvalue: {db_host:3306}- name: WORDPRESS_DB_NAMEvalue: {db_name}- name: WORDPRESS_DB_USERvalue: {db_user}- name: WORDPRESS_DB_PASSWORDvalue: {db_password}## 部署 WordPress # kubectl apply -f /Users/qiulin.nql/works/github/knative-sample/secret/wordpress-service.yaml kubectl apply -f sample/service.yaml
  • 添加 Egress

    kubectl apply -f sample/egress.yaml
  • 訪問 WordPress 服務

    ./hack/run-wp-test.sh
  • host 綁定 && 瀏覽器訪問
  • 日志收集

    {"inputs": [{"detail": {"IncludeEnv": {"K_SERVICE": "wordpress"},"IncludeLabel": {},"ExcludeLabel": {}},"type": "service_docker_stdout"}],"processors": [{"detail": {"KeepSource": false,"NoMatchError": true,"Keys": ["ip","time","req","code"],"NoKeyError": true,"Regex": "(\\d+.\\d+.\\d+.\\d+)\\s+-\\s+(\\d+/\\w+/\\d+:\\d+:\\d+:\\d+\\s\\+\\d+)\\s\"(.*)\"\\s(\\d+)","SourceKey": "content"},"type": "processor_regex"}] }

多并發測試

hey -z 30s -c 50 "http://wordpress.default.example.com/" && kubectl get pods

修改主題和安裝 plugin

  • plugins


原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的基于Knative开发应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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