mirror of
https://github.com/iflytek/skillhub.git
synced 2026-10-02 02:13:52 +00:00
fix: 使用固定镜像地址替代变量,添加变量配置指南
This commit is contained in:
parent
ced9ccc946
commit
048b137ee8
2 changed files with 254 additions and 1 deletions
|
|
@ -18,7 +18,7 @@ spec:
|
|||
spec:
|
||||
containers:
|
||||
- name: scanner
|
||||
image: ${IMAGE}
|
||||
image: jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:latest
|
||||
imagePullPolicy: Always
|
||||
ports:
|
||||
- name: http
|
||||
|
|
|
|||
253
云效变量配置指南.md
Normal file
253
云效变量配置指南.md
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
# 云效 KubectlApply 变量配置指南
|
||||
|
||||
## 🔍 问题分析
|
||||
|
||||
错误信息:
|
||||
```
|
||||
[ERROR] deployment.yaml文件中存在未定义的变量
|
||||
image: ${IMAGE}
|
||||
```
|
||||
|
||||
**原因:** deployment.yaml 中使用了 `${IMAGE}` 变量,但云效没有配置该变量的值。
|
||||
|
||||
---
|
||||
|
||||
## ✅ 解决方案
|
||||
|
||||
### 方案一:在云效中配置变量(最佳实践)
|
||||
|
||||
#### 方法 A:使用图形界面配置
|
||||
|
||||
1. **进入云效 Flow 流水线**
|
||||
2. **点击"编辑"**
|
||||
3. **找到 KubectlApply 步骤**
|
||||
4. **找到以下配置项之一:**
|
||||
- "变量替换"
|
||||
- "环境变量"
|
||||
- "Variables"
|
||||
- "参数设置"
|
||||
|
||||
5. **添加变量:**
|
||||
|
||||
**格式 1:键值对形式**
|
||||
```
|
||||
变量名: IMAGE
|
||||
变量值: jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:${BUILD_NUMBER}
|
||||
```
|
||||
|
||||
**格式 2:YAML 形式**
|
||||
```yaml
|
||||
IMAGE: jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:${BUILD_NUMBER}
|
||||
```
|
||||
|
||||
**格式 3:多行文本形式**
|
||||
```
|
||||
IMAGE=jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:${BUILD_NUMBER}
|
||||
```
|
||||
|
||||
6. **保存并运行**
|
||||
|
||||
---
|
||||
|
||||
#### 方法 B:使用 YAML 配置(如果支持)
|
||||
|
||||
在流水线配置文件中:
|
||||
|
||||
```yaml
|
||||
stages:
|
||||
- name: 部署
|
||||
jobs:
|
||||
- job:
|
||||
name: 部署到 K8s
|
||||
steps:
|
||||
- step: kubectl-apply@1
|
||||
name: 应用 Kubernetes 清单
|
||||
with:
|
||||
kubectl_version: v1.27.9
|
||||
cluster_type: ack
|
||||
namespace: default
|
||||
path_to_yaml: manifests
|
||||
insecure_skip_tls_verify: true
|
||||
# 关键配置:变量替换
|
||||
variables: |
|
||||
IMAGE=jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:${BUILD_NUMBER}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 方案二:使用具体镜像地址(简单但不灵活)
|
||||
|
||||
如果无法配置变量,可以直接在 deployment.yaml 中使用固定的镜像地址。
|
||||
|
||||
**我已经修改了 `manifests/deployment.yaml`:**
|
||||
|
||||
```yaml
|
||||
containers:
|
||||
- name: scanner
|
||||
image: jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:latest
|
||||
# 原来是: image: ${IMAGE}
|
||||
```
|
||||
|
||||
**缺点:**
|
||||
- ❌ 总是使用 `latest` 标签,无法追踪具体版本
|
||||
- ❌ 如果构建失败但标签被推送,会部署错误的镜像
|
||||
|
||||
**提交修改:**
|
||||
|
||||
```bash
|
||||
cd /Users/zhai/my_project/indea_project_workspaces/skillhub
|
||||
git add manifests/deployment.yaml
|
||||
git commit -m "fix: 使用固定镜像地址替代变量"
|
||||
git push
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 方案三:使用 kustomize 或 helm(高级方案)
|
||||
|
||||
如果需要更灵活的配置管理,可以使用:
|
||||
|
||||
#### Option A: Kustomize
|
||||
|
||||
创建 `kustomization.yaml`:
|
||||
|
||||
```yaml
|
||||
# manifests/kustomization.yaml
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- deployment.yaml
|
||||
- service.yaml
|
||||
|
||||
images:
|
||||
- name: scanner-image
|
||||
newName: jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner
|
||||
newTag: ${BUILD_NUMBER}
|
||||
```
|
||||
|
||||
修改 deployment.yaml:
|
||||
```yaml
|
||||
containers:
|
||||
- name: scanner
|
||||
image: scanner-image # kustomize 会替换这个
|
||||
```
|
||||
|
||||
#### Option B: Helm Chart
|
||||
|
||||
创建 Helm Chart 结构(更复杂但更强大)。
|
||||
|
||||
---
|
||||
|
||||
## 📸 云效界面示例
|
||||
|
||||
### KubectlApply 步骤配置界面:
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ 步骤名称: [部署到 Kubernetes ] │
|
||||
│ 步骤类型: [KubectlApply ▼] │
|
||||
│ │
|
||||
│ Kubernetes 配置 │
|
||||
│ ├─ kubectl 版本: [v1.27.9 ] │
|
||||
│ ├─ 集群类型: [ACK ▼] │
|
||||
│ ├─ 命名空间: [default ] │
|
||||
│ └─ YAML 路径: [manifests ] │
|
||||
│ │
|
||||
│ 变量替换配置 ⬇️ │
|
||||
│ ┌─────────────────────────────────────────────┐ │
|
||||
│ │ IMAGE=jsessh-registry.cn-shanghai. │ │
|
||||
│ │ cr.aliyuncs.com/apps/sh-skill- │ │
|
||||
│ │ scanner:${BUILD_NUMBER} │ │← 在这里添加
|
||||
│ └─────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ [保存] [取消] │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔍 验证配置
|
||||
|
||||
配置后重新运行,应该看到:
|
||||
|
||||
```
|
||||
[INFO] Generate deployment.yaml with variables:
|
||||
[INFO] IMAGE=jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:31
|
||||
[INFO] kubectl apply -f deployment.yaml
|
||||
[INFO] deployment.apps/skillhub-scanner created
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📝 推荐使用的变量格式
|
||||
|
||||
```
|
||||
IMAGE=jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:${BUILD_NUMBER}
|
||||
```
|
||||
|
||||
**说明:**
|
||||
- `${BUILD_NUMBER}` 是云效自动注入的构建编号
|
||||
- 每次构建都会有唯一的镜像标签
|
||||
- 便于回滚和追踪
|
||||
|
||||
---
|
||||
|
||||
## 🎯 快速行动方案
|
||||
|
||||
### 选项 A:配置变量(推荐,1 分钟)
|
||||
|
||||
1. 进入云效 → 编辑流水线
|
||||
2. 找到 KubectlApply 步骤
|
||||
3. 在"变量"或"Variables"字段添加:
|
||||
```
|
||||
IMAGE=jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:${BUILD_NUMBER}
|
||||
```
|
||||
4. 保存并运行
|
||||
|
||||
### 选项 B:使用固定镜像(已完成,需提交)
|
||||
|
||||
1. 提交修改:
|
||||
```bash
|
||||
cd /Users/zhai/my_project/indea_project_workspaces/skillhub
|
||||
git add manifests/deployment.yaml
|
||||
git commit -m "fix: 使用固定镜像地址"
|
||||
git push
|
||||
```
|
||||
2. 重新运行云效流水线
|
||||
|
||||
---
|
||||
|
||||
## 💡 常见问题
|
||||
|
||||
### Q1: 找不到"变量替换"配置项
|
||||
|
||||
**A:** 不同版本的云效界面可能不同,尝试查找:
|
||||
- "变量"
|
||||
- "环境变量"
|
||||
- "参数设置"
|
||||
- "Variables"
|
||||
- "自定义变量"
|
||||
|
||||
### Q2: 变量配置后还是报错
|
||||
|
||||
**A:** 检查变量名是否完全匹配:
|
||||
- deployment.yaml 中: `${IMAGE}`
|
||||
- 云效配置中: `IMAGE=...` (不要加 `${}`)
|
||||
|
||||
### Q3: BUILD_NUMBER 变量未定义
|
||||
|
||||
**A:** 确认云效版本支持 `${BUILD_NUMBER}`,或者使用固定标签:
|
||||
```
|
||||
IMAGE=jsessh-registry.cn-shanghai.cr.aliyuncs.com/apps/sh-skill-scanner:latest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📞 需要帮助?
|
||||
|
||||
如果还是无法配置,请提供:
|
||||
1. 云效 KubectlApply 步骤的配置界面截图
|
||||
2. 或者完整的错误日志
|
||||
|
||||
我会根据具体情况提供更精确的指导!
|
||||
Loading…
Add table
Reference in a new issue