自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

譯者 | 李睿

審校 | 重樓

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

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

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

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

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

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

先決條件

  • Docker Desktop安裝容器化應(yīng)用程序。
  • 在安裝Minikube之后,將使用Minikube創(chuàng)建一個單節(jié)點集群。
  • 下載并安裝Node.js,因為示例應(yīng)用程序是Node.js應(yīng)用程序。
  • 注冊一個免費的SingleStore數(shù)據(jù)庫云帳戶,將應(yīng)用程序與數(shù)據(jù)庫集成。

教程

首先,注冊一個GitHub賬戶。

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

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

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

cd openai-quickstart-node

安裝項目需求和依賴項。

npm install

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

touch .env

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

OPENAI_API_KEY=<Add Your OpenAI API Key>

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

npm run dev

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

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

Dockerfile 
 touch Dockerfile

在其中添加以下Dockerfile說明。

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)建、標記并將其推送到DockerHub。

docker build -t <image name>

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

然后啟動容器。

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

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>

可以通過訪問DockerHub來確認圖像是否被推送。

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

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

其中一個文件包含部署說明,另一個文件包含服務(wù)公開說明。

首先,看看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)建一個單節(jié)點Kubernetes集群,并將使用它來部署應(yīng)用程序。

使用以下的命令啟動Minikube。

minikube start

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

保持Docker Desktop運行,并在其中啟用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ù)期運行。

kubectl get deployment

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

kubectl get service

以下看看是否可以公開應(yīng)用程序并訪問它。

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

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

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

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

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

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

需要一個免費的SingleStore云帳戶。

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

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

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

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

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

USE <database name>;

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

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

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

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

更新Kubernetes部署配置

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

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īng)用程序是否成功連接到SingleStore數(shù)據(jù)庫,并按預(yù)期執(zhí)行數(shù)據(jù)庫操作。

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

結(jié)論

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

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

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

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

2024-05-10 09:38:01

人工智能

2025-04-09 08:14:03

2023-11-13 11:35:09

人工智能

2021-02-20 09:57:02

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

2024-07-09 09:00:00

2025-02-28 08:31:26

2023-12-25 22:27:38

2023-03-23 16:55:32

人工智能Adobe

2012-05-29 11:02:23

ibmdw

2023-08-02 18:26:31

2023-05-05 14:02:59

人工智能聊天機器人

2023-08-08 18:08:17

2022-05-23 14:48:44

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

2023-05-09 10:16:42

人工智能python版本

2023-08-29 11:36:49

2023-09-15 10:01:04

2021-11-02 17:27:40

部署高可用Kubernetes

2023-04-18 10:47:32

2024-04-18 16:12:10

2024-02-04 09:41:51

人工智能
點贊
收藏

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