成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Kubernetes上部署生成式人工智能應(yīng)用程序的分步指南

譯文
人工智能
本指南提供了在Kuberneste上部署生成式人工智能應(yīng)用程序以實(shí)現(xiàn)高可用性的一種全面而詳細(xì)的方法。

譯者 | 李睿

審校 | 重樓

在當(dāng)今快節(jié)奏的技術(shù)和市場(chǎng)環(huán)境中,高效地部署人工智能(AI)/機(jī)器學(xué)習(xí)(ML)應(yīng)用程序至關(guān)重要。Kubernetes是一個(gè)強(qiáng)大的開(kāi)源平臺(tái),已經(jīng)成為管理和擴(kuò)展容器化應(yīng)用程序的領(lǐng)先解決方案,確保它們?cè)诟鞣N環(huán)境中無(wú)縫運(yùn)行。

指南中,將引導(dǎo)開(kāi)發(fā)人員逐步完成在Kubernetes上部署任何AI/ML應(yīng)用程序的過(guò)程。從容器化應(yīng)用程序到設(shè)置Kubernetes集群,再到部署AI/ML應(yīng)用程序,涵蓋了所有內(nèi)容。

為什么在Kubernetes上部署生成式人工智能應(yīng)用程序?

在Kubernetes上部署AI/ML應(yīng)用程序?yàn)楣芾韽?fù)雜的AI/ML工作負(fù)載提供了一個(gè)強(qiáng)大的解決方案。其主要優(yōu)點(diǎn)之一是可擴(kuò)展性。Kubernetes可以自動(dòng)擴(kuò)展基礎(chǔ)設(shè)施,有效地適應(yīng)不同的工作負(fù)載,并確保根據(jù)需求有效地分配資源。這種自動(dòng)擴(kuò)展功能對(duì)于處理AI/ML任務(wù)中涉及的大型計(jì)算至關(guān)重要。

此外,Kubernetes支持多云和混合云環(huán)境,提供靈活性并避免供應(yīng)商鎖定。它為開(kāi)發(fā)、測(cè)試和部署提供了一致和統(tǒng)一的運(yùn)行環(huán)境,增強(qiáng)了數(shù)據(jù)科學(xué)家和工程師之間的協(xié)作。

Kubernetes還確保了高可用性和容錯(cuò)性,自動(dòng)替換或重新調(diào)度失敗的容器,確保了AI/ML應(yīng)用程序的可靠性和健壯性。此外,它簡(jiǎn)化了許多操作,包括更新和回滾,允許團(tuán)隊(duì)更多地專注于構(gòu)建AI/ML模型,而不是管理基礎(chǔ)設(shè)施。

先決條件

  • Docker Desktop安裝容器化應(yīng)用程序。
  • 在安裝Minikube之后,將使用Minikube創(chuàng)建一個(gè)單節(jié)點(diǎn)集群。
  • 下載并安裝Node.js,因?yàn)槭纠龖?yīng)用程序是Node.js應(yīng)用程序。
  • 注冊(cè)一個(gè)免費(fèi)的SingleStore數(shù)據(jù)庫(kù)云帳戶,將應(yīng)用程序與數(shù)據(jù)庫(kù)集成。

教程

首先注冊(cè)一個(gè)GitHub賬戶。

然后將已經(jīng)可用的openai-quickstart-node存儲(chǔ)庫(kù)克隆到本地。

git clone https://github.com/pavanbelagatti/openai-quickstart-node.git

再導(dǎo)航到項(xiàng)目目錄。

cd openai-quickstart-node

安裝項(xiàng)目需求和依賴項(xiàng)。

npm install

創(chuàng)建一個(gè).env文件并添加OpenAI API密鑰。

touch .env

在.env文件中,將OpenAI Key添加為環(huán)境變量,如下所示

OPENAI_API_KEY=<Add Your OpenAI API Key>

使用以下命令運(yùn)行應(yīng)用程序。

npm run dev

可以在Local 3000上看到應(yīng)用程序。

為應(yīng)用程序編寫一個(gè)Dockerfile將其容器化

Dockerfile 
 touch Dockerfile

在其中添加以下Dockerfile說(shuō)明。

Dockerfile 
 # Use the official Node.js image as a parent image
 FROM node:14-alpine as build

 # Set the working directory in the Docker container
 WORKDIR /app

 # Copy the package.json and package-lock.json files into the container at /app
 COPY package*.json ./

 # Install the dependencies
 RUN npm install

 # Copy the local files into the container at /app
 COPY . .

 # Build the application
 RUN npm run build

 # Start from a smaller image to reduce image size
 FROM node:14-alpine as run

 # Set the working directory in the Docker container
 WORKDIR /app


 # Copy over dependencies
 COPY --from=build /app/node_modules ./node_modules
 COPY --from=build /app/.next ./.next
 COPY --from=build /app/public ./public
 COPY --from=build /app/package*.json ./

 # Expose port 3000 for the app to be accessible externally
 EXPOSE 3000

 # Command to run the application
 CMD ["npm", "start"]

