يغطي هذا الدليل خيارات النشر المتقدمة لـ ClickStack باستخدام Helm. وللتثبيت الأساسي، راجع دليل النشر الرئيسي باستخدام Helm.
نظرة عامة
يدعم مخطط Helm الخاص بـ ClickStack عدة إعدادات للنشر:
- المكدس الكامل (الافتراضي) — جميع المكوّنات مضمنة وتُدار بواسطة المشغّلات
- ClickHouse خارجي — استخدام عنقود ClickHouse موجود
- OTel collector خارجي — استخدام بنية OTel التحتية الحالية
- النشر بالحد الأدنى — HyperDX فقط، مع تبعيات خارجية
ClickHouse خارجي
إذا كان لديك عنقود ClickHouse قائم بالفعل (بما في ذلك ClickHouse Cloud)، فيمكنك تعطيل ClickHouse المضمّن والاتصال بالمثيل الخارجي لديك.
الخيار 1: إعداد مضمن (للتطوير/الاختبار)
استخدم هذا الأسلوب للاختبار السريع أو في البيئات غير الإنتاجية. قدِّم تفاصيل الاتصال عبر hyperdx.config وhyperdx.secrets:
# values-external-clickhouse.yaml
clickhouse:
enabled: false # Disable the operator-managed ClickHouse
hyperdx:
secrets:
CLICKHOUSE_PASSWORD: "your-password"
CLICKHOUSE_APP_PASSWORD: "your-password"
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]ثبّت باستخدام هذا الإعداد:
helm install my-clickstack clickstack/clickstack -f values-external-clickhouse.yamlالخيار 2: Secret الخارجي (موصى به لبيئات الإنتاج)
في عمليات النشر في بيئات الإنتاج، إذا كنت تريد إبقاء بيانات الاعتماد منفصلة عن إعدادات Helm:
أنشئ ملفات الإعداد الخاصة بك
# Create connections.json
cat <<EOF > connections.json
[
{
"name": "Production ClickHouse",
"host": "https://your-production-clickhouse.com",
"port": 8123,
"username": "hyperdx_user",
"password": "your-secure-password"
}
]
EOF
# Create sources.json
cat <<EOF > sources.json
[
{
"from": {
"databaseName": "default",
"tableName": "otel_logs"
},
"kind": "log",
"name": "Logs",
"connection": "Production ClickHouse",
"timestampValueExpression": "TimestampTime",
"displayedTimestampValueExpression": "Timestamp",
"implicitColumnExpression": "Body",
"serviceNameExpression": "ServiceName",
"bodyExpression": "Body",
"eventAttributesExpression": "LogAttributes",
"resourceAttributesExpression": "ResourceAttributes",
"severityTextExpression": "SeverityText",
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId"
},
{
"from": {
"databaseName": "default",
"tableName": "otel_traces"
},
"kind": "trace",
"name": "Traces",
"connection": "Production ClickHouse",
"timestampValueExpression": "Timestamp",
"displayedTimestampValueExpression": "Timestamp",
"implicitColumnExpression": "SpanName",
"serviceNameExpression": "ServiceName",
"traceIdExpression": "TraceId",
"spanIdExpression": "SpanId",
"durationExpression": "Duration"
}
]
EOFأنشئ Kubernetes secret
kubectl create secret generic hyperdx-external-config \
--from-file=connections.json=connections.json \
--from-file=sources.json=sources.json
# Clean up local files
rm connections.json sources.jsonتهيئة Helm لاستخدام Secret
# values-external-clickhouse-secret.yaml
clickhouse:
enabled: false
hyperdx:
useExistingConfigSecret: true
existingConfigSecret: "hyperdx-external-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-external-clickhouse-secret.yamlاستخدام ClickHouse Cloud
أما بالنسبة إلى ClickHouse Cloud تحديدًا:
# values-clickhouse-cloud.yaml
clickhouse:
enabled: false
hyperdx:
secrets:
CLICKHOUSE_PASSWORD: "your-cloud-password"
CLICKHOUSE_APP_PASSWORD: "your-cloud-password"
useExistingConfigSecret: true
existingConfigSecret: "clickhouse-cloud-config"
existingConfigConnectionsKey: "connections.json"
existingConfigSourcesKey: "sources.json"OTel collector خارجي
إذا كانت لديك بنية تحتية حالية لـ OTel collector، فعطّل المخطط الفرعي:
# values-external-otel.yaml
otel-collector:
enabled: false # Disable the subchart OTEL collector
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"helm install my-clickstack clickstack/clickstack -f values-external-otel.yamlللاطلاع على إتاحة نقاط نهاية OTEL collector عبر Ingress، راجع تهيئة Ingress.
النشر بالحد الأدنى
بالنسبة للمؤسسات التي لديها بنية تحتية قائمة، انشر HyperDX فقط:
# values-minimal.yaml
clickhouse:
enabled: false
otel-collector:
enabled: false
hyperdx:
otelExporterEndpoint: "http://your-otel-collector:4318"
# Option 1: Inline (for testing)
defaultConnections: |
[
{
"name": "External ClickHouse",
"host": "http://your-clickhouse-server:8123",
"port": 8123,
"username": "your-username",
"password": "your-password"
}
]
# Option 2: External secret (production)
# useExistingConfigSecret: true
# existingConfigSecret: "my-external-config"
# existingConfigConnectionsKey: "connections.json"
# existingConfigSourcesKey: "sources.json"helm install my-clickstack clickstack/clickstack -f values-minimal.yamlالخطوات التالية
- دليل الإعداد - مفاتيح API والأسرار وإعداد Ingress
- عمليات النشر على Cloud - إعدادات خاصة بـ GKE وEKS وAKS
- دليل الترقية - الترحيل من v1.x إلى v2.x
- ملفات manifest إضافية - كائنات Kubernetes مخصّصة
- دليل Helm الرئيسي - التثبيت الأساسي
- خيارات النشر (v1.x) - خيارات النشر للإصدار v1.x