欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

K8S Helm應(yīng)用部署與依賴治理實戰(zhàn)教程

 更新時間:2025年07月30日 09:50:40   作者:小馬不敲代碼  
文章闡述了Kubernetes部署中的三大挑戰(zhàn)(環(huán)境配置漂移、版本回退失控、依賴治理低效),并介紹Helm通過聲明式模板、版本控制與依賴管理實現(xiàn)標(biāo)準(zhǔn)化配置、環(huán)境隔離和版本回滾,提升部署效率與可靠性,對K8S Helm應(yīng)用部署相關(guān)知識感興趣的朋友一起看看吧

一、引言

在 Kubernetes 應(yīng)用部署實踐中,開發(fā)者常面臨三大核心挑戰(zhàn):

1. 環(huán)境配置漂移

開發(fā)、測試、生產(chǎn)環(huán)境需維護(hù)多套高度相似的 Kubernetes 資源聲明文件(YAML)。同步修改時易出現(xiàn)人工遺漏與配置失準(zhǔn)。

2.版本回退失控

組件升級后因兼容性問題需快速回滾時,缺乏原子化的版本快照與變更追蹤機(jī)制。

3.依賴治理低效

應(yīng)用依賴的中間件(如 Redis/MySQL)需人工管理啟動順序與版本耦合,維護(hù)成本高且易引發(fā)環(huán)境不一致。

Helm作為 Kubernetes 的包管理工具,通過以下機(jī)制實現(xiàn)應(yīng)用部署的標(biāo)準(zhǔn)化治理:

• 聲明式模板與參數(shù)解耦

將 Kubernetes 資源抽象為可復(fù)用的 Chart 模板,通過 Values 文件實現(xiàn)多環(huán)境配置動態(tài)注入。

• 版本控制與發(fā)布追蹤

基于 Release 記錄每次部署的全量狀態(tài),支持原子化回滾至任意歷史版本。

• 依賴聲明與生命周期編排

通過子 Chart 聲明式定義組件依賴關(guān)系,實現(xiàn)版本鎖定與啟動順序自動編排。

二、Helm 的核心機(jī)制解析

2.1 Helm 架構(gòu)與核心要素

Helm 是 Kubernetes 的包管理器,其核心邏輯可以類比為:將一組 Kubernetes 資源模板(Chart)+ 一組參數(shù)配置(Values),組合生成標(biāo)準(zhǔn)的資源清單,然后交由 Kubernetes 創(chuàng)建或更新對象。

Helm 核心概念

Chart 項目結(jié)構(gòu)

一個典型的 Chart 項目結(jié)構(gòu)如下:

myapp-chart/            # 主chart,負(fù)責(zé)部署應(yīng)用
├── Chart.yaml          # 元數(shù)據(jù):名稱、版本、依賴聲明
├── values.yaml         # 默認(rèn)參數(shù)配置
├── charts/             # 子Chart的存放目錄(用于依賴管理)
└── templates/          # 資源模板目錄
    ├── deployment.yaml
    ├── service.yaml
    └── _helpers.tpl    # 模板輔助函數(shù)

Helm 工作流程

1.模板渲染:解析模板文件(Go Template 語法),將 values.yaml中的參數(shù)動態(tài)注入,生成標(biāo)準(zhǔn) manifest YAML 文件。

2.依賴處理:讀取 Chart.yaml中的依賴配置,遞歸拉取子 Chart,構(gòu)建完整依賴樹。

3.資源部署:通過 Kubernetes API 與集群通信,創(chuàng)建或更新資源,并記錄為一個新的 Release。

每一次 install或 upgrade操作,都會生成一條 Release 記錄,支持隨時回滾。

2.2 Helm 的標(biāo)準(zhǔn)化設(shè)計范式

1.模板抽象機(jī)制

Helm 使用 Go Template 模板語法將參數(shù)與資源分離,實現(xiàn)資源模板的復(fù)用和定制。

(1) 動態(tài)變量注入

