如果你想要为此文档做出贡献,可参考以下说明。
1. 文档编写指南
-
所有文档需使用 AsciiDoc 编写。
-
对于代码块内容需单独保存至文件,并使用
include::path/to/file[]
引入。 -
过长的代码块需要用折叠块折叠。
-
所有文档均需要有简单的测试说明。
-
对于引用他人文档需避免版权问题,且需要在文档末尾注明引用来源。
-
编写的文档需要在
MENU.adoc
内存在引用菜单。 -
如果需要拉取镜像则需要在文档内注明所需的镜像地址,方便读者离线部署。
-
所有从网络加载的
kubernetes
的yaml
配置文件均需在本地留有备份 (仅可修改 namespace)。 -
请不要使用 Helm 部署。
2. 命名规范
-
所有资源命名采用小写 + 中划线
-
资源名称头部需带上资源类型完整名称或缩写+项目类型名称,例如 Redis 所需要的持久卷应当命名为
pvc-redis
;如果需挂载多个持久卷则可以继续拼接 ,例如pvc-redis-data
、pvc-redis-rdb
。
3. 注意事项
-
请 不要使用任何闭源的软件或镜像。
-
所有组件除特殊说明的除外均为单实例部署,系统内所有账户尽量采用LDAP来统一管理。
-
避免使用超过一年未更新的镜像(有特殊说明的除外)。
-
尽量避免使用
bitnami
打包的镜像。 -
对于 Java 相关的应用部署,需仔细审核依赖,避免引入带 Log4Shell 漏洞的镜像。
4. 变量参考
文档引入了 变量功能,方便动态渲染内容,文档中所使用到的变量如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
################# Global ###############################
# config-map 和 secrets 共享的命名空间
var.global.shared-namespace=kube-system,default,core-system,core-middleware,core-app,share-app,monitor-app,dev-ops
# 使用 NFS 创建 PV 时关联的存储节点
var.nfs.local-path.node-name=node-master
# 部署时使用的存储类对象(数据安全大于性能)
var.storage.class.security=sc-nfs-share
# 部署时使用的存储类对象(对数据安全性无太大要求)
var.storage.class.fast=sc-nfs-share
# 管理员邮箱
var.info.email=admin@cluster.local
##################### CertManager #################
# 部署的公开二级域名
var.global.public.host=d7z.net
# 公开域名的TLS证书名称 (不要超过15个字符)
var.global.public.tls-name=tls-pub-d7z
# 公开的域名名称
var.global.public.hostname=d7z-net
# 部署的私有二级域名
var.global.private.host=internal.d7z.net
# 私有域名的TLS证书名称 (不要超过15个字符)
var.global.private.tls-name=tls-pri-d7z
# 私有的域名名称
var.global.private.hostname=internal-d7z-net
##################### Ingress #####################
# 内部网络使用的 Ingress Class
var.ingress.class.private=nginx-private
# 外部网络使用的 Ingress Class
var.ingress.class.public=nginx-public
#################### Cert Manager #########################
# 你CF账户的邮箱
var.cloudflare.email=<请填写你的 CloudFlare 账户邮箱信息>
# 你CF账户的 API Token值
var.cloudflare.api.token=<请填写你的 CloudFlare 账户的Token值>
###################### Metallb #########################
# Metallb 标记的 public 共享IP标记
var.load-balancer.public-ip-tag=public-ip-share
# Metallb 标记的 private 共享IP标记
var.load-balancer.private-ip-tag=private-ip-share
# LoadBalancer 可用的地址
var.load-balancer.addrs=10.0.0.5-10.0.0.9
################### Gitlab ###############################
# Gitlab 管理员密码
var.gitlab.root.password=gitlab-root-password
# Gitlab 数据库 secrets ,可使用 `pwgen -Bsv1 64` 生成
var.gitlab.db-secrets=long-and-random-alpha-numeric-string
# Gitlab 会话 secrets
var.gitlab.session-secrets=long-and-random-alpha-numeric-string
# Gitlab 2FA secrets
var.gitlab.otp-secrets=long-and-random-alpha-numeric-string
# Gitlab Pages secrets
var.gitlab.pages-secrets=long-and-random-alpha-numeric-string
# Gitlab CI Runner Token
var.gitlab.ci.token=<请填写 Gitlab CI 的 Token>
################## Postgres ##############################
# Postgres 管理员密码
var.postgres.password=postgres-admin-password
################## MariaDB ##############################
# MariaDB 管理员密码
var.mariadb.password=mysql-root-password
################## Elastic Search #######################
# Elastic 管理员密码
var.elastic.password=elastic-admin-password
################# Redis ################################
# Redis 管理员密码
var.redis.password=redis-password
################ LDAP ##################################
# LDAP 默认用户名
var.ldap.admin.username=admin
# LDAP 管理员密码
var.ldap.admin.password=admin
################ Grafana ##################################
# Grafana 管理员账户信息
var.grafana.admin.user=admin
# Grafana 管理员密码
var.grafana.admin.password=grafana-admin-password
################# Harbor #################################
# Harbor 管理员密码
var.harbor.admin.password=harbor-admin-password
# Harbor Postgres 地址
var.harbor.postgres.host=svc-postgres.core-middle.svc.cluster.local
# Harbor Postgres 端口
var.harbor.postgres.port=5432
# Harbor Postgres 用户名
var.harbor.postgres.username=harbor
# Harbor Postgres 密码
var.harbor.postgres.password=harbor_password
# Harbor secret
var.harbor.secret.core=please_replace_this_to_random_data
# Harbor csrf secret
var.harbor.secret.csrf=please_replace_this_to_random_data
# Harbor job secret
var.harbor.secret.job=please_replace_this_to_random_data
# Harbor http secret
var.harbor.secret.http=please_replace_this_to_random_data
# Harbor credential user
var.harbor.credential.username=harbor_registry_user
# Harbor credential pass
var.harbor.credential.password=harbor_registry_password
# Harbor credential htpasswd
# 使用 htpasswd -nb {{var.harbor.credential.username}} {{var.harbor.credential.password}} 生成对应的配置
var.harbor.credential.htpasswd=harbor_registry_user:$2a$10$WktPbZNT.O/vjv/Y0k.UbuLwxsvddxai/qGu7Kw2TawemGkG2l4H6
# trivy 拉取配置时使用的 token
var.harbor.trivy.github.token=
# 跳过更新标志以禁用从 GitHub 下载 Trivy DB
var.harbor.trivy.offline-scan=false
# 阻止 Trivy 发送 API 请求来识别依赖关系。
var.harbor.trivy.skip-update=false
# 跳过证书验证
var.harbor.trivy.insecure=false
############################### MinIO #################################
# MinIO 管理员账户
var.minio.admin.account=minio
# MinIO 管理员密码
var.minio.admin.password=minio123
############################# V2ray ###################################
# V2ray 客户端 UUID
v2ray.uuid=75aa04d6-3e00-11ed-807a-373594a59655
# V2ray 子域名名称
v2ray.url.name=api
# V2ray websocket 路径
v2ray.location=/api/info
如果在文档下引用变量可使用 {{}}
将变量名称包裹,例如 {{user.dir}}
。