Helm部署
你可以使用 n9e helm chart 在 Kubernetes 集群中运行夜莺。
默认的夜莺用户名是 root,密码是 root.2020。
不过,我们不建议您把夜莺部署到 Kubernetes 中,因为监控系统太过重要,如果 Kubernetes 集群出现问题,可能会导致监控系统无法正常工作。而此时您可能希望通过监控数据排查 Kubernetes 的问题,导致循环依赖。尤其是,其他团队此时想使用监控系统发现用不了,可能会来怼你。
获取 repo
git clone https://github.com/flashcatcloud/n9e-helm.git |
配置chart
以下配置项可以在安装时通过 --set传入 或者 直接编辑 values.yaml
配置暴露夜莺服务的方式
- Ingress: k8s集群中必须已经安装了ingress controller
- ClusterIP: 通过集群的内部 cluster ip 暴露服务,选择该值时服务只能够在集群内部访问。
- NodePort: 通过每个节点上的 IP 和静态端口(NodePort)暴露服务。在集群外通过
NodeIP:NodePort访问夜莺服务。 - LoadBalancer: 使用云提供商的负载均衡器向外部暴露服务。
配置夜莺服务使用TLS
enabled: 是否使用tls方式。如果
expose.type为ingress并且enabled为false时,记得删除expose.ingress.annotations中的ssl-redirect annotations。certSource
: TLS证书来源。 可选项为auto,secret,none。
- auto: 自动生成TLS证书。
- commonName: 用于生成证书的CN, 如果
expose.type不是ingress, 此项必须填写。
- commonName: 用于生成证书的CN, 如果
- secret: 从特定的secret中读取证书信息。TLS证书可以手动生成,或通过cert manager生成。
- secretName: secret的名字,必须包含以下两个key的内容
- tls.crt: 证书内容
- tls.key: 私钥内容
- secretName: secret的名字,必须包含以下两个key的内容
- none: 不使用TLS证书(ingress模式)。 如果 ingress controller配置了默认的TLS证书, 使用此选项。
- auto: 自动生成TLS证书。
配置external URL
external URL主要用于访问夜莺web服务
格式: protocol://domain[:port]。 通常:
- 如果通过
Ingress暴露服务,domain应该配置为expose.ingress.hosts.web - 如果通过
ClusterIP暴露服务,domain应该配置为expose.clusterIP.name - 如果通过
NodePort暴露服务,domain应该配置为 k8s 集群内node的IP - 如果通过
LoadBalancer暴露服务,domain应该配置为从云提供商那里获取到的域名的CNAME(自有域名作为提供商域名的cname)
注意:
- 如果夜莺部署在proxy之后,那
domain设置为proxy的URL - 夜莺web服务的初始用户名为
root,初始密码为root.2020
配置持久化存储
- Disable: 关闭持久存储,pod生命周期结束后,数据消失。
- Persistent Volume Claim(default): 需要设置
StorageClass以便k8s提供动态卷支持。 如果已有持久卷, 就配置到existingClaim
安装chart
使用 nightingale 名称进行安装:
helm install nightingale ./n9e-helm -n n9e --create-namespace |
卸载
卸载/删除 nightingale:
helm uninstall nightingale -n n9e |