通過 .Values.xxx引用配置項:

# templates/deployment.yaml
spec:
  replicas: {{ .Values.replicaCount }}
  image: {{ .Values.image.repository }}:{{ .Values.image.tag }}

(2) 條件渲染控制

支持按條件渲染資源(如是否啟用 Ingress):

{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: {{ .Chart.Name }}
{{- end }}

2.多環(huán)境配置策略

為了適配開發(fā)、測試、生產(chǎn)等不同環(huán)境,Helm 支持靈活的參數(shù)覆蓋機(jī)制。

(1) 配置文件疊加

可以使用多個 -f參數(shù)指定多個配置文件,實現(xiàn)層級覆蓋:

helm install myapp ./chart \
  -f values-base.yaml \
  -f values-prod.yaml

例如,values-base.yaml設(shè)置通用配置,values-prod.yaml只需覆蓋部分生產(chǎn)環(huán)境特有參數(shù)。
最終生效的配置 = values-base.yaml被values-prod.yaml覆蓋后的結(jié)果。
(2) 參數(shù)優(yōu)先級規(guī)則

Helm 的參數(shù)解析優(yōu)先級如下(從高到低):

命令行 --set > 指定的 values 文件 > 默認(rèn) values.yaml
可臨時通過命令行 --set key=value快速覆蓋任何配置項,適用于調(diào)試或自動化腳本場景。

3.Chart 版本管理體系

(1) Chart 版本號(version)

用于控制模板自身的版本,遵循語義化版本規(guī)范(SemVer):

# Chart.yaml
version: 2.1.5        # 模板版本(每次結(jié)構(gòu)變更需更新)
appVersion: "3.8.0"   # 被部署應(yīng)用的版本(非必需同步)

(2) Release 回滾機(jī)制

每次部署會生成新的 Release,可通過命令回退到任意版本:

helm history myapp -n prod    # 查看歷史記錄
helm rollback myapp 2         # 回滾到第 2 個版本

2.3 依賴治理機(jī)制解析

在實際項目中,很多應(yīng)用依賴數(shù)據(jù)庫、緩存等第三方組件。Helm 提供了完整的依賴管理方案。

1.子 Chart 管理

(1) 依賴聲明

在主 Chart 的 Chart.yaml中聲明依賴:

# Chart.yaml
dependencies:
  - name: mysql
    version: "9.8.0"
    repository: "https://charts.bitnami.com/bitnami"
    condition: mysql.enabled # 可通過配置控制啟動

(2) 下載依賴

使用如下命令更新并下載 mysql 子 Chart 到 charts/目錄下:

helm dependency update ./chart

2.版本約束策略

3.命名沖突與依賴隔離

如果多個子 Chart 使用了相同的名稱,可以使用 alias重命名避免沖突:

dependencies:
  - name: postgresql
    alias: user-db
    version: "11.6.12"

此時在模板中可通過 .Values.user-db引用該組件的參數(shù)配置。

三 、Helm 多環(huán)境部署管理實戰(zhàn)

3.1 環(huán)境準(zhǔn)備

1.安裝必要工具

Mac/Linux 用戶

# 安裝 Docker 并啟動服務(wù)(容器運(yùn)行時基礎(chǔ))
brew install --cask docker
open /Applications/Docker.app  # macOS 需手動啟動 Docker Desktop
# 安裝 Kubernetes 工具鏈(僅 Helm 相關(guān))
brew install kubectl kind helm
# 驗證核心工具版本
echo "?? 關(guān)鍵工具版本:"
docker --version           # 預(yù)期輸出: Docker version 24.x+
kubectl version --client   # 預(yù)期輸出: Client Version: v1.28.x
helm version --short       # 預(yù)期輸出: v3.12.x

2.創(chuàng)建本地 Kubernetes 集群

# 使用 Kind 快速創(chuàng)建單節(jié)點集群(輕量級)
kind create cluster --name helm-lab --image=kindest/node:v1.28.0
# 驗證集群基礎(chǔ)狀態(tài)
kubectl cluster-info

3.配置實驗命名空間

# 創(chuàng)建隔離環(huán)境(避免污染 default 命名空間)
kubectl create ns helm-demo
# 設(shè)置默認(rèn)操作空間(后續(xù)命令自動作用于此空間)
kubectl config set-context --current --namespace=helm-demo

4.一鍵環(huán)境驗證

echo " 環(huán)境健康檢查:"
kubectl get nodes          # 預(yù)期輸出 STATUS=Ready
helm list -A               # 確認(rèn)無殘留 Helm Release
docker ps                  # 查看 Kind 容器是否運(yùn)行

關(guān)鍵工具說明

3.2 場景與目標(biāo)

使用 Helm 實現(xiàn)典型微服務(wù)系統(tǒng)的多環(huán)境部署。該系統(tǒng)包含以下服務(wù)及其依賴:

• frontend:前端服務(wù),負(fù)責(zé)與用戶交互,獨(dú)立部署

• backend:后端服務(wù),負(fù)責(zé)處理業(yè)務(wù)邏輯,依賴 Redis 緩存

• Redis:緩存服務(wù),作為子 Chart 引入

通過 Helm 實現(xiàn)以下目標(biāo):

• 配置標(biāo)準(zhǔn)化:通過父 Chart 統(tǒng)一管理 frontend和 backend的部署模板

• 環(huán)境隔離:使用 values-dev.yaml和 values-prod.yaml管理環(huán)境差異

• 依賴治理:通過子 Chart 管理 Redis 依賴

• 版本控制:支持 Helm 版本回滾

3.3 項目目錄結(jié)構(gòu)

如下為典型 Helm 多環(huán)境部署結(jié)構(gòu)圖

myapp/
├── Chart.yaml          # 父 Chart 元數(shù)據(jù)
├── values.yaml         # 全局默認(rèn)配置
├── values-dev.yaml     # 開發(fā)環(huán)境覆蓋配置
├── values-prod.yaml    # 生產(chǎn)環(huán)境覆蓋配置
├── charts/             # 子 Chart 目錄(存放 Redis 依賴)
└── templates/          # 核心模板
    ├── frontend.yaml   # 前端服務(wù)模板
    ├── backend.yaml    # 后端服務(wù)模板
    └── _helpers.tpl    # 模板函數(shù)庫

主要文件說明:

• Chart.yaml:Helm Chart 元數(shù)據(jù),定義應(yīng)用的基本信息。

• values.yaml:通用配置文件,提供默認(rèn)值。

• values-dev.yaml:開發(fā)環(huán)境配置,覆蓋默認(rèn)值。

• values-prod.yaml:生產(chǎn)環(huán)境配置,覆蓋默認(rèn)值。

• charts/:存放子 Chart(如 Redis)的目錄。

• templates/:存放 Kubernetes 資源模板,定義具體的服務(wù)部署配置。

3.4 實戰(zhàn)步驟

步驟 1:創(chuàng)建 Helm Chart

# 初始化 Chart 結(jié)構(gòu)
helm create myapp
rm -rf myapp/templates/*  # 清空默認(rèn)模板(從頭開始)

步驟 2:定義 Chart 元數(shù)據(jù)

# myapp/Chart.yaml
apiVersion: v2          # Helm Chart API 版本(v2 是當(dāng)前穩(wěn)定版)
name: myapp             # Chart 名稱(必須全小寫,無空格)
description: 多環(huán)境Web應(yīng)用示例
version: 1.0.0          # Chart 版本(必須遵循 SemVer 規(guī)范)
appVersion: "1.0"       # 應(yīng)用本身的版本(字符串類型)
# 定義依賴組件(可包含多個子Chart)
dependencies:
  - name: redis          # 官方Redis Chart名稱
    version: "17.0.0"    # 嚴(yán)格指定版本號(避免版本漂移)
    repository: "https://charts.bitnami.com/bitnami"  # 官方倉庫地址
    condition: redis.enabled  # 是否啟用此依賴(由values.yaml中的redis.enabled控制)
依賴操作演示
# 執(zhí)行后會在 charts/ 目錄生成 redis-17.0.0.tgz
helm dependency update myapp
# 查看目錄結(jié)構(gòu)
tree myapp/charts/
myapp/charts/
└── redis-17.0.0.tgz  # 下載的依賴包(二進(jìn)制格式)

步驟 3:編寫模板文件
前端服務(wù)模板

# myapp/templates/frontend.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Chart.Name }}-frontend
  labels:
    app: frontend
spec:
  replicas: {{ .Values.frontend.replicas }}
  selector:
    matchLabels:
      app: frontend
  template:
    metadata:
      labels:
        app: frontend
    spec:
      containers:
      - name: frontend
        image: "{{ .Values.frontend.image.repository }}:{{ .Values.frontend.image.tag }}"
        ports:
        - containerPort: 80
        env:
        - name: REDIS_HOST
          value: {{ .Chart.Name }}-redis-master  # 引用 Redis 服務(wù)名稱
---
apiVersion: v1
kind: Service
metadata:
  name: {{ .Chart.Name }}-frontend
spec:
  type: {{ .Values.frontend.service.type }}
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: frontend

后端服務(wù)模板

# myapp/templates/backend.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Chart.Name }}-backend
spec:
  replicas: {{ .Values.backend.replicas }}
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0 
  template:
    spec:
      containers:
      - name: backend
        image: "{{ .Values.backend.image }}"
        resources:
          requests:
            cpu: {{ .Values.backend.resources.requests.cpu }}
---
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: {{ .Chart.Name }}-backend-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: {{ .Chart.Name }}-backend
  minReplicas: {{ .Values.backend.hpa.minReplicas }}
  maxReplicas: {{ .Values.backend.hpa.maxReplicas }}
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: {{ .Values.backend.hpa.cpuUtilization }}

步驟 4:配置參數(shù)文件
默認(rèn)參數(shù)

# myapp/values.yaml
frontend:
  replicas: 2
  image:
    repository: nginx
    tag: stable
  service:
    type: ClusterIP
backend:
  image: myapp/backend:v1
  replicas: 3
  resources:
    requests:
      cpu: 100m
  hpa:
    minReplicas: 2
    maxReplicas: 5
    cpuUtilization: 50
redis:
  enabled: true

開發(fā)環(huán)境覆蓋

# myapp/values-dev.yaml
frontend:
  replicas: 1
  service:
    type: NodePort  # 開發(fā)環(huán)境暴露 NodePort
backend:
  hpa:
    cpuUtilization: 80  # 開發(fā)環(huán)境提高擴(kuò)縮容閾值
生產(chǎn)環(huán)境覆蓋
# myapp/values-prod.yaml
frontend:
  replicas: 3
  image:
    tag: latest  # 生產(chǎn)使用最新鏡像
backend:
  replicas: 5
  resources:
    requests:
      cpu: 500m  # 生產(chǎn)環(huán)境增加資源

步驟 5:安裝部署開發(fā)環(huán)境

helm install myapp ./myapp -n helm-demo \
  -f myapp/values.yaml \
  -f myapp/values-dev.yaml \
  --set backend.image=myapp/backend:dev-latest  # 命令行覆蓋鏡像標(biāo)簽

步驟 6:驗證部署
1.驗證 Helm Release 狀態(tài)

helm list -n helm-demo
NAME    NAMESPACE   REVISION    UPDATED                                 STATUS      CHART         APP VERSION
myapp   helm-demo    1           2023-08-20 14:30:15.123456 +0800 CST    deployed    myapp-1.0.0   1.0

關(guān)鍵點驗證

• STATUS = deployed:Release 成功部署

• CHART = myapp-1.0.0:Chart 版本與定義一致

2.驗證 Kubernetes 資源生成

kubectl get all -n helm-demo
NAME                            READY   STATUS    RESTARTS   AGE
pod/myapp-frontend-7c5d8f8bdf   1/1     Running   0          2m
pod/myapp-backend-5d7d6c8b5f    1/1     Running   0          2m
NAME                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
service/myapp-frontend  ClusterIP   10.96.123.45    <none>        80/TCP    2m
NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/frontend   1/1     1            1           2m
deployment.apps/backend    1/1     1            1           2m
NAME                                                REFERENCE             TARGETS    MINPODS   MAXPODS   REPLICAS   AGE
horizontalpodautoscaler.autoscaling/myapp-backend-hpa   Deployment/backend   0%/50%     2         5         1          2m

關(guān)鍵點驗證

• Pod:所有應(yīng)用容器處于 Running 狀態(tài)

• Service:前端服務(wù)類型為 NodePort(來自 values-dev.yaml覆蓋)。

• HPA:CPU 利用率閾值為 80%(來自dev 覆蓋)。

3.驗證參數(shù)注入效果

檢查前端副本數(shù)(來自 values-dev.yaml覆蓋)
kubectl get deployment myapp-frontend -n helm-demo -o=jsonpath='{.spec.replicas}'
1  # 開發(fā)環(huán)境覆蓋為 1 個副本(默認(rèn)為 2)
檢查后端鏡像標(biāo)簽(命令行動態(tài)覆蓋)
kubectl get deployment myapp-backend -n helm-demo -o=jsonpath='{.spec.template.spec.containers[0].image}'
myapp/backend:dev-latest  # 來自 --set 參數(shù)覆蓋

4.驗證依賴管理(子 Chart 狀態(tài))

檢查 Redis 子 Chart 啟用情況
helm get values myapp -n helm-demo | grep redis.enabled
redis.enabled: true
查看 Redis 服務(wù)狀態(tài)
kubectl get svc -n helm-demo | grep redis
myapp-redis-master   ClusterIP   10.96.234.56   <none>        6379/TCP   2m

關(guān)鍵點驗證

• Redis 服務(wù)名稱包含 myapp前綴(Chart 名稱隔離)

• 端口 6379正常開放(來自子 Chart 默認(rèn)配置)

至此,我們已通過 Helm 實現(xiàn)了一個典型微服務(wù)系統(tǒng)的多環(huán)境部署流程。

注:_helpers.tpl 函數(shù)模版庫 將在下篇講解。

3.5 Helm 實踐小結(jié)

關(guān)鍵經(jīng)驗:

• 配置隔離:使用 values-dev.yaml/ values-prod.yaml實現(xiàn)環(huán)境差異。

• 依賴管理:子 Chart 引入 Redis,實現(xiàn)服務(wù)與數(shù)據(jù)庫的一體化部署。

• 模板復(fù)用:借助 _helpers.tpl統(tǒng)一標(biāo)簽與命名,提升可維護(hù)性。

• 版本控制:每次部署生成獨(dú)立 Release,可回滾、追蹤,保障發(fā)布安全。

注意事項:

• 避免配置文件冗余,保持差異項聚焦。

• 固定依賴版本,防止不兼容風(fēng)險。

• 使用 --namespace保持資源隔離。

• 配置文件建議納入 Git,支持多人協(xié)作與變更追蹤。

四、總結(jié)

4.1 核心重點

Helm 在 Kubernetes 應(yīng)用管理中的價值:

• 標(biāo)準(zhǔn)化封裝:通過 Chart 實現(xiàn)跨環(huán)境部署的統(tǒng)一打包。

• 靈活配置管理:支持多套 Values 實現(xiàn)環(huán)境差異與個性化控制。

• 依賴與復(fù)用機(jī)制:通過子 Chart 管理依賴組件,提升集成效率。

• 版本控制體系:支持版本回滾、差異對比與發(fā)布?xì)v史追蹤,增強(qiáng)發(fā)布安全性。

到此這篇關(guān)于K8S Helm 入門與實戰(zhàn) - 應(yīng)用部署與依賴治理的文章就介紹到這了,更多相關(guān)K8S Helm應(yīng)用部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • K8S中Pod重啟策略及重啟可能原因詳細(xì)講解

    K8S中Pod重啟策略及重啟可能原因詳細(xì)講解

    在k8s集群中當(dāng)某個pod資源需要重啟時,我們只會對其進(jìn)行刪除,由其pod控制器進(jìn)行重新構(gòu)建,下面這篇文章主要給大家介紹了關(guān)于K8S中Pod重啟策略及重啟可能原因的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • K8S如何利用Prometheus監(jiān)控pod的實時數(shù)據(jù)指標(biāo)

    K8S如何利用Prometheus監(jiān)控pod的實時數(shù)據(jù)指標(biāo)

    這篇文章主要給大家介紹了關(guān)于K8S如何利用Prometheus監(jiān)控pod的實時數(shù)據(jù)指標(biāo)的相關(guān)資料,Prometheus是一個開源的服務(wù)監(jiān)控系統(tǒng)和時序數(shù)據(jù)庫,其提供了通用的數(shù)據(jù)模型和快捷數(shù)據(jù)采集、存儲和查詢接口,需要的朋友可以參考下
    2024-01-01
  • Kubernetes  Dashboard 配置用戶名密碼方式登錄操作流程

    Kubernetes  Dashboard 配置用戶名密碼方式登錄操作流程

    為了K8s集群安全,默認(rèn)情況下Dashboard以Token的形式登錄的,那如果我們想以用戶名/密碼的方式登錄該怎么操作呢?其實只需要我們創(chuàng)建用戶并進(jìn)行 ClusterRoleBinding綁定即可,下面給大家分享Kubernetes  Dashboard 配置用戶名密碼方式登錄操作流程,感興趣的朋友一起看看吧
    2024-06-06
  • Kubernetes訪問控制之鑒權(quán)方法詳解

    Kubernetes訪問控制之鑒權(quán)方法詳解

    這篇文章主要為大家介紹了Kubernetes訪問控制之鑒權(quán)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • kubernetes?Volume存儲卷configMap學(xué)習(xí)筆記

    kubernetes?Volume存儲卷configMap學(xué)習(xí)筆記

    這篇文章主要為大家介紹了kubernetes?Volume存儲卷configMap學(xué)習(xí)筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 云原生Kubernetes初始化容器Init使用教程

    云原生Kubernetes初始化容器Init使用教程

    這篇文章主要為大家介紹了云原生Kubernetes初始化容器Init使用教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • 帶你學(xué)會k8s?更高級的對象Deployment

    帶你學(xué)會k8s?更高級的對象Deployment

    這篇文章主要為大家介紹了k8s還有更高級的"對象"Deployment使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • k8s之容器內(nèi)存與JVM內(nèi)存解讀

    k8s之容器內(nèi)存與JVM內(nèi)存解讀

    這篇文章主要介紹了k8s之容器內(nèi)存與JVM內(nèi)存,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-07-07
  • k8s如何使用NFS作為StorageClass提供動態(tài)存儲

    k8s如何使用NFS作為StorageClass提供動態(tài)存儲

    本文主要介紹了k8s中的StorageClass,包括其定義、引入的原因、實現(xiàn)方式、定義方法以及回收策略對數(shù)據(jù)的影響等,首先,StorageClass是在K8s集群中創(chuàng)建用于動態(tài)PV的管理,可以鏈接至不同的后端存儲,對存儲的請求可以指向StorageClass
    2024-09-09
  • 2022最新青龍面板對接機(jī)器人的詳細(xì)過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機(jī)器人功能)

    2022最新青龍面板對接機(jī)器人的詳細(xì)過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機(jī)器人功能)

    這篇文章主要介紹了2022最新青龍面板對接機(jī)器人的詳細(xì)過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機(jī)器人功能),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論