يغطي هذا الدليل الإعدادات الخاصة بالبيئات السحابية لنشر ClickStack على خدمات Kubernetes المُدارة. وللتثبيت الأساسي، راجع دليل النشر الرئيسي باستخدام Helm.
Google Kubernetes Engine (GKE)
عند النشر على GKE، قد تحتاج إلى تعديل بعض القيم بسبب سلوك الشبكات الخاص بالبيئات السحابية.
مشكلة في حلّ أسماء DNS لـ LoadBalancer
قد تتسبب خدمة LoadBalancer في GKE في حدوث مشكلات داخلية في حلّ أسماء DNS، إذ قد يُوجَّه الاتصال بين الكبسولات إلى عناوين IP خارجية بدلًا من أن يبقى داخل شبكة العنقود. ويؤثر ذلك تحديدًا في اتصال OTEL collector بخادم OpAMP.
الأعراض:
- سجلات OTEL collector تُظهر أخطاء "connection refused" مع عناوين IP الخاصة بالعنقود
- فشل في الاتصال بـ OpAMP مثل:
dial tcp 34.118.227.30:4320: connect: connection refused
الحل:
استخدم اسم النطاق المؤهل بالكامل (FQDN) لعنوان URL الخاص بخادم OpAMP:
helm install my-clickstack clickstack/clickstack \
--set hyperdx.frontendUrl="http://your-external-ip-or-domain.com" \
--set hyperdx.config.OPAMP_SERVER_URL="http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"قيم الإعدادات النموذجية لـ GKE
# values-gke.yaml
hyperdx:
frontendUrl: "http://34.123.61.99" # Use your LoadBalancer external IP
config:
OPAMP_SERVER_URL: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "pd-ssd"
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "pd-ssd"
resources:
requests:
storage: 10GiAmazon EKS
بالنسبة إلى عمليات نشر EKS، راعِ هذه التهيئات الشائعة:
# values-eks.yaml
hyperdx:
frontendUrl: "https://hyperdx.yourdomain.com"
ingress:
enabled: true
host: "hyperdx.yourdomain.com"
tls:
enabled: true
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "gp3"
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "gp3"
resources:
requests:
storage: 10Giللاطلاع على تكوينات Ingress لـ AWS ALB، راجع دليل ملفات البيان الإضافية وقيم المثال الخاصة بـ ALB.
Azure AKS
في عمليات النشر على AKS:
# values-aks.yaml
hyperdx:
frontendUrl: "https://hyperdx.yourdomain.com"
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "managed-csi"
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "managed-csi"
resources:
requests:
storage: 10Giقائمة التحقق للنشر السحابي في بيئة الإنتاج
قبل نشر ClickStack في بيئة الإنتاج لدى أي مزوّد خدمة سحابية:
- اضبط
hyperdx.frontendUrlبشكل صحيح باستخدام النطاق/عنوان IP الخارجي - أعدّ Ingress مع TLS للوصول عبر HTTPS
- استبدل عنوان URL لخادم OpAMP باسم نطاق مؤهل بالكامل (FQDN) إذا واجهت مشكلات في الاتصال (خصوصًا على GKE)
- اضبط فئات التخزين لمطالبات وحدات التخزين الخاصة بـ ClickHouse وKeeper
- عيّن طلبات الموارد وحدودها بما يناسب
- فعّل المراقبة والتنبيهات
- اضبط النسخ الاحتياطي والتعافي من الكوارث
- طبّق إدارة الأسرار بشكل صحيح عبر
hyperdx.secretsأو الأسرار الخارجية
أفضل الممارسات لبيئة الإنتاج
إدارة الموارد
hyperdx:
deployment:
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: "2"
memory: 4Gi
otel-collector:
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 200m
memory: 256Miالإتاحة العالية
hyperdx:
deployment:
replicas: 3
topologySpreadConstraints:
- maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
labelSelector:
matchLabels:
app.kubernetes.io/name: clickstack
podDisruptionBudget:
enabled: true
minAvailable: 1التخزين الدائم
تأكد من تهيئة وحدات التخزين الدائمة للاحتفاظ بالبيانات ضمن مواصفات CR الخاصة بالمشغّل:
clickhouse:
keeper:
spec:
dataVolumeClaimSpec:
storageClassName: "fast-ssd"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 5Gi
cluster:
spec:
dataVolumeClaimSpec:
storageClassName: "fast-ssd"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 100Gi
mongodb:
spec:
statefulSet:
spec:
volumeClaimTemplates:
- metadata:
name: data-volume
spec:
storageClassName: "fast-ssd"
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 10Giفئات التخزين الخاصة بـCloud:
- GKE:
pd-ssdأوpd-balanced - EKS:
gp3أوio2 - AKS:
managed-premiumأوmanaged-csi
ملاحظات حول توافق المتصفحات
في عمليات النشر التي تستخدم HTTP فقط (لأغراض التطوير/الاختبار)، قد تعرض بعض المتصفحات أخطاء في واجهة برمجة تطبيقات التشفير بسبب متطلبات السياق الآمن. أما في عمليات النشر في بيئات الإنتاج، فاستخدم دائمًا HTTPS مع شهادات TLS مناسبة من خلال تهيئة Ingress.
راجع تهيئة Ingress للاطلاع على إرشادات إعداد TLS.
الخطوات التالية
- دليل التهيئة - مفاتيح API والأسرار وIngress
- خيارات النشر - تهيئة الأنظمة الخارجية
- دليل الترقية - الترحيل من v1.x إلى v2.x
- ملفات البيان الإضافية - كائنات Kubernetes مخصّصة
- دليل Helm الرئيسي - التثبيت الأساسي
- عمليات النشر على Cloud (v1.x) - إعدادات السحابة لـ v1.x