在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Kubernete實現應用的藍綠部署

馬哥Linux運維 ? 來源:稀土掘金 ? 作者:chulinx ? 2022-08-20 14:57 ? 次閱讀

背景介紹

某些情況下,我們在使用Kubernetes作為業務應用的云平臺,想要實現應用的藍綠部署用來迭代應用版本,用lstio太重太復雜,而且它本身定位于流控和網格治理;Ingress-Nginx在0.21版本引入了Canary功能,可以為網關入口配置多個版本的應用程序,使用annotation來控制多個后端服務的流量分配。

Ingress-Nginx-Annotation Canary 功能介紹

如果想啟用Canary功能,要先設置nginx.ingress.kubernetes.io/canary: "true",然后可以啟用以下注釋來配置Canary

nginx.ingress.kubernetes.io/canary-weight 請求到Canary ingress中指定的服務的請求百分比,值為0-100的整數,根據設置的值來決定大概有百分之多少的流量會分配Canary Ingress中指定的后端s服務

nginx.ingress.kubernetes.io/canary-by-header 基于request header 的流量切分,適用于灰度發布或者A/B測試,當設定的hearder值為always是,請求流量會被一直分配到Canary入口,當hearder值被設置為never時,請求流量不會分配到Canary入口,對于其他hearder值,將忽略,并通過優先級將請求流量分配到其他規則

nginx.ingress.kubernetes.io/canary-by-header-value 這個配置要和nginx.ingress.kubernetes.io/canary-by-header 一起使用,當請求中的hearder key和value 和nginx.ingress.kubernetes.io/canary-by-header nginx.ingress.kubernetes.io/canary-by-header-value匹配時,請求流量會被分配到Canary Ingress入口,對于其他任何hearder值,將忽略,并通過優先級將請求流量分配到其他規則

nginx.ingress.kubernetes.io/canary-by-cookie 這個配置是基于cookie的流量切分,也適用于灰度發布或者A/B測試,當cookie值設置為always時,請求流量將被路由到Canary Ingress入口,當cookie值設置為never時,請求流量將不會路由到Canary入口,對于其他值,將忽略,并通過優先級將請求流量分配到其他規則

金絲雀規則按優先順序進行如下排序:canary-by-header - > canary-by-cookie - > canary-weight

基于權重的小規模版本測試

v1版本編排文件

apiVersion:extensions/v1beta1
kind:Ingress
metadata:
annotations:
kubernetes.io/ingress.class:nginx
labels:
app:echoserverv1
name:echoserverv1
namespace:echoserver
spec:
rules:
-host:echo.chulinx.com
http:
paths:
-backend:
serviceName:echoserverv1
servicePort:8080
path:/
---
kind:Service
apiVersion:v1
metadata:
name:echoserverv1
namespace:echoserver
spec:
selector:
name:echoserverv1
type:ClusterIP
ports:
-name:echoserverv1
port:8080
targetPort:8080
---
apiVersion:extensions/v1beta1
kind:Deployment
metadata:
name:echoserverv1
namespace:echoserver
labels:
name:echoserverv1
spec:
template:
metadata:
labels:
name:echoserverv1
spec:
containers:
-image:mirrorgooglecontainers/echoserver:1.10
name:echoserverv1
ports:
-containerPort:8080
name:echoserverv1

查看v1版本創建的資源

$[K8sSj]kubectlgetpod,service,ingress-nechoserver
NAMEREADYSTATUSRESTARTSAGE
pod/echoserverv1-657b966cb5-7grqs1/1Running024h

NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
service/echoserverv1ClusterIP10.99.68.728080/TCP24h

NAMEHOSTSADDRESSPORTSAGE
ingress.extensions/echoserverv1echo.chulinx.com8024h

訪問v1的服務,可以看到10個請求都是訪問到一個pod上也就是v1版本的服務

$[K8sSj]foriin`seq10`;docurl-secho.chulinx.com|grepHostname;done
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs

創建v2版本的服務

我們開啟canary功能,將v2版本的權重設置為50%,這個百分比并不能精確的將請求平均分配到兩個版本的服務,而是在50%上下浮動

