对齐文件规范
This commit is contained in:
10
ansible/files/05-01/glances-docker-compose.example.yaml
Normal file
10
ansible/files/05-01/glances-docker-compose.example.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
services:
|
||||
glances:
|
||||
image: nicolargo/glances:latest
|
||||
container_name: glances
|
||||
environment:
|
||||
- TZ=Asia/Shanghai
|
||||
- GLANCES_OPT=-w
|
||||
ports:
|
||||
- "61208:61208"
|
||||
restart: unless-stopped
|
||||
6
ansible/files/05-01/homer-glances-item.example.yaml
Normal file
6
ansible/files/05-01/homer-glances-item.example.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
# Homer config.yml fragment example
|
||||
- name: "System Metrics"
|
||||
type: "Glances"
|
||||
icon: "fa-solid fa-heart-pulse"
|
||||
url: "https://glances.example.com"
|
||||
stats: [cpu, mem]
|
||||
92
ansible/files/05-01/homer.yaml
Normal file
92
ansible/files/05-01/homer.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
# 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: # 对该资源的标识信息
|
||||
name: homer # Deployment 名称
|
||||
namespace: homer # 所属命名空间(Pod 也会在该 NS 内)
|
||||
spec: # Deployment 期望状态
|
||||
replicas: 1 # Pod 副本数:这里是 1(单副本更容易配合本地存储等)
|
||||
selector: # Deployment 用于匹配管理 Pod 的条件
|
||||
matchLabels: # 标签匹配:必须与 template.metadata.labels 一致
|
||||
app: homer # 选择带有 app=homer 标签的 Pod
|
||||
template: # Pod 模板:Deployment 会根据该模板创建/更新 Pod
|
||||
metadata: # Pod 的元信息
|
||||
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 官方镜像(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 暴露为稳定的访问入口
|
||||
metadata: # Service 标识
|
||||
name: homer # Service 名称(Ingress/其他对象会引用)
|
||||
namespace: homer # Service 所在命名空间
|
||||
spec: # Service 期望状态
|
||||
selector: # Service 通过标签选择要转发到的 Pod
|
||||
app: homer # 选择 app=homer 的 Pod
|
||||
ports: # Service 暴露端口列表
|
||||
- port: 80 # Service 端口:Ingress/集群访问时用它
|
||||
targetPort: 8080 # 转发目标端口:Pod 容器监听的端口
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1 # Ingress 使用的 API 版本
|
||||
kind: Ingress # 入口资源:对外暴露 HTTP/HTTPS 路由
|
||||
metadata: # Ingress 标识
|
||||
name: homer # Ingress 名称
|
||||
namespace: homer # Ingress 所在命名空间
|
||||
annotations: # 注解:用于 Traefik 等 Ingress Controller 的额外配置
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: web # Traefik 路由使用的 entrypoint(HTTP)
|
||||
spec: # Ingress 规则
|
||||
rules: # 主机/路径规则列表
|
||||
- host: home.example.com # 要匹配的域名(按需修改)
|
||||
http: # HTTP 路由规则
|
||||
paths: # 路径匹配列表
|
||||
- path: / # 匹配根路径及其子路径
|
||||
pathType: Prefix # Prefix 表示前缀匹配
|
||||
backend: # 匹配到后端目标
|
||||
service: # 使用 Service 作为后端
|
||||
name: homer # 后端 Service 名称
|
||||
port: # 后端端口配置
|
||||
number: 80 # 后端 Service 端口
|
||||
|
||||
Reference in New Issue
Block a user