構(gòu)建、標(biāo)記并將其推送到DockerHub。

docker build -t <image name>

注:將圖像命名為generativeai-node-app

然后啟動(dòng)容器。

已經(jīng)建立圖像!現(xiàn)在是使用以下命令啟動(dòng)帶有指定端口的Docker容器時(shí)候了:

docker run -p 3002:3002 generativeai-node-app

然后用DockerHub憑證重新構(gòu)建它。

docker build -t <your dockerhub username>/<image name>

將圖像推送到DockerHub。

docker push <your dockerhub username>/<image name>

可以通過(guò)訪問(wèn)DockerHub來(lái)確認(rèn)圖像是否被推送。

在Kubernetes上部署和公開(kāi)應(yīng)用程序

為了部署和公開(kāi)應(yīng)用程序,需要兩個(gè)yaml文件:deployment.yamlservice.yaml

其中一個(gè)文件包含部署說(shuō)明,另一個(gè)文件包含服務(wù)公開(kāi)說(shuō)明。

首先看看deployment.yaml文件。

YAML 
 apiVersion: apps/v1
 kind: Deployment
 metadata:
 name: genai-app
 spec:
 replicas: 2
 selector:
 matchLabels:
 app: genai-app
 template:
 metadata:
 labels:
 app: genai-app
 spec:
 containers:
 - name: genai-app
 image: pavansa/generativeai-node-app:latest
 ports:
 - containerPort: 3000

以下是service.yaml文件

YAML 
 apiVersion: v1
 kind: Service
 metadata:
 name: genai-app-service
 spec:
 selector:
 app: genai-app
 ports:
 - protocol: TCP
 port: 80
 targetPort: 3000
 type: LoadBalancer

以下使用Minikube創(chuàng)建一個(gè)單節(jié)點(diǎn)Kubernetes集群,并將使用它來(lái)部署應(yīng)用程序。

使用以下的命令啟動(dòng)Minikube。

minikube start

這是應(yīng)該看到的輸出。

保持Docker Desktop運(yùn)行,并在其中啟用Kubernetes。以下圖片僅供參考。

使用下面的命令應(yīng)用部署文件。

kubectl apply -f deployment.yaml

類似地,應(yīng)用service yaml文件。

kubectl apply -f service.yaml

首先使用下面的命令檢查pod的狀態(tài)。

kubectl get pods

應(yīng)該看到所需的輸出如下圖所示

以下檢查一下應(yīng)用程序的部署狀態(tài),看看所需的pod是否按預(yù)期運(yùn)行。

kubectl get deployment

檢查一下應(yīng)用程序的服務(wù)狀態(tài)。

kubectl get service

以下看看是否可以公開(kāi)應(yīng)用程序并訪問(wèn)它。

minikube service <add your application service name> --url

應(yīng)該看到下面的輸出,并且能夠訪問(wèn)應(yīng)用程序。

可以看到URL鏈接,以訪問(wèn)應(yīng)用程序。

現(xiàn)在將應(yīng)用程序容器化,使用Kubernetes進(jìn)行部署和公開(kāi)。

為應(yīng)用程序集成數(shù)據(jù)庫(kù)

在Kubernetes上成功部署和公開(kāi)AI/ML應(yīng)用程序之后,可能需要一個(gè)健壯且可擴(kuò)展的數(shù)據(jù)庫(kù)來(lái)處理應(yīng)用程序數(shù)據(jù)。SingleStore是一個(gè)高性能、可擴(kuò)展的SQL數(shù)據(jù)庫(kù),非常適合AI/ML應(yīng)用程序。在本節(jié)將指導(dǎo)完成將SingleStore數(shù)據(jù)庫(kù)集成到kubernetes部署的應(yīng)用程序中的過(guò)程。

需要一個(gè)免費(fèi)的SingleStore云帳戶。

創(chuàng)建一個(gè)工作區(qū),然后創(chuàng)建適合應(yīng)用程序的數(shù)據(jù)庫(kù)和表。

轉(zhuǎn)到SQL編輯器,如下圖所示:

使用下面的SQL語(yǔ)句創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)

-- create a database
CREATE DATABASE <database name>;

接下來(lái),使用USE命令切換到新數(shù)據(jù)庫(kù)。

USE <database name>;

然后,用所需的模式在新數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)表。

-- create a table
CREATE TABLE <table name> (
);

