1.7 KiB
1.7 KiB
05-04-k3s 配置 GitLab CI/CD
把 manifests 与 values 纳入 GitLab 仓库,通过流水线自动部署到 K3s。
TL;DR
- 自动化验收:
./ansible/bin/verify.sh run 05-04 - 关键前置:按本文「前置条件」准备环境变量/Secret/入口 IP
- 成功判据:达到本文「预期」且 playbook 断言通过
- 排障:见本文「排障」
建议仓库结构
homelab-config/
apps/
charts/
manifests/
.gitlab-ci.yml
准备集群凭据
常见做法二选一:
KUBE_CONFIG变量(适合快速落地)- ServiceAccount + RBAC(适合长期最小权限)
基础流水线步骤
lint:检查 YAML/Helm 语法deploy:kubectl apply -f ...或helm upgrade --installverify:部署后基本健康检查
唯一真源(示例流水线):
- 最小:
ansible/files/05-04/gitlab-ci-minimal.example.yml - 多架构 deploy:
ansible/files/05-04/gitlab-ci-multi-arch-deploy.example.yml
复制到仓库根为 .gitlab-ci.yml(或 include 引用),并配好 Runner 与 KUBE_CONFIG_CONTENT 等变量。
验证
- 提交一次最小变更(如 ConfigMap)
- 确认 Pipeline 成功
- 确认集群资源已更新
下一步
05-05-prometheus与grafana.md06-02-运维小结.md
排障
- 先看 playbook 输出:失败时先定位是 deploy/wait/http_check 哪一步。
- 集群侧总览:
kubectl get nodes -o wide、kubectl -n kube-system get pods -o wide。 - 事件与日志:
kubectl -n <ns> describe ...、kubectl -n <ns> logs ... --tail=200。