k8s 安装 mailu 个人邮局
镜像支持 arm64和amd64
配置文件以dnspod(腾讯云api)的验证方式来生成 ssl证书。
配置文件中的
--pod-network-cidr
为172.16.0.0/12,fc00::/48
。支持ipv4、ipv6双栈。例如在家里树莓派上的k8s上安装 邮局, 邮件数据、mysql等存储在 mycloud、群晖 等支持nfs的nas
- kubernetes(kubelete、kubectl、kubeadm) >= 1.23 安装参考
- helm >=v3.9 安装参考
- mysql >= 5.7
- cert-manager >= 1.19 安装参考
- cert-manager-webhook-dnspod 插件 安装参考
- ip-masq-agent 使pod能访问ipv6公网 安装参考
- nfs 后端存储
- 一个dns解析器(支持dnsesc,采用dot防污染的方式获取解析,邮件验证会用到)
- 创建命名空间:
- 执行
kubectl apply -f namespace.yaml
- 执行
- 创建自定义dns配置(如果已经安装过这个,可以跳过):
- 修改
dns-custom.yaml
:kube-ipam.ip
、cni.projectcalico.org/ipAddrs
的ip地址,用来固定这个pod的ip,防止重启后ip变了。确保这个ip在你的 pod ip池中就行COREDNS
的参数为 当前k8s环境的coredns的真实地址。
- 执行
kubectl apply -f dns-custom.yaml
- 修改
- 创建 nfs的 storageClass:
- 修改
nfs.sh
中的nfs地址和路径。 - 执行
bash nfs.sh
来初始化nfs的存储
- 修改
- 创建 pvc 存储:
- 修改
pvc.yaml
中的配置。需要修改里面的 nfs地址、路径、存储大写限制。 - 执行
kubectl apply -f pvc.yaml
- 修改
- 修改
mailu-mailserver.yaml
文件- dns: 如果调整过
dns-custom.yaml
中的 ip地址,则需要将mailu-mailserver.yaml
中的172.16.119.119
改成你配置的 ip - config-common 这个 ConfigMap 的修改(配置文件拉到最下面,倒数第二大块):
HOSTNAMES
改成你自己用到的相关域名DOMAIN
改成你自己的根域名, 也就是邮箱 '@' 后面那部分。SECRET_KEY
自行修改SITENAME
改成你自己想要的名字WEBSITE
改成你自己的地址REAL_IP_FROM
改成 你自己的本地网段- "Database settings" 部分改成你的数据库配置。mailu的和ROUNDCUBE的建议分别建立成两个不一样的库。
mailu-certificates
配置文件最末尾的这个证书申请配置的修改,域名换成你自己的。mailu-ingress
ingress 配置的修改。配置文件倒数第三个。里面所有的域名 换成你自己的。
- dns: 如果调整过
- 安装 mailu:
- 执行
kubectl apply -f mailu-mailserver.yaml
- 执行
- 删除 mailu:
- 执行
kubectl delete -f mailu-mailserver.yaml
- 执行
- 删 pvc:
- 执行
kubectl delete -f pvc.yaml
- 执行
- 删 nfs存储配置
- 执行
helm uninstall mailu-nfs -n mailu-mailserver
- 执行