apiVersion:extensions/v1beta1
kind:Ingress
metadata:
annotations:
kubernetes.io/ingress.class:nginx
nginx.ingress.kubernetes.io/canary:"true"
nginx.ingress.kubernetes.io/canary-weight:"50"
labels:
app:echoserverv2
name:echoserverv2
namespace:echoserver
spec:
rules:
-host:echo.chulinx.com
http:
paths:
-backend:
serviceName:echoserverv2
servicePort:8080
path:/
---
kind:Service
apiVersion:v1
metadata:
name:echoserverv2
namespace:echoserver
spec:
selector:
name:echoserverv2
type:ClusterIP
ports:
-name:echoserverv2
port:8080
targetPort:8080
---
apiVersion:extensions/v1beta1
kind:Deployment
metadata:
name:echoserverv2
namespace:echoserver
labels:
name:echoserverv2
spec:
template:
metadata:
labels:
name:echoserverv2
spec:
containers:
-image:mirrorgooglecontainers/echoserver:1.10
name:echoserverv2
ports:
-containerPort:8080
name:echoserverv2

創建v2版本的服務

我們開啟canary功能,將v2版本的權重設置為50%,這個百分比并不能精確的將請求平均分配到兩個版本的服務,而是在50%上下浮動

apiVersion:extensions/v1beta1
kind:Ingress
metadata:
annotations:
kubernetes.io/ingress.class:nginx
nginx.ingress.kubernetes.io/canary:"true"
nginx.ingress.kubernetes.io/canary-weight:"50"
labels:
app:echoserverv2
name:echoserverv2
namespace:echoserver
spec:
rules:
-host:echo.chulinx.com
http:
paths:
-backend:
serviceName:echoserverv2
servicePort:8080
path:/
---
kind:Service
apiVersion:v1
metadata:
name:echoserverv2
namespace:echoserver
spec:
selector:
name:echoserverv2
type:ClusterIP
ports:
-name:echoserverv2
port:8080
targetPort:8080
---
apiVersion:extensions/v1beta1
kind:Deployment
metadata:
name:echoserverv2
namespace:echoserver
labels:
name:echoserverv2
spec:
template:
metadata:
labels:
name:echoserverv2
spec:
containers:
-image:mirrorgooglecontainers/echoserver:1.10
name:echoserverv2
ports:
-containerPort:8080
name:echoserverv2

再次查看創建的資源

$[K8sSj]kubectlgetpod,service,ingress-nechoserver
NAMEREADYSTATUSRESTARTSAGE
pod/echoserverv1-657b966cb5-7grqs1/1Running024h
pod/echoserverv2-856bb5758-f9tqn1/1Running04s

NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGE
service/echoserverv1ClusterIP10.99.68.728080/TCP24h
service/echoserverv2ClusterIP10.111.103.1708080/TCP4s

NAMEHOSTSADDRESSPORTSAGE
ingress.extensions/echoserverv1echo.chulinx.com8024h
ingress.extensions/echoserverv2echo.chulinx.com804s

訪問測試

可以看到請求有4個落到v2版本,6個落到v1版本,理論上來說,請求說越多,落到v2版本的請求數越接近設置的權重50%

$[K8sSj]foriin`seq10`;docurl-secho.chulinx.com|grepHostname;done
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs

基于header的A/B測試

更改v2版本的編排文件

增加headernginx.ingress.kubernetes.io/canary-by-header: "v2"

apiVersion:extensions/v1beta1
kind:Ingress
metadata:
annotations:
kubernetes.io/ingress.class:nginx
nginx.ingress.kubernetes.io/canary:"true"
nginx.ingress.kubernetes.io/canary-weight:"50"
nginx.ingress.kubernetes.io/canary-by-header:"v2"
labels:
app:echoserverv2
name:echoserverv2
namespace:echoserver
spec:
rules:
-host:echo.chulinx.com
http:
paths:
-backend:
serviceName:echoserverv2
servicePort:8080
path:/
---
kind:Service
apiVersion:v1
metadata:
name:echoserverv2
namespace:echoserver
spec:
selector:
name:echoserverv2
type:ClusterIP
ports:
-name:echoserverv2
port:8080
targetPort:8080
---
apiVersion:extensions/v1beta1
kind:Deployment
metadata:
name:echoserverv2
namespace:echoserver
labels:
name:echoserverv2
spec:
template:
metadata:
labels:
name:echoserverv2
spec:
containers:
-image:mirrorgooglecontainers/echoserver:1.10
name:echoserverv2
ports:
-containerPort:8080
name:echoserverv2