可以在SQL編輯器中粘貼這些SQL命令,突出顯示它們,然后單擊Run按鈕。

在這個(gè)教程中,可以找到創(chuàng)建數(shù)據(jù)庫(kù)、表和在表中提供信息的整個(gè)過(guò)程。

更新Kubernetes部署配置

如果SingleStore數(shù)據(jù)庫(kù)運(yùn)行在Kubernetes集群之外,可以更新應(yīng)用程序的Kubernetes部署配置,以允許連接到SingleStore數(shù)據(jù)庫(kù)。

YAML 
 apiVersion: apps/v1

kind: Deployment
 ...
 spec:
 containers:
 - name: genai-app
 ...
 env:
 - name: DB_HOST
 value: "<Your SingleStore DB Host>"
 - name: DB_PORT
 value: "<Your SingleStore DB Port>"
 ...

重新部署應(yīng)用程序

應(yīng)用更新后的Kubernetes部署配置,重新部署與SingleStore集成的應(yīng)用程序。

Kubectl apply -f deploy .yaml

驗(yàn)證集成

在重新部署之后,需要驗(yàn)證應(yīng)用程序是否成功連接到SingleStore數(shù)據(jù)庫(kù),并按預(yù)期執(zhí)行數(shù)據(jù)庫(kù)操作。

通過(guò)執(zhí)行這些步驟,已經(jīng)成功地將SingleStore數(shù)據(jù)庫(kù)集成到Kubernetes部署的AI/ML應(yīng)用程序中,為管理應(yīng)用程序數(shù)據(jù)提供了一個(gè)健壯且可擴(kuò)展的解決方案。

結(jié)論

現(xiàn)在成功完成了在Kubernetes上部署AI/ML應(yīng)用程序的綜合步驟這一指南引導(dǎo)開(kāi)發(fā)人員完成了從容器化應(yīng)用程序到在Kubernetes上部署和公開(kāi)應(yīng)用程序的每個(gè)重要階段。

當(dāng)繼續(xù)探索和增強(qiáng)AI/ML部署時(shí),需要考慮集成像SingleStore這樣的高性能數(shù)據(jù)庫(kù)來(lái)無(wú)縫地管理應(yīng)用程序數(shù)據(jù)。SingleStore提供可擴(kuò)展性、速度和效率,確保AI/ML應(yīng)用程序在強(qiáng)大的數(shù)據(jù)庫(kù)后端以最佳方式運(yùn)行。

原文標(biāo)題:Deploying GenAI Applications on Kubernetes: A Step-By-Step Guide,作者:Pavan Belagatti

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2024-05-10 09:38:01

人工智能

2025-04-09 08:14:03

2025-05-06 08:09:02

2021-02-20 09:57:02

人工智能移動(dòng)應(yīng)用

2023-11-13 11:35:09

人工智能

2025-06-27 03:00:00

2024-07-09 09:00:00

2025-02-28 08:31:26

2023-12-25 22:27:38

2023-05-05 14:02:59

人工智能聊天機(jī)器人

2023-03-23 16:55:32

人工智能Adobe

2023-08-08 18:08:17

2023-08-02 18:26:31

2012-05-29 11:02:23

ibmdw

2022-05-23 14:48:44

人工智能機(jī)器學(xué)習(xí)科技

2023-08-29 11:36:49

2023-04-18 10:47:32

2023-09-15 10:01:04

2023-05-09 10:16:42

人工智能python版本

2024-04-18 16:12:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩综合精品 | av在线天堂 | 99久久国产免费 | 西西裸体做爰视频 | 久久99精品视频 | 久久精品亚洲欧美日韩精品中文字幕 | 国产一区二区激情视频 | 欧美黑人又粗大 | av中文在线 | 国产一区在线免费 | 欧美三级在线 | 免费看一级毛片 | 天天干狠狠干 | 精品国产乱码久久久久久图片 | 91麻豆精品国产91久久久更新资源速度超快 | 久色视频在线观看 | 精品91久久久 | 精品国产乱码久久久久久影片 | 99免费在线视频 | 伊人导航| 91久久国产精品 | 成人a免费 | 久久久久久久91 | 国产视频一区二区 | 日韩欧美第一页 | 国产一区二区三区欧美 | 一区二区三区视频在线观看 | 亚洲天堂av在线 | 亚洲视频一区在线观看 | 99久久精品一区二区毛片吞精 | 国产精品入口麻豆www | 性色av网站 | 一区二区视频 | 久久精品国产99国产精品 | 国产精品久久久久久久久久久久冷 | 日日夜夜精品视频 | 精品综合久久久 | 国产精品片aa在线观看 | 免费九九视频 | 天天人人精品 | 伊人网在线看 |