feat: 按 doc_id 重组 ansible/files 与验证框架
- ansible/files 改为与文档 XX-YY 对齐的目录结构,更新相关 playbook 路径 - 新增 scripts/verify.sh 与 ansible/playbooks/verify/*.yml,移除单体 verify-matrix.yml - 补充 docs/00-02 矩阵状态、00-05 验证框架与流程、00-04 环境与 ylc65 工作机说明 - 增加 k3s 存储准备、Longhorn、local-path 等 playbook 与辅助脚本 Made-with: Cursor
This commit is contained in:
9
ansible/files/00-01-k3s-基础概念/README.md
Normal file
9
ansible/files/00-01-k3s-基础概念/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 00-01-k3s-基础概念(占位)
|
||||
|
||||
对应文档:[`docs/00-01-k3s-基础概念.md`](../../docs/00-01-k3s-基础概念.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为概念性文档,**不提供可部署的 Kubernetes 清单**。
|
||||
- 验证方式:按文档理解与对照集群实际输出即可(无 `kubectl apply -f` 目标)。
|
||||
|
||||
9
ansible/files/00-04-部署环境说明/README.md
Normal file
9
ansible/files/00-04-部署环境说明/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 00-04-部署环境说明(占位)
|
||||
|
||||
对应文档:[`docs/00-04-部署环境说明.md`](../../docs/00-04-部署环境说明.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为环境说明文档,**不提供可部署的 Kubernetes 清单**。
|
||||
- 验证方式:按文档逐项核对你的实际环境信息(节点、磁盘挂载、版本等)。
|
||||
|
||||
13
ansible/files/01-01-k3s-控制节点含traefik/README.md
Normal file
13
ansible/files/01-01-k3s-控制节点含traefik/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 01-01-k3s-控制节点含traefik(占位)
|
||||
|
||||
对应文档:[`docs/01-01-k3s-控制节点含traefik.md`](../../docs/01-01-k3s-控制节点含traefik.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇主要是 **K3s 安装与集群初始化**,核心部署逻辑在 Ansible playbook 中。
|
||||
- 本目录仅作为 doc_id 对齐占位;不单独维护 K8s manifests。
|
||||
|
||||
## 关联(参考)
|
||||
|
||||
- Ansible:`ansible/playbooks/k3s-init-and-install.yml`
|
||||
|
||||
13
ansible/files/01-02-k3s-工作节点/README.md
Normal file
13
ansible/files/01-02-k3s-工作节点/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 01-02-k3s-工作节点(占位)
|
||||
|
||||
对应文档:[`docs/01-02-k3s-工作节点.md`](../../docs/01-02-k3s-工作节点.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇主要是 **工作节点加入 K3s 集群** 与节点侧配置。
|
||||
- 本目录仅作为 doc_id 对齐占位;不单独维护 K8s manifests。
|
||||
|
||||
## 关联(参考)
|
||||
|
||||
- Ansible:`ansible/playbooks/k3s-init-and-install.yml`
|
||||
|
||||
9
ansible/files/01-03-armv7-standalone-docker/README.md
Normal file
9
ansible/files/01-03-armv7-standalone-docker/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 01-03-armv7-standalone-docker(占位)
|
||||
|
||||
对应文档:[`docs/01-03-armv7-standalone-docker.md`](../../docs/01-03-armv7-standalone-docker.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为 armv7 设备的 Docker 独立部署说明,**不提供 K3s/Kubernetes 清单**。
|
||||
- 本目录仅用于 doc_id 对齐占位。
|
||||
|
||||
9
ansible/files/01-04-双控制节点ha/README.md
Normal file
9
ansible/files/01-04-双控制节点ha/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 01-04-双控制节点ha(占位)
|
||||
|
||||
对应文档:[`docs/01-04-双控制节点ha.md`](../../docs/01-04-双控制节点ha.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为 HA/双控制节点方案说明,部署更多依赖集群架构与外部 LB 配置。
|
||||
- 本目录仅用于 doc_id 对齐占位;不提供独立 K8s manifests。
|
||||
|
||||
9
ansible/files/01-05-armv7-nfs服务安装/README.md
Normal file
9
ansible/files/01-05-armv7-nfs服务安装/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 01-05-armv7-nfs服务安装(占位)
|
||||
|
||||
对应文档:[`docs/01-05-armv7-nfs服务安装.md`](../../docs/01-05-armv7-nfs服务安装.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为 armv7 设备上 NFS 服务安装说明,**不提供 K3s/Kubernetes 清单**。
|
||||
- 本目录仅用于 doc_id 对齐占位。
|
||||
|
||||
13
ansible/files/01-06-节点初始化-ansible-实践/README.md
Normal file
13
ansible/files/01-06-节点初始化-ansible-实践/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 01-06-节点初始化-ansible-实践(占位)
|
||||
|
||||
对应文档:[`docs/01-06-节点初始化-ansible-实践.md`](../../docs/01-06-节点初始化-ansible-实践.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇的“真源”是 Ansible playbooks(初始化、安装、验证)。
|
||||
- 本目录仅用于 doc_id 对齐占位;不单独维护 K8s manifests。
|
||||
|
||||
## 关联(参考)
|
||||
|
||||
- Ansible:`ansible/playbooks/k3s-init-and-install.yml`
|
||||
|
||||
12
ansible/files/02-00-nginx-系列说明/README.md
Normal file
12
ansible/files/02-00-nginx-系列说明/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# 02-00-nginx-系列说明(占位)
|
||||
|
||||
对应文档:[`docs/02-00-nginx-系列说明.md`](../../docs/02-00-nginx-系列说明.md)
|
||||
|
||||
## 清单复用说明
|
||||
|
||||
本系列(02-01~02-04)的可部署清单统一收敛在:
|
||||
|
||||
- `ansible/files/02-05-nginx-matrix/`
|
||||
|
||||
本目录仅用于 doc_id 对齐占位。
|
||||
|
||||
15
ansible/files/02-01-nginx-control-ingress/README.md
Normal file
15
ansible/files/02-01-nginx-control-ingress/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 02-01-nginx-control-ingress(占位)
|
||||
|
||||
对应文档:[`docs/02-01-nginx-control-ingress.md`](../../docs/02-01-nginx-control-ingress.md)
|
||||
|
||||
## 真源清单
|
||||
|
||||
- 复用清单目录:`ansible/files/02-05-nginx-matrix/`
|
||||
- 对应文件:`01-control-ingress.yaml`
|
||||
|
||||
应用示例:
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/02-05-nginx-matrix/01-control-ingress.yaml
|
||||
```
|
||||
|
||||
15
ansible/files/02-02-nginx-control-ingressroute/README.md
Normal file
15
ansible/files/02-02-nginx-control-ingressroute/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 02-02-nginx-control-ingressroute(占位)
|
||||
|
||||
对应文档:[`docs/02-02-nginx-control-ingressroute.md`](../../docs/02-02-nginx-control-ingressroute.md)
|
||||
|
||||
## 真源清单
|
||||
|
||||
- 复用清单目录:`ansible/files/02-05-nginx-matrix/`
|
||||
- 对应文件:`02-control-ingressroute.yaml`
|
||||
|
||||
应用示例:
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/02-05-nginx-matrix/02-control-ingressroute.yaml
|
||||
```
|
||||
|
||||
15
ansible/files/02-03-nginx-worker-ingress/README.md
Normal file
15
ansible/files/02-03-nginx-worker-ingress/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 02-03-nginx-worker-ingress(占位)
|
||||
|
||||
对应文档:[`docs/02-03-nginx-worker-ingress.md`](../../docs/02-03-nginx-worker-ingress.md)
|
||||
|
||||
## 真源清单
|
||||
|
||||
- 复用清单目录:`ansible/files/02-05-nginx-matrix/`
|
||||
- 对应文件:`03-worker-ingress.yaml`
|
||||
|
||||
应用示例:
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/02-05-nginx-matrix/03-worker-ingress.yaml
|
||||
```
|
||||
|
||||
15
ansible/files/02-04-nginx-worker-ingressroute/README.md
Normal file
15
ansible/files/02-04-nginx-worker-ingressroute/README.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 02-04-nginx-worker-ingressroute(占位)
|
||||
|
||||
对应文档:[`docs/02-04-nginx-worker-ingressroute.md`](../../docs/02-04-nginx-worker-ingressroute.md)
|
||||
|
||||
## 真源清单
|
||||
|
||||
- 复用清单目录:`ansible/files/02-05-nginx-matrix/`
|
||||
- 对应文件:`04-worker-ingressroute.yaml`
|
||||
|
||||
应用示例:
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/02-05-nginx-matrix/04-worker-ingressroute.yaml
|
||||
```
|
||||
|
||||
@@ -98,3 +98,4 @@ spec: # Ingress 规则
|
||||
name: nginx-m1 # Service 名
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -92,3 +92,4 @@ spec: # 路由规则
|
||||
services: # 匹配后转发的服务
|
||||
- name: nginx-m2 # 后端 Service 名称
|
||||
port: 80 # 后端 Service 端口
|
||||
|
||||
@@ -94,3 +94,4 @@ spec: # Ingress 规则
|
||||
name: nginx-m3 # Service 名称
|
||||
port: # 后端端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -92,3 +92,4 @@ spec: # IngressRoute 规则
|
||||
services: # 后端服务列表
|
||||
- name: nginx-m4 # Service 名称
|
||||
port: 80 # Service 端口
|
||||
|
||||
@@ -10,3 +10,4 @@
|
||||
| 04-worker-ingressroute.yaml | M4 工作+IngressRoute | /demo-m4 | nodeSelector=ylc64 |
|
||||
|
||||
M4 默认指定 ylc64,M3 随机工作节点;按实际修改。
|
||||
|
||||
@@ -35,3 +35,4 @@ spec: # 路由规则
|
||||
services: # 匹配到后转发给的服务列表
|
||||
- name: api@internal # Traefik 内置 API 服务
|
||||
kind: TraefikService # 该服务的 CRD 类型
|
||||
|
||||
@@ -113,3 +113,4 @@ spec: # Ingress 规则
|
||||
name: nginx-m1 # 共用 Service
|
||||
port: # 后端端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -96,3 +96,4 @@ spec: # 规则
|
||||
services: # 后端服务
|
||||
- name: nginx-m2 # 后端 Service
|
||||
port: 80 # 端口
|
||||
|
||||
@@ -108,3 +108,4 @@ spec: # Ingress 规则
|
||||
name: nginx-m3 # 后端 Service 名称
|
||||
port: # 后端端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -96,3 +96,4 @@ spec: # 规则
|
||||
services: # 后端服务
|
||||
- name: nginx-m4 # 后端 Service 名称
|
||||
port: 80 # 后端端口
|
||||
|
||||
@@ -38,3 +38,4 @@ spec: # chart 注入配置的具体内容
|
||||
|
||||
nodeSelector: # 把 Traefik Pod 固定到指定节点(配合 RWO 本地存储更安全)
|
||||
kubernetes.io/hostname: ylc61 # 固定节点主机名(按你的实际节点修改)
|
||||
|
||||
@@ -92,3 +92,4 @@ spec: # Ingress 规则
|
||||
name: tomcat-test05 # Service 名称
|
||||
port: # Service 端口
|
||||
number: 8080 # 端口号
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
# 03-03 Traefik Dashboard + ACME(合并版 HelmChartConfig)
|
||||
# 说明:同一 chart 只能有一份 HelmChartConfig(name: traefik),所以 Dashboard 与 ACME 必须合并。
|
||||
# 使用前:替换 <YOUR_REAL_EMAIL>;创建 cloudflare-api-token Secret;按实际修改 nodeSelector/trustedIPs/hosts。
|
||||
---
|
||||
apiVersion: helm.cattle.io/v1
|
||||
kind: HelmChartConfig
|
||||
metadata:
|
||||
name: traefik
|
||||
namespace: kube-system
|
||||
spec:
|
||||
valuesContent: |-
|
||||
ports:
|
||||
web:
|
||||
expose: true
|
||||
websecure:
|
||||
expose: true
|
||||
traefik:
|
||||
expose: true
|
||||
|
||||
additionalArguments:
|
||||
# Dashboard
|
||||
- "--api.dashboard=true"
|
||||
- "--api.insecure=true"
|
||||
|
||||
# ACME(Cloudflare DNS-01)
|
||||
- "--certificatesresolvers.cloudflare.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53"
|
||||
- "--certificatesresolvers.cloudflare.acme.email=<YOUR_REAL_EMAIL>"
|
||||
- "--certificatesresolvers.cloudflare.acme.storage=/data/acme.json"
|
||||
# - "--certificatesresolvers.cloudflare.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
- "--certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare"
|
||||
- "--certificatesresolvers.cloudflare.acme.dnschallenge.propagation.delayBeforeChecks=600"
|
||||
|
||||
# 健康检查:/ping 走 443(给 HAProxy https httpchk 用)
|
||||
- "--ping=true"
|
||||
- "--ping.entryPoint=websecure"
|
||||
|
||||
# PROXY protocol(HAProxy 前置时需要)
|
||||
- "--entrypoints.web.proxyProtocol.trustedIPs=192.168.2.0/24"
|
||||
- "--entrypoints.websecure.proxyProtocol.trustedIPs=192.168.2.0/24"
|
||||
|
||||
env:
|
||||
- name: CF_DNS_API_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cloudflare-api-token
|
||||
key: api-token
|
||||
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: ylc61
|
||||
|
||||
# persistence:将 /data 持久化(local-path PVC),保证 acme.json 落盘
|
||||
persistence:
|
||||
enabled: true
|
||||
name: data
|
||||
accessMode: ReadWriteOnce
|
||||
size: 128Mi
|
||||
path: /data
|
||||
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: traefik-dashboard
|
||||
namespace: kube-system
|
||||
spec:
|
||||
entryPoints:
|
||||
- web
|
||||
routes:
|
||||
- match: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: api@internal
|
||||
kind: TraefikService
|
||||
|
||||
@@ -35,3 +35,4 @@ spec: # Deployment 期望状态
|
||||
secretKeyRef: # 从 Secret 的 key 取值
|
||||
name: cloudflared-credentials # Secret 名称
|
||||
key: TUNNEL_TOKEN # Secret 中的 key
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"nodePathMap": [
|
||||
{
|
||||
"node": "DEFAULT_PATH_FOR_NON_LISTED_NODES",
|
||||
"paths": ["/storage/storage"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -39,3 +39,4 @@ spec: # Deployment 的期望状态(副本数、选择器、Pod 模板等)
|
||||
- name: data # Pod 内的卷名(给 volumeMounts 用)
|
||||
persistentVolumeClaim: # 使用 PVC 作为卷来源
|
||||
claimName: local-pvc-demo # 绑定到哪个 PVC(必须与上面 PVC metadata.name 且同 namespace)
|
||||
|
||||
@@ -10,8 +10,8 @@ spec: # PV 规格
|
||||
- ReadWriteMany # RWX:多节点可读写
|
||||
persistentVolumeReclaimPolicy: Retain # 回收策略:删除 PVC 后保留底层数据
|
||||
nfs: # 存储后端:NFS
|
||||
server: 192.168.2.22 # NFS 服务器地址
|
||||
path: /data/nfs # NFS 导出目录
|
||||
server: <NFS_SERVER_IP> # NFS 服务器地址(示例:192.168.2.22;应用前必须替换)
|
||||
path: <NFS_EXPORT_PATH> # NFS 导出目录(示例:/sdcard;应用前必须替换)
|
||||
---
|
||||
apiVersion: v1 # PVC 使用的核心 API 版本
|
||||
kind: PersistentVolumeClaim # 资源类型:持久卷声明
|
||||
@@ -25,3 +25,4 @@ spec: # PVC 规格
|
||||
requests: # 配额请求
|
||||
storage: 5Gi # 申请容量
|
||||
volumeName: nfs-pv-demo # 显式绑定到指定 PV
|
||||
|
||||
14
ansible/files/03-07-longhorn/values-lab.yaml
Normal file
14
ansible/files/03-07-longhorn/values-lab.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
# Longhorn Helm values — 本仓库实验室(四节点 10G+32G,/storage 独立挂载)
|
||||
# Chart:https://charts.longhorn.io 字段说明见官方 chart values.yaml(与 app 同版本 tag)
|
||||
# 使用:helm upgrade --install longhorn longhorn/longhorn -n longhorn-system --create-namespace -f values-lab.yaml --version 1.7.2
|
||||
|
||||
defaultSettings:
|
||||
defaultDataPath: /storage/longhorn
|
||||
# 字符串形式,与 chart 一致;32G 数据盘实验环境先省空间,要演练 HA 可改为 "2" 或 "3"
|
||||
defaultReplicaCount: "1"
|
||||
|
||||
persistence:
|
||||
defaultClass: true
|
||||
defaultClassReplicaCount: 1
|
||||
defaultFsType: ext4
|
||||
|
||||
9
ansible/files/03-08-k3s-ha-集群配置与切换/README.md
Normal file
9
ansible/files/03-08-k3s-ha-集群配置与切换/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 03-08-k3s-ha-集群配置与切换(占位)
|
||||
|
||||
对应文档:[`docs/03-08-k3s-ha-集群配置与切换.md`](../../docs/03-08-k3s-ha-集群配置与切换.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇偏架构/流程与配置项梳理,具体落地会涉及多节点与外部组件(如 LB/DNS/证书)。
|
||||
- 本目录仅用于 doc_id 对齐占位;暂无独立可复用 manifests。
|
||||
|
||||
9
ansible/files/03-09-k3s-gitops-集群配置管理/README.md
Normal file
9
ansible/files/03-09-k3s-gitops-集群配置管理/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 03-09-k3s-gitops-集群配置管理(占位)
|
||||
|
||||
对应文档:[`docs/03-09-k3s-gitops-集群配置管理.md`](../../docs/03-09-k3s-gitops-集群配置管理.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为 GitOps 框架草案(Argo CD / Flux 等),最终 manifests 取决于选型与版本。
|
||||
- 本目录仅用于 doc_id 对齐占位;暂无固定清单。
|
||||
|
||||
@@ -52,3 +52,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -56,3 +56,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -73,3 +73,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -73,3 +73,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -80,3 +80,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -92,3 +92,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -94,3 +94,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -107,3 +107,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -125,3 +125,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -126,3 +126,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -131,3 +131,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -138,3 +138,4 @@ spec: # Ingress 规则
|
||||
name: nodejs-demo # Service 名称
|
||||
port: # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -155,3 +155,4 @@ spec: # HPA 规格
|
||||
target: # 目标值
|
||||
type: Utilization # 目标类型:利用率
|
||||
averageUtilization: 50 # 目标平均 CPU 利用率(%)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
```bash
|
||||
# 仓库根目录
|
||||
kubectl apply -f ansible/files/nodejs-demo/04-01-nodejs-demo.yaml
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-01-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
或使用 Ansible:`ansible/playbooks/nodejs-demo-apply.yml`,变量 `nodejs_demo_manifest` 指定文件名。
|
||||
@@ -38,5 +38,6 @@ kubectl apply -f ansible/files/nodejs-demo/04-01-nodejs-demo.yaml
|
||||
## dry-run
|
||||
|
||||
```bash
|
||||
kubectl apply --dry-run=client -f ansible/files/nodejs-demo/04-01-nodejs-demo.yaml
|
||||
kubectl apply --dry-run=client -f ansible/files/04-01-nodejs-demo/04-01-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
@@ -6,3 +6,4 @@ metadata: # Secret 元信息
|
||||
namespace: default # 命名空间
|
||||
stringData: # 明文键值(创建时会转换为 data)
|
||||
API_TOKEN: "replace-me" # 示例 token(请替换,勿提交真实密钥)
|
||||
|
||||
13
ansible/files/04-02-nodejs-镜像与运行命令/README.md
Normal file
13
ansible/files/04-02-nodejs-镜像与运行命令/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-02-nodejs-镜像与运行命令(占位)
|
||||
|
||||
对应文档:[`docs/04-02-nodejs-镜像与运行命令.md`](../../docs/04-02-nodejs-镜像与运行命令.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-02-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-02-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-03-nodejs-环境变量与配置注入/README.md
Normal file
13
ansible/files/04-03-nodejs-环境变量与配置注入/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-03-nodejs-环境变量与配置注入(占位)
|
||||
|
||||
对应文档:[`docs/04-03-nodejs-环境变量与配置注入.md`](../../docs/04-03-nodejs-环境变量与配置注入.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-03-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-03-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-04-nodejs-端口与Service/README.md
Normal file
13
ansible/files/04-04-nodejs-端口与Service/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-04-nodejs-端口与Service(占位)
|
||||
|
||||
对应文档:[`docs/04-04-nodejs-端口与Service.md`](../../docs/04-04-nodejs-端口与Service.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-04-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-04-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-05-nodejs-资源请求与限制/README.md
Normal file
13
ansible/files/04-05-nodejs-资源请求与限制/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-05-nodejs-资源请求与限制(占位)
|
||||
|
||||
对应文档:[`docs/04-05-nodejs-资源请求与限制.md`](../../docs/04-05-nodejs-资源请求与限制.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-05-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-05-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-06-nodejs-探针与健康检查/README.md
Normal file
13
ansible/files/04-06-nodejs-探针与健康检查/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-06-nodejs-探针与健康检查(占位)
|
||||
|
||||
对应文档:[`docs/04-06-nodejs-探针与健康检查.md`](../../docs/04-06-nodejs-探针与健康检查.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-06-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-06-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-07-nodejs-调度与亲和/README.md
Normal file
13
ansible/files/04-07-nodejs-调度与亲和/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-07-nodejs-调度与亲和(占位)
|
||||
|
||||
对应文档:[`docs/04-07-nodejs-调度与亲和.md`](../../docs/04-07-nodejs-调度与亲和.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-07-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-07-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-08-nodejs-安全上下文/README.md
Normal file
13
ansible/files/04-08-nodejs-安全上下文/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-08-nodejs-安全上下文(占位)
|
||||
|
||||
对应文档:[`docs/04-08-nodejs-安全上下文.md`](../../docs/04-08-nodejs-安全上下文.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-08-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-08-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-09-nodejs-存储与卷/README.md
Normal file
13
ansible/files/04-09-nodejs-存储与卷/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-09-nodejs-存储与卷(占位)
|
||||
|
||||
对应文档:[`docs/04-09-nodejs-存储与卷.md`](../../docs/04-09-nodejs-存储与卷.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-09-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-09-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-10-nodejs-Ingress与Traefik/README.md
Normal file
13
ansible/files/04-10-nodejs-Ingress与Traefik/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-10-nodejs-Ingress与Traefik(占位)
|
||||
|
||||
对应文档:[`docs/04-10-nodejs-Ingress与Traefik.md`](../../docs/04-10-nodejs-Ingress与Traefik.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-10-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-10-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-11-nodejs-副本与滚动发布/README.md
Normal file
13
ansible/files/04-11-nodejs-副本与滚动发布/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-11-nodejs-副本与滚动发布(占位)
|
||||
|
||||
对应文档:[`docs/04-11-nodejs-副本与滚动发布.md`](../../docs/04-11-nodejs-副本与滚动发布.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-11-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-11-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-12-nodejs-TLS与证书/README.md
Normal file
13
ansible/files/04-12-nodejs-TLS与证书/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-12-nodejs-TLS与证书(占位)
|
||||
|
||||
对应文档:[`docs/04-12-nodejs-TLS与证书.md`](../../docs/04-12-nodejs-TLS与证书.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-12-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-12-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
13
ansible/files/04-13-nodejs-HPA/README.md
Normal file
13
ansible/files/04-13-nodejs-HPA/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# 04-13-nodejs-HPA(占位)
|
||||
|
||||
对应文档:[`docs/04-13-nodejs-HPA.md`](../../docs/04-13-nodejs-HPA.md)
|
||||
|
||||
## 真源清单(复用 04-01 累积目录)
|
||||
|
||||
- 真源目录:`ansible/files/04-01-nodejs-demo/`
|
||||
- 对应累积清单:`04-13-nodejs-demo.yaml`
|
||||
|
||||
```bash
|
||||
kubectl apply -f ansible/files/04-01-nodejs-demo/04-13-nodejs-demo.yaml
|
||||
```
|
||||
|
||||
9
ansible/files/04-14-nodejs-GitOps与CI流水线/README.md
Normal file
9
ansible/files/04-14-nodejs-GitOps与CI流水线/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 04-14-nodejs-GitOps与CI流水线(占位)
|
||||
|
||||
对应文档:[`docs/04-14-nodejs-GitOps与CI流水线.md`](../../docs/04-14-nodejs-GitOps与CI流水线.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为流程/方法论文档,通常不会提供一份固定可复用的 K8s 清单。
|
||||
- 如需参考示例清单,可从 `ansible/files/04-01-nodejs-demo/` 选择对应阶段的累积 YAML。
|
||||
|
||||
@@ -1,4 +1,28 @@
|
||||
# docs/05-01-k3s-部署homer首页面板.md — 按需修改 host
|
||||
# docs/05-01-k3s-部署homer首页面板.md — 按需修改 host、ConfigMap 内 config.yml
|
||||
# Homer 官方镜像约定:自定义配置挂在容器内 /www/assets/config.yml(见 b4bz/homer 说明)
|
||||
# 若不想用 ConfigMap:删除本文件最上方的 ConfigMap,并去掉 Deployment 里 env/volumes/volumeMounts 三段
|
||||
---
|
||||
apiVersion: v1 # ConfigMap:存放 Homer 的 config.yml 文本
|
||||
kind: ConfigMap # 非机密配置,适合放导航 YAML
|
||||
metadata: # 元数据
|
||||
name: homer-config # 名称须与 Deployment 中 volume 引用一致
|
||||
namespace: homer # 与 Deployment 同命名空间
|
||||
data: # 键值:键名 config.yml 会映射为容器内文件名
|
||||
config.yml: | # Homer 主配置(修改导航只改这里,不必为每个链接单独写 K8s YAML)
|
||||
---
|
||||
title: "实验室导航" # 页面主标题
|
||||
subtitle: "Homer" # 副标题
|
||||
theme: default # 主题:default / dark 等(见官方文档)
|
||||
connectivityCheck: false # 是否探测链接可达(实验环境可先关)
|
||||
columns: 3 # 桌面端列数
|
||||
services: # 分组与书签(在此集中维护)
|
||||
- name: "示例分组" # 分组名
|
||||
icon: "fas fa-layer-group" # Font Awesome 图标类名
|
||||
items: # 该分组下的链接列表
|
||||
- name: "Homer 项目" # 卡片标题
|
||||
url: "https://github.com/bastienwirtz/homer" # 跳转地址
|
||||
target: "_blank" # 新标签页打开
|
||||
---
|
||||
apiVersion: apps/v1 # Deployment 使用的 API 版本
|
||||
kind: Deployment # 工作负载:Deployment(管理 Pod 副本)
|
||||
metadata: # 对该资源的标识信息
|
||||
@@ -14,11 +38,25 @@ spec: # Deployment 期望状态
|
||||
labels: # Pod 标签:用于 selector 匹配 Service/Deployment 等
|
||||
app: homer # Pod 上的标签 app=homer
|
||||
spec: # Pod 规范
|
||||
volumes: # Pod 级卷:把 ConfigMap 挂进容器
|
||||
- name: homer-config # 卷名,供 volumeMounts 引用
|
||||
configMap: # 来自上方 homer-config
|
||||
name: homer-config # ConfigMap 名称
|
||||
items: # 只挂载需要的键,文件名与键名一致
|
||||
- key: config.yml # ConfigMap.data 中的键
|
||||
path: config.yml # 在挂载目录下生成的文件名
|
||||
containers: # 容器列表(本例只有一个容器)
|
||||
- name: homer # 容器名称(日志/调试中会用到)
|
||||
image: b4bz/homer:latest # homer 镜像
|
||||
image: b4bz/homer:latest # Homer 官方镜像(Docker Hub 命名空间 b4bz)
|
||||
env: # 环境变量
|
||||
- name: INIT_ASSETS # 启动时是否从镜像复制默认 assets
|
||||
value: "0" # 使用 ConfigMap 提供 config.yml 时设为 0,避免覆盖自定义配置
|
||||
ports: # 容器端口声明(供探测/生成文档等使用)
|
||||
- containerPort: 8080 # 容器监听端口:homer 默认 8080
|
||||
volumeMounts: # 把 config.yml 挂到 Homer 读取路径
|
||||
- name: homer-config # 对应 volumes[].name
|
||||
mountPath: /www/assets/config.yml # 官方镜像中配置文件路径
|
||||
subPath: config.yml # 单文件挂载(不覆盖整个 /www/assets 目录)
|
||||
---
|
||||
apiVersion: v1 # Service 使用的 API 版本
|
||||
kind: Service # 网络抽象:把一组 Pod 暴露为稳定的访问入口
|
||||
@@ -51,3 +89,4 @@ spec: # Ingress 规则
|
||||
name: homer # 后端 Service 名称
|
||||
port: # 后端端口配置
|
||||
number: 80 # 后端 Service 端口
|
||||
|
||||
@@ -40,4 +40,5 @@ spec: # Ingress 规则
|
||||
service: # 转发到 Service
|
||||
name: onenav-external # 后端 Service 名称
|
||||
port: # 后端端口
|
||||
number: 80 # Service 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
@@ -13,3 +13,4 @@ build_armv7: # 任务名:armv7 构建
|
||||
tags: [armv7] # 仅匹配 armv7 Runner
|
||||
script: # 执行脚本
|
||||
- echo "build for armv7" # 示例输出
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|------|------|
|
||||
| `gitlab-ci-minimal.example.yml` | `docs/05-04-k3s-配置gitlab-cicd.md` |
|
||||
| `gitlab-ci-multi-arch-deploy.example.yml` | `docs/05-04-k3s-配置gitlab-cicd.md` |
|
||||
| `gitlab-ci-runner-tags.example.yml` | `docs/05-03-k3s-安装gitlab-含runner.md` |
|
||||
| `../05-03-gitlab-runner/gitlab-ci-runner-tags.example.yml` | `docs/05-03-k3s-安装gitlab-含runner.md` |
|
||||
|
||||
复制为 `.gitlab-ci.yml` 或 `include` 引用;变量与 Runner 以文档为准。
|
||||
|
||||
@@ -18,3 +18,4 @@ deploy: # 任务名:deploy
|
||||
- kubectl --kubeconfig="$KUBECONFIG" apply -f manifests/ # 应用 manifests
|
||||
only: # 触发条件(旧语法)
|
||||
- main # 仅 main 分支触发
|
||||
|
||||
@@ -12,3 +12,4 @@ deploy_arm64: # 任务名:arm64 架构部署
|
||||
script: # 执行脚本
|
||||
- echo "$KUBE_CONFIG_CONTENT" > "$KUBECONFIG" # 写入 kubeconfig
|
||||
- kubectl --kubeconfig="$KUBECONFIG" apply -f manifests/arm64/ # 部署 arm64 清单
|
||||
|
||||
9
ansible/files/05-05-prometheus与grafana/README.md
Normal file
9
ansible/files/05-05-prometheus与grafana/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 05-05-prometheus与grafana(占位)
|
||||
|
||||
对应文档:[`docs/05-05-prometheus与grafana.md`](../../docs/05-05-prometheus与grafana.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 监控栈通常通过 Helm Chart(如 kube-prometheus-stack)安装,清单会随版本变化。
|
||||
- 本目录仅用于 doc_id 对齐占位;后续若固化 values/Chart 版本,可在此补齐 manifests/values。
|
||||
|
||||
@@ -25,3 +25,4 @@ spec: # CronJob 期望状态
|
||||
persistentVolumeClaim: # 使用 PVC 作为存储来源
|
||||
claimName: openlist-backup-pvc # 绑定的 PVC 名称(需保证存在)
|
||||
restartPolicy: OnFailure # Pod 失败后重启策略:仅失败时重启
|
||||
|
||||
37
ansible/files/05-07-openclaw/openclaw-server.yml
Normal file
37
ansible/files/05-07-openclaw/openclaw-server.yml
Normal file
@@ -0,0 +1,37 @@
|
||||
# docs/05-07-openclaw局域网联机.md — 按需修改 NodePort/镜像
|
||||
apiVersion: apps/v1 # Deployment API 版本
|
||||
kind: Deployment # 部署控制器
|
||||
metadata: # 元数据
|
||||
name: openclaw-server # Deployment 名称
|
||||
namespace: default # 命名空间
|
||||
spec: # 期望状态
|
||||
replicas: 1 # 副本数
|
||||
selector: # 选择器
|
||||
matchLabels: # 匹配 labels
|
||||
app: openclaw-server # 标签值
|
||||
template: # Pod 模板
|
||||
metadata: # Pod 元信息
|
||||
labels: # Pod 标签
|
||||
app: openclaw-server # 标签值
|
||||
spec: # Pod 规格
|
||||
containers: # 容器
|
||||
- name: openclaw-server # 容器名
|
||||
image: ghcr.io/your/openclaw-server:latest # 镜像(按环境修改)
|
||||
ports: # 容器端口
|
||||
- containerPort: 27015 # 示例端口(按应用实际修改)
|
||||
---
|
||||
apiVersion: v1 # Service API 版本
|
||||
kind: Service # Service
|
||||
metadata: # 元数据
|
||||
name: openclaw-server # Service 名称
|
||||
namespace: default # 命名空间
|
||||
spec: # 规格
|
||||
type: NodePort # NodePort 暴露到节点
|
||||
selector: # 选择后端 Pod
|
||||
app: openclaw-server # 标签选择器
|
||||
ports: # 端口列表
|
||||
- name: game # 端口名
|
||||
port: 27015 # Service 端口
|
||||
targetPort: 27015 # Pod 端口
|
||||
nodePort: 32715 # NodePort(按需修改,需在范围内)
|
||||
|
||||
55
ansible/files/05-09-openclaw-web-小游戏网页平台/openclaw-web.yml
Normal file
55
ansible/files/05-09-openclaw-web-小游戏网页平台/openclaw-web.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
# docs/05-09-openclaw-web-小游戏网页平台.md — 按需修改 Ingress host/镜像
|
||||
apiVersion: apps/v1 # Deployment API 版本
|
||||
kind: Deployment # 部署
|
||||
metadata: # 元信息
|
||||
name: openclaw-web # 名称
|
||||
namespace: default # 命名空间
|
||||
spec: # 规格
|
||||
replicas: 1 # 副本数
|
||||
selector: # 选择器
|
||||
matchLabels: # 匹配标签
|
||||
app: openclaw-web # 标签
|
||||
template: # Pod 模板
|
||||
metadata: # Pod 元信息
|
||||
labels: # Pod 标签
|
||||
app: openclaw-web # 标签
|
||||
spec: # Pod 规格
|
||||
containers: # 容器列表
|
||||
- name: openclaw-web # 容器名
|
||||
image: ghcr.io/your/openclaw-web:latest # 镜像(按环境修改)
|
||||
ports: # 容器端口
|
||||
- containerPort: 80 # Web 端口
|
||||
---
|
||||
apiVersion: v1 # Service API 版本
|
||||
kind: Service # Service
|
||||
metadata: # 元信息
|
||||
name: openclaw-web # Service 名称
|
||||
namespace: default # 命名空间
|
||||
spec: # 规格
|
||||
selector: # 选择后端 Pod
|
||||
app: openclaw-web # 标签
|
||||
ports: # 端口
|
||||
- name: http # 名称
|
||||
port: 80 # Service 端口
|
||||
targetPort: 80 # Pod 端口
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1 # Ingress API 版本
|
||||
kind: Ingress # Ingress
|
||||
metadata: # 元信息
|
||||
name: openclaw-web # 名称
|
||||
namespace: default # 命名空间
|
||||
annotations: # 注解
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web # Traefik entrypoint
|
||||
spec: # 规格
|
||||
rules: # 规则
|
||||
- host: openclaw.example.com # 域名(按环境修改)
|
||||
http: # HTTP
|
||||
paths: # 路径
|
||||
- path: / # 根路径
|
||||
pathType: Prefix # 前缀匹配
|
||||
backend: # 后端
|
||||
service: # Service
|
||||
name: openclaw-web # 后端 service
|
||||
port: # 端口
|
||||
number: 80 # 端口号
|
||||
|
||||
9
ansible/files/06-01-k3s-networkpolicy-故障排查/README.md
Normal file
9
ansible/files/06-01-k3s-networkpolicy-故障排查/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 06-01-k3s-networkpolicy-故障排查(占位)
|
||||
|
||||
对应文档:[`docs/06-01-k3s-networkpolicy-故障排查.md`](../../docs/06-01-k3s-networkpolicy-故障排查.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为排障手册/命令集合,**不提供固定可部署清单**。
|
||||
- 本目录仅用于 doc_id 对齐占位。
|
||||
|
||||
9
ansible/files/06-02-运维小结/README.md
Normal file
9
ansible/files/06-02-运维小结/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# 06-02-运维小结(占位)
|
||||
|
||||
对应文档:[`docs/06-02-运维小结.md`](../../docs/06-02-运维小结.md)
|
||||
|
||||
## 说明
|
||||
|
||||
- 本篇为运维建议/巡检要点总结,通常不对应单一可部署清单。
|
||||
- 本目录仅用于 doc_id 对齐占位。
|
||||
|
||||
12
ansible/files/06-03-k3s-自动备份与恢复-openlist-webdav/README.md
Normal file
12
ansible/files/06-03-k3s-自动备份与恢复-openlist-webdav/README.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# 06-03-k3s-自动备份与恢复-openlist-webdav(对齐 README)
|
||||
|
||||
对应文档:[`docs/06-03-k3s-自动备份与恢复-openlist-webdav.md`](../../docs/06-03-k3s-自动备份与恢复-openlist-webdav.md)
|
||||
|
||||
## 真源清单目录
|
||||
|
||||
本篇可部署清单当前收敛在:
|
||||
|
||||
- `ansible/files/06-03-openlist-webdav/`
|
||||
|
||||
说明:该目录名未镜像 docs 文件名;为满足“doc_id 目录对齐”口径,本目录仅作为桥接与入口。
|
||||
|
||||
@@ -25,3 +25,4 @@ spec: # CronJob 规格
|
||||
hostPath: # 使用宿主机路径
|
||||
path: /data/app # 宿主机实际目录(按环境修改)
|
||||
restartPolicy: OnFailure # 失败时重启
|
||||
|
||||
@@ -22,3 +22,4 @@ spec: # Job 规格
|
||||
hostPath: # 使用宿主机目录作为存储
|
||||
path: /data/app # 节点上的真实数据目录(按实际修改)
|
||||
restartPolicy: OnFailure # 失败时重启,成功后结束
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
# 03-03 Traefik Dashboard + ACME(唯一清单,推荐)
|
||||
# =============================================================================
|
||||
# 含:HelmChartConfig(local-path 持久化 /data + ACME Cloudflare DNS-01 + Dashboard)
|
||||
# + IngressRoute(/dashboard、/api)
|
||||
# acme.json 与 chart persistence 均落在 /data,Pod 重建后证书仍在;nodeSelector 须固定单节点(RWO)
|
||||
#
|
||||
# 部署:kubectl apply -f ansible/files/traefik-dashboard-acme/traefik-dashboard-acme.yaml
|
||||
# 使用前:替换 <YOUR_REAL_EMAIL>、nodeSelector 主机名;Secret cloudflare-api-token 已存在(见 03-02)
|
||||
# 全集群只能有一份 HelmChartConfig metadata.name=traefik
|
||||
#
|
||||
# --- 不要 Dashboard 时 ---
|
||||
# 删除文末 IngressRoute 整段;并在 valuesContent 中删掉 ports(可选)、--api.dashboard、--api.insecure
|
||||
#
|
||||
# --- 临时不用持久化(不推荐)---
|
||||
# 将 persistence.enabled 改为 false 并删掉 persistence 下其余字段(证书可能随 Pod 丢失)
|
||||
# =============================================================================
|
||||
---
|
||||
apiVersion: helm.cattle.io/v1 # HelmChartConfig 所在的 API 版本
|
||||
kind: HelmChartConfig # HelmChartConfig:给 K3s/Helm 注入 values 的资源
|
||||
metadata: # 资源标识信息
|
||||
name: traefik # chart 对应的 name(需要与 Traefik chart/约定一致)
|
||||
namespace: kube-system # Traefik 通常运行在 kube-system
|
||||
spec: # 该资源要注入 chart 的配置
|
||||
valuesContent: |- # 以“字符串形式的 YAML”注入到 Helm chart values(由 chart 解析)
|
||||
ports: # 暴露 entrypoints 给集群入口
|
||||
web: # HTTP entrypoint
|
||||
expose: true # 允许暴露 web
|
||||
websecure: # HTTPS entrypoint
|
||||
expose: true # 允许暴露 websecure
|
||||
|
||||
persistence: # chart 持久化配置:为 /data 挂载 PVC
|
||||
enabled: true # 开启持久卷
|
||||
name: data # chart 创建/引用的卷名(PVC 等)
|
||||
accessMode: ReadWriteOnce # RWO:同一时间只能在一个节点挂载
|
||||
size: 512Mi # 请求容量(local-path 会据此创建本地卷)
|
||||
storageClass: local-path # 使用 K3s 的 local-path-provisioner
|
||||
path: /data # 容器内挂载目录(与 acme.storage 一致)
|
||||
|
||||
additionalArguments: # 额外传给 Traefik 的 CLI 参数
|
||||
- "--api.dashboard=true" # 打开 dashboard 功能
|
||||
- "--api.insecure=true" # (k8s)允许 dashboard 在入口可用(注意安全)
|
||||
|
||||
- "--log.level=INFO" # 日志级别
|
||||
- "--certificatesresolvers.cloudflare.acme.dnschallenge.resolvers=1.1.1.1:53,1.0.0.1:53" # DNS 解析器列表(用于 DNS-01)
|
||||
- "--certificatesresolvers.cloudflare.acme.email=<YOUR_REAL_EMAIL>" # ACME 注册邮箱
|
||||
- "--certificatesresolvers.cloudflare.acme.storage=/data/acme.json" # 证书与账户存储(容器内 /data)
|
||||
# - "--certificatesresolvers.cloudflare.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" # 测试用,上线前删除
|
||||
- "--certificatesresolvers.cloudflare.acme.dnschallenge.provider=cloudflare" # DNS-01 provider:cloudflare
|
||||
- "--certificatesresolvers.cloudflare.acme.dnschallenge.propagation.delayBeforeChecks=600" # DNS-01 propagation 等待秒数
|
||||
|
||||
- "--ping=true" # 开启 ping healthcheck
|
||||
- "--ping.entryPoint=websecure" # ping 使用 websecure(HTTPS) entrypoint
|
||||
|
||||
- "--entrypoints.web.proxyProtocol.trustedIPs=192.168.2.0/24" # web entrypoint 信任的代理网段
|
||||
- "--entrypoints.websecure.proxyProtocol.trustedIPs=192.168.2.0/24" # websecure entrypoint 信任的代理网段
|
||||
|
||||
env: # 环境变量注入
|
||||
- name: CF_DNS_API_TOKEN # 供 Traefik 使用的 Cloudflare Token 环境变量名
|
||||
valueFrom: # 从 Secret 挂载
|
||||
secretKeyRef: # Secret 引用方式
|
||||
name: cloudflare-api-token # Secret 名
|
||||
key: api-token # Secret 内 key
|
||||
|
||||
nodeSelector: # 将 Traefik Pod 固定到指定节点(避免 local-path RWO 迁移导致丢数据)
|
||||
kubernetes.io/hostname: ylc61 # 目标节点主机名
|
||||
|
||||
---
|
||||
# 显式 IngressRoute(与 03-01 一致,确保 /dashboard 可达; Helm ingressRoute.dashboard 在 K3s chart 中未必生效)
|
||||
apiVersion: traefik.io/v1alpha1 # IngressRoute API 版本
|
||||
kind: IngressRoute # Traefik 路由 CRD
|
||||
metadata: # IngressRoute 元信息
|
||||
name: traefik-dashboard # 路由名称
|
||||
namespace: kube-system # 命名空间
|
||||
spec: # IngressRoute 规则
|
||||
entryPoints: # 入口点列表
|
||||
- web # 使用 web(HTTP) 入口
|
||||
routes: # 路由规则列表
|
||||
- match: PathPrefix(`/dashboard`) || PathPrefix(`/api`) # 匹配 Dashboard/API 路径前缀
|
||||
kind: Rule # 规则类型
|
||||
services: # 后端服务
|
||||
- name: api@internal # Traefik 内置 API 服务
|
||||
kind: TraefikService # 服务类型
|
||||
|
||||
Reference in New Issue
Block a user