NOM 代理作为 Sidecar
NOM 代理可以在 Kubernetes 集群中与 Neo4j 实例位于同一 Pod 中作为 Sidecar 容器部署。代理 Sidecar 不需要使用官方代理镜像。代理可以简单地在轻量级 Linux 基于容器中运行,例如 `alpine`。代理二进制文件可以被安装到容器中,也可以从 Neo4j 镜像中提取,使用一个初始化容器。
代理 Sidecar 容器无法访问 Neo4j Pod 使用的所有资源以及集群节点的主机指标。例如,对于磁盘使用情况指标,代理需要访问 Neo4j Pod 使用的文件系统或持久卷。这些需要被安装到代理 Daemon Pod 中。代理 Sidecar 只能报告其自身包含环境的主机指标,这并非集群节点资源使用情况的完整视图。 |
以下是 Neo4j Helm 图表的示例 `values.yaml` 文件,其中配置了 NOM 代理 Sidecar
values.sidecar.yaml
neo4j:
name: single-instance
edition: "enterprise"
password: "passw0rd"
acceptLicenseAgreement: "yes"
volumes:
data:
mode: defaultStorageClass
config:
metrics.prometheus.enabled: "true"
metrics.filter: "*"
additionalVolumes:
- name: agent-bin
emptyDir: {}
additionalVolumeMounts:
- name: agent-bin
mountPath: /agent/bin
podSpec:
initContainers:
- name: agent-extractor
image: neo4j:enterprise
command:
- "/bin/bash"
- "-c"
- "tar -xvzf products/neo4j-ops-manager-agent-*-linux-amd64.tar.gz --strip-components 1 && ls && mv bin/agent /agent/bin/agent"
volumeMounts:
- name: agent-bin
mountPath: /agent/bin
containers:
- name: nom-agent
image: alpine
command:
- "/agent/bin/agent"
- "console"
env:
- name: CONFIG_SERVER_GRPC_ADDRESS
value: "server:9091"
- name: CONFIG_SERVER_HTTP_ADDRESS
value: "https://server:8080"
- name: CONFIG_TLS_TRUSTED_CERTS
value: "/certificates/certs/ca-chain.pem"
# - name: CONFIG_TLS_CLIENT_CERT
# value: "/certificates/agent.cert.pem"
# - name: CONFIG_TLS_CLIENT_KEY
# value: "/certificates/agent.key.pem"
- name: CONFIG_AGENT_NAME
value: "nom-agent"
- name: CONFIG_AGENT_DESCRIPTION
value: "an agent from helm chart"
- name: CONFIG_LOG_LEVEL
value: "debug"
- name: CONFIG_INSTANCE_1_NAME
value: "side-car-agent"
- name: CONFIG_INSTANCE_1_BOLT_URI
value: "neo4j://localhost:7687"
- name: CONFIG_INSTANCE_1_BOLT_USERNAME
value: "neo4j"
- name: CONFIG_INSTANCE_1_BOLT_PASSWORD
value: "passw0rd"
- name: CONFIG_INSTANCE_1_QUERY_LOG_PORT
value: "9500"
- name: CONFIG_INSTANCE_1_LOG_CONFIG_PATH
value: "/var/lib/neo4j/conf/server-logs.xml"
- name: CONFIG_INSTANCE_1_QUERY_LOG_MIN_DURATION
value: "100"
volumeMounts:
- name: agent-bin
mountPath: /agent/bin