使用 Helm 自托管
对应的官方文档地址
本文将指导您完成使用 Helm 图表在不同 Kubernetes 部署中安装和部署 Bitwarden 的过程。
本文将描述在 Kubernetes 上托管 Bitwarden 的通用步骤。提供了特定于提供商的指南,可帮助您深入了解如何根据每个提供商的特定产品来更改部署:
要求
在继续安装之前,请确保满足以下要求:
已安装 kubectl。
已安装 Helm 3。
您拥有 SSL 证书和密钥,或者可以通过证书提供商创建 SSL 证书和密钥。
您拥有 SMTP 服务器或可以访问云 SMTP 提供商。
一个支持 ReadWriteMany 的存储类。
您有一个从 https://bitwarden.com/host 获取到的安装 ID 和密钥。
准备图表
将存储库添加到 Helm
使用以下命令将存储库添加到 Helm:
创建命名空间
创建一个命名空间来部署 Bitwarden。我们的文档假定名称空间名为 bitwarden
,因此如果您选择不同的名称,请务必修改相应的命令。
创建配置
使用以下命令创建一个 my-values.yaml
配置文件,您将使用该文件来自定义部署:
您必须在 my-values.yaml
文件中至少配置以下值:
创建机密对象
创建一个 Kubernetes 机密对象,至少设置以下值:
使用 kubectl create secret
命令设置这些值的示例将如下所示:
此示例将命令记录到您的 shell 历史记录中。可以考虑使用其他方法来安全地设置机密。
不要忘记将 secrets.secretName:
中的值设置为 my-values.yaml
中创建的机密的名称,在本例中为 custom-secret
。
证书设置示例
部署需要 TLS 证书和密钥,或者通过证书提供商创建一个。以下示例将引导您使用 cert-manager 生成一个由 Let's Encrypt 签发的证书:
1、使用以下命令在集群上安装 cert-manager:
2、定义证书颁发者。在您的 DNS 记录指向您的集群之前,Bitwarden 建议在此示例中使用暂存配置。请务必将占位符 email:
替换为有效值:
3、如果还没有的话,请确保在 my-values.yaml
中设置 general.ingress.cert.tls.name:
和 general.ingress.cert.tls.clusterIssuer:
的值。在这个例子中,您需要设置为:
general.ingress.cert.tls.name: tls-secret
general.ingress.cert.tls.clusterIssuer: letsencrypt-staging
添加 rawManifest 文件
Bitwarden 自托管 Helm 图表允许您在安装之前或之后包含其他 Kubernetes 清单文件。为此,请更新图表的 rawManifests
部分(了解更多)。例如,在您想使用除默认定义的 nginx 控制器以外的其他入口控制器的情况下,这非常有用。
安装图表
要使用 my-values.yaml
中的配置安装 Bitwarden,请运行以下命令:
恭喜!Bitwarden 现已移动并在 https://your.domain.com
正常运行了,正如在 my-values.yaml
中所定义的那样。请在浏览器中访问网页密码库以确认其正在运行。您现在可以注册一个新账户然后登录。
您需要设置 SMTP 配置和相关的机密信息,以便验证您的新账户的电子邮件。
下一步
数据库备份与恢复
在此仓库中,我们提供了两个示例作业,用于在 Bitwarden 数据库 Pod 中备份和恢复数据库。如果您正在使用的是未作为此 Helm 图表的一部分部署的自己的 SQL Server 实例,请遵循您公司的备份和恢复策略。
数据库备份和备份策略最终由实施者决定。备份可以在集群之外按照一定的时间间隔进行调度,也可以修改为在 Kubernetes 中创建 CronJob 对象进行调度。
备份工作将为以前的备份创建带有时间戳的版本。当前备份简单地称为 vault.bak
。这些文件放在 MS SQL 备份持久卷中。还原任务将在同一持久卷中查找 vault.bak
。
最后更新于