更新訪問測試

測試了header 為v2:always v2:never v2:true這三個hearder值,可以看到當hearder為v2:always時,流量會全部流入v2,當v2:never時,流量會全部流入v1,當v2:true時,也就是非always/never,流量會按照配置的權重流入對應版本的服務

$[K8sSj]kubectlapply-fappv2.yml
ingress.extensions/echoserverv2configured
service/echoserverv2unchanged
deployment.extensions/echoserverv2unchanged
$[K8sSj]foriin`seq10`;docurl-s-H"v2:always"echo.chulinx.com|grepHostname;done
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
$[K8sSj]foriin`seq10`;docurl-s-H"v2:never"echo.chulinx.com|grepHostname;done
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
$[K8sSj]foriin`seq10`;docurl-s-H"v2:true"echo.chulinx.com|grepHostname;done
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn

自定義header-value

apiVersion:extensions/v1beta1
kind:Ingress
metadata:
annotations:
kubernetes.io/ingress.class:nginx
nginx.ingress.kubernetes.io/canary:"true"
nginx.ingress.kubernetes.io/canary-weight:"50"
nginx.ingress.kubernetes.io/canary-by-header:"v2"
nginx.ingress.kubernetes.io/canary-by-header-value:"true"
labels:
app:echoserverv2
name:echoserverv2
namespace:echoserver
spec:
rules:
-host:echo.chulinx.com
http:
paths:
-backend:
serviceName:echoserverv2
servicePort:8080
path:/
---
kind:Service
apiVersion:v1
metadata:
name:echoserverv2
namespace:echoserver
spec:
selector:
name:echoserverv2
type:ClusterIP
ports:
-name:echoserverv2
port:8080
targetPort:8080
---
apiVersion:extensions/v1beta1
kind:Deployment
metadata:
name:echoserverv2
namespace:echoserver
labels:
name:echoserverv2
spec:
template:
metadata:
labels:
name:echoserverv2
spec:
containers:
-image:mirrorgooglecontainers/echoserver:1.10
name:echoserverv2
ports:
-containerPort:8080
name:echoserverv2

更新測試

可以看到只有header為v2:never時,請求流量才會流入v2版本,其他值流量都會按照權重設置流入不同版本的服務

$[K8sSj]kubectlapply-fappv2.yml
ingress.extensions/echoserverv2configured
service/echoserverv2unchanged
deployment.extensions/echoserverv2unchanged

$[K8sSj]foriin`seq10`;docurl-s-H"v2:true"echo.chulinx.com|grepHostname;done
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn

$[K8sSj]foriin`seq10`;docurl-s-H"v2:always"echo.chulinx.com|grepHostname;done
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn

$[K8sSj]foriin`seq10`;docurl-s-H"v2:never"echo.chulinx.com|grepHostname;done
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs

訪問測試

可以看和header的訪問效果是一樣的,只不過cookie不能自定義value

$[K8sSj]kubectlapply-fappv2.yml
ingress.extensions/echoserverv2configured
service/echoserverv2unchanged
deployment.extensions/echoserverv2unchanged

$[K8sSj]foriin`seq10`;docurl-s--cookie"user_from_shanghai"echo.chulinx.com|grepHostname;done
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn

#zlx@zlxdeMacBook-Proin~/Desktop/unicom/k8syml/nginx-ingress-canary-deployment[1652]
$[K8sSj]foriin`seq10`;docurl-s--cookie"user_from_shanghai:always"echo.chulinx.com|grepHostname;done
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv1-657b966cb5-7grqs
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn

#zlx@zlxdeMacBook-Proin~/Desktop/unicom/k8syml/nginx-ingress-canary-deployment[1625]
$[K8sSj]foriin`seq10`;docurl-s--cookie"user_from_shanghai=always"echo.chulinx.com|grepHostname;done
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn
Hostname:echoserverv2-856bb5758-f9tqn

總結

灰度發布可以保證整體系統的穩定,在初始灰度的時候就可以對新版本進行測試、發現和調整問題,以保證其影響度,以上內容通過實例詳細介紹了Ingress-Nginx的實戰Canary Annotation,可以借助Ingress-Nginx輕松實現藍綠發布和金絲雀發布

其他

藍綠發布

藍綠部署中,一共有兩套系統:一套是正在提供服務系統,標記為“綠色”;另一套是準備發布的系統,標記為“藍色”。兩套系統都是功能完善的,并且正在運行的系統,只是系統版本和對外服務情況不同。

最初,沒有任何系統,沒有藍綠之分。

然后,第一套系統開發完成,直接上線,這個過程只有一個系統,也沒有藍綠之分。

后來,開發了新版本,要用新版本替換線上的舊版本,在線上的系統之外,搭建了一個使用新版本代碼的全新系統。這時候,一共有兩套系統在運行,正在對外提供服務的老系統是綠色系統,新部署的系統是藍色系統。

藍色系統不對外提供服務,用來做啥?

用來做發布前測試,測試過程中發現任何問題,可以直接在藍色系統上修改,不干擾用戶正在使用的系統。(注意,兩套系統沒有耦合的時候才能百分百保證不干擾)

藍色系統經過反復的測試、修改、驗證,確定達到上線標準之后,直接將用戶切換到藍色系統:

切換后的一段時間內,依舊是藍綠兩套系統并存,但是用戶訪問的已經是藍色系統。這段時間內觀察藍色系統(新系統)工作狀態,如果出現問題,直接切換回綠色系統。

當確信對外提供服務的藍色系統工作正常,不對外提供服務的綠色系統已經不再需要的時候,藍色系統正式成為對外提供服務系統,成為新的綠色系統。原先的綠色系統可以銷毀,將資源釋放出來,用于部署下一個藍色系統。

藍綠部署只是上線策略中的一種,它不是可以應對所有情況的萬能方案。藍綠部署能夠簡單快捷實施的前提假設是目標系統是非常內聚的,如果目標系統相當復雜,那么如何切換、兩套系統的數據是否需要以及如何同步等,都需要仔細考慮。

金絲雀發布

金絲雀發布(Canary)也是一種發布策略,和國內常說的灰度發布是同一類策略。藍綠部署是準備兩套系統,在兩套系統之間進行切換,金絲雀策略是只有一套系統,逐漸替換這套系統

譬如說,目標系統是一組無狀態的Web服務器,但是數量非常多,假設有一萬臺。

這時候,藍綠部署就不能用了,因為你不可能申請一萬臺服務器專門用來部署藍色系統(在藍綠部署的定義中,藍色的系統要能夠承接所有訪問)。

可以想到的一個方法是:

只準備幾臺服務器,在上面部署新版本的系統并測試驗證。測試通過之后,擔心出現意外,還不敢立即更新所有的服務器。先將線上的一萬臺服務器中的10臺更新為最新的系統,然后觀察驗證。確認沒有異常之后,再將剩余的所有服務器更新。

這個方法就是金絲雀發布。

實際操作中還可以做更多控制,譬如說,給最初更新的10臺服務器設置較低的權重、控制發送給這10臺服務器的請求數,然后逐漸提高權重、增加請求數。

這個控制叫做“流量切分”,既可以用于金絲雀發布,也可以用于后面的A/B測試。

藍綠部署和金絲雀發布是兩種發布策略,都不是萬能的。有時候兩者都可以使用,有時候只能用其中一種。

A/B測試

首先需要明確的是,A/B測試和藍綠部署以及金絲雀,完全是兩回事。

藍綠部署和金絲雀是發布策略,目標是確保新上線的系統穩定,關注的是新系統的BUG、隱患。

A/B測試是效果測試,同一時間有多個版本的服務對外服務,這些服務都是經過足夠測試,達到了上線標準的服務,有差異但是沒有新舊之分(它們上線時可能采用了藍綠部署的方式)。

A/B測試關注的是不同版本的服務的實際效果,譬如說轉化率、訂單情況等。

A/B測試時,線上同時運行多個版本的服務,這些服務通常會有一些體驗上的差異,譬如說頁面樣式、顏色、操作流程不同。相關人員通過分析各個版本服務的實際效果,選出效果最好的版本。

在A/B測試中,需要能夠控制流量的分配,譬如說,為A版本分配10%的流量,為B版本分配10%的流量,為C版本分配80%的流量。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網關
    +關注

    關注

    9

    文章

    5313

    瀏覽量

    52486
  • 控制
    +關注

    關注

    5

    文章

    1021

    瀏覽量

    123548
  • kubernetes
    +關注

    關注

    0

    文章

    240

    瀏覽量

    8974

原文標題:使用 Kubernetes Ingress-Nginx 實現藍綠、灰度發布!你會用了嗎?

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    HarmonyOS5云服務技術分享--Serverless抽獎模板部署

    通過endCallback實現中獎消息推送 ? ??安全加固?? 非免認證模式下建議: 添加請求頻率限制 使用HTTPS加密回調 用戶ID做哈希處理 五、常見問題QA ? 部署后訪問顯示空白
    發表于 05-22 20:25

    凱米斯科技BGA-406在線藍綠藻傳感器:守護水體生態的科技先鋒

    在當今全球水資源面臨嚴峻挑戰的時代,水體富營養化問題日益凸顯,藍綠藻水華頻繁爆發,對生態環境、飲用水安全以及水產養殖業造成了巨大威脅。為了有效監測和應對這一問題,凱米斯科技憑借其在水環境監測領域
    的頭像 發表于 05-21 10:26 ?119次閱讀
    凱米斯科技BGA-406在線<b class='flag-5'>藍綠</b>藻傳感器:守護水體生態的科技先鋒

    如何利用RAKsmart服務器實現高效多站點部署方案

    利用RAKsmart服務器實現高效多站點部署方案,需結合其網絡優勢、彈性資源管理和合理的架構設計。以下是分步實施方案,涵蓋網絡優化、資源分配、數據管理及監控等核心環節,主機推薦小編為您整理發布如何利用RAKsmart服務器實現
    的頭像 發表于 05-19 10:38 ?92次閱讀

    如何在RAKsmart服務器上實現企業AI模型部署

    AI模型的訓練與部署需要強大的算力支持、穩定的網絡環境和專業的技術管理。RAKsmart作為全球領先的服務器托管與云計算服務提供商,已成為企業部署AI模型的理想選擇。那么,如何在RAKsmart服務器上實現企業AI模型的
    的頭像 發表于 03-27 09:46 ?431次閱讀

    【幸狐Omni3576邊緣計算套件試用體驗】DeepSeek 部署及測試

    【幸狐 Omni3576 邊緣計算套件測評】DeepSeek 部署及測試 本文介紹了幸狐 Omni3576 邊緣計算套件實現 DeepSeek 部署及測試的相關流程,包括模型介紹、部署
    發表于 03-21 19:31

    MSP430部署

    MSP430可以部署簡單的模型嗎
    發表于 03-16 19:29

    K230D部署模型失敗的原因?

    重現步驟 1.按照教程實現MicroPython 版本部署流程,連接上并將文件放到對應位置后,剛運行就斷開和canmv ide的連接了(此時用的固件版本是圖中推薦的K230D_Zero...
    發表于 03-11 06:19

    yolov5轉onnx在cubeAI進行部署,部署失敗的原因?

    第一個我是轉onnx時 想把權重文件變小點 就用了半精度 --half,則說17版本不支持半精度 后面則是沒有縮小的單精度 但是顯示哪里溢出了···· 也不說是哪里、、。。。 到底能不能部署yolov5這種東西啊?? 也沒看見幾個部署在這上面..............
    發表于 03-07 11:38

    如何部署OpenVINO?工具套件應用程序?

    編寫代碼并測試 OpenVINO? 工具套件應用程序后,必須將應用程序安裝或部署到生產環境中的目標設備。 OpenVINO?部署管理器指南包含有關如何輕松使用部署管理器將應用程序打包并部署
    發表于 03-06 08:23

    是否可以使用OpenVINO?部署管理器在部署機器上運行Python應用程序?

    使用 OpenVINO?部署管理器創建運行時軟件包。 將運行時包轉移到部署機器中。 無法確定是否可以在部署機器上運行 Python 應用程序,而無需安裝OpenVINO? Toolkit 和 Python。
    發表于 03-05 08:16

    紹興數據局率先實現政務環境下的DeepSeek模型部署

    2月14日,紹興數據局率先基于華為昇騰服務器,成功部署上線DeepSeek全尺寸大模型,在全省率先實現政務環境下的DeepSeek模型部署。 春節期間,DeepSeek憑借卓越效能和精確推理爆火出圈
    的頭像 發表于 02-20 11:22 ?1376次閱讀
    紹興數據局率先<b class='flag-5'>實現</b>政務環境下的DeepSeek模型<b class='flag-5'>部署</b>

    基于 Docker 與 Jenkins 實現自動化部署

    前言 重塑自動化部署新高度,Docker 攜手 Jenkins,在華為云 Flexus X 云服務器的加持下,引領持續集成與部署的新紀元。Flexus X 以其卓越的性能、靈活的資源配置和高效的成本
    的頭像 發表于 01-07 17:25 ?462次閱讀
    基于 Docker 與 Jenkins <b class='flag-5'>實現</b>自動化<b class='flag-5'>部署</b>

    YOLOv6在LabVIEW中的推理部署(含源碼)

    YOLOv6 是美團視覺智能部研發的一款目標檢測框架,致力于工業應用。如何使用python進行該模型的部署,官網已經介紹的很清楚了,但是對于如何在LabVIEW中實現該模型的部署,筆者目前還沒有看到
    的頭像 發表于 11-06 16:07 ?827次閱讀
    YOLOv6在LabVIEW中的推理<b class='flag-5'>部署</b>(含源碼)

    k8s可以部署私有云嗎?私有云部署全攻略

    Kubernetes(簡稱K8S)可以部署私有云。Kubernetes是一個開源的容器編排引擎,能夠自動化容器的部署、擴展和管理,使得應用可以在各種環境中高效運行。通過使用Kubernetes,企業可以在自己的數據中心或私有云環境中搭建和管理容器化的應用,
    的頭像 發表于 10-25 09:32 ?426次閱讀

    涂鴉HEDV本地化部署方案,助你低成本實現定制化開發!

    ,如何低成本實現快速交付、敏捷迭代以及滿足本地合規部署的需求,成為了行業亟待解決的問題。面對這一挑戰,涂鴉智能精心推出了海德薇(HEDV)本地部署解決方案,一個輕量
    的頭像 發表于 07-06 08:15 ?1541次閱讀
    涂鴉HEDV本地化<b class='flag-5'>部署</b>方案,助你低成本<b class='flag-5'>實現</b>定制化開發!
    主站蜘蛛池模板: 免看一级a一片成人123 | 无内丝袜透明在线播放 | 伊人久久大香线蕉资源 | 三级不卡 | 午夜欧美在线 | aⅴ一区二区三区 | 99久久99久久久99精品齐 | 婷婷深爱 | 日本不卡一区视频 | 狠狠乱 | 啪啪啦资源站永久 | 福利视频欧美 | 狠狠夜夜| 天天色天天碰 | 国产精品午夜国产小视频 | 天天躁夜夜躁狠狠躁2021a | 天天添天天干 | 高清一级做a爱视频免费 | 一级片免费观看视频 | 精品福利 | 一级毛片黄色片 | 亚洲一卡2卡3卡4卡5卡乱码 | 国产黄色在线观看 | 一区二区不卡视频在线观看 | 在线视频你懂得 | 激情网址在线观看 | 一级片在线免费 | 国产激情在线观看 | 99成人国产精品视频 | 亚洲黄色官网 | 久久久噜噜噜久久久午夜 | 免费大片黄日本在线观看 | 欧美日韩国产成人高清视频 | 婷婷丁香色综合狠狠色 | 成人av.com| 欧美不卡视频在线 | 美女黄色一级毛片 | 1024你懂的国产精品 | 最新日本免费一区二区三区中文 | 三级视频网站在线观看 | 欧美一级视频精品观看 |