如果你想要为此文档做出贡献,可参考以下说明。

1. 文档编写指南

  1. 所有文档需使用 AsciiDoc 编写。

  2. 对于代码块内容需单独保存至文件,并使用 include::path/to/file[] 引入。

  3. 过长的代码块需要用折叠块折叠。

  4. 所有文档均需要有简单的测试说明。

  5. 对于引用他人文档需避免版权问题,且需要在文档末尾注明引用来源。

  6. 编写的文档需要在 MENU.adoc 内存在引用菜单。

  7. 如果需要拉取镜像则需要在文档内注明所需的镜像地址,方便读者离线部署。

  8. 所有从网络加载的 kubernetesyaml 配置文件均需在本地留有备份 (仅可修改 namespace)。

  9. 请不要使用 Helm 部署。

2. 命名规范

  1. 所有资源命名采用小写 + 中划线

  2. 资源名称头部需带上资源类型完整名称或缩写+项目类型名称,例如 Redis 所需要的持久卷应当命名为 pvc-redis;如果需挂载多个持久卷则可以继续拼接 ,例如 pvc-redis-datapvc-redis-rdb

3. 注意事项

  1. 不要使用任何闭源的软件或镜像

  2. 所有组件除特殊说明的除外均为单实例部署,系统内所有账户尽量采用LDAP来统一管理。

  3. 避免使用超过一年未更新的镜像(有特殊说明的除外)。

  4. 尽量避免使用 bitnami 打包的镜像。

  5. 对于 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}}