helm安装Nightingale
Helm Chart for Nightingale
中文 | English
简介
n9e-helm 用于在k8s集群中安装Nightingale, 欢迎参与。
本仓库主要关注夜莺的chart。关于夜莺功能性的issue 请移步 didi/nightingale
前置依赖
- Kubernetes cluster 1.20+
- Helm v3.2.0+
安装
获取 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
本作品采用《CC 协议》,转载必须注明作者和本文链接