يغطي هذا الدليل الإعدادات الخاصة بالسحابة لنشر ClickStack على خدمات Kubernetes المُدارة. للتثبيت الأساسي، راجع دليل النشر الأساسي باستخدام Helm.
Google Kubernetes Engine (GKE)
عند النشر على GKE، قد تحتاج إلى تعديل بعض القيم بسبب سلوك الشبكات الخاص بالسحابة.
مشكلة في حل أسماء DNS لـ LoadBalancer
قد تتسبب خدمة LoadBalancer في GKE في حدوث مشكلات داخلية في حل أسماء DNS، بحيث يُوجَّه الاتصال بين الكبسولات إلى عناوين IP خارجية بدلًا من أن يبقى داخل شبكة العنقود. يؤثر ذلك تحديدًا في اتصال OTel collector بـ OpAMP server.
الأعراض:
- سجلات OTel collector تعرض أخطاء "connection refused" مع عناوين IP الخاصة بالعنقود
- حالات فشل في اتصال OpAMP مثل:
dial tcp 34.118.227.30:4320: connect: connection refused
الحل:
استخدم الاسم المؤهل بالكامل للنطاق (FQDN) في عنوان URL الخاص بـ OpAMP server:
helm install my-clickstack clickstack/clickstack \
--set hyperdx.frontendUrl="http://your-external-ip-or-domain.com" \
--set otel.opampServerUrl="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
otel:
opampServerUrl: "http://my-clickstack-clickstack-app.default.svc.cluster.local:4320"
# Adjust for GKE pod networking if needed
clickhouse:
config:
clusterCidrs:
- "10.8.0.0/16" # GKE commonly uses this range
- "10.0.0.0/8" # Fallback for other configurationsAmazon EKS
في عمليات نشر EKS، راعِ هذه التكوينات الشائعة:
# values-eks.yaml
hyperdx:
frontendUrl: "http://your-alb-domain.com"
# EKS typically uses these pod CIDRs
clickhouse:
config:
clusterCidrs:
- "192.168.0.0/16"
- "10.0.0.0/8"
# Enable ingress for production
hyperdx:
ingress:
enabled: true
host: "hyperdx.yourdomain.com"
tls:
enabled: trueAzure AKS
بالنسبة إلى عمليات النشر على AKS:
# values-aks.yaml
hyperdx:
frontendUrl: "http://your-azure-lb.com"
# AKS pod networking
clickhouse:
config:
clusterCidrs:
- "10.244.0.0/16" # Common AKS pod CIDR
- "10.0.0.0/8"قائمة التحقق لنشر Cloud في بيئة الإنتاج
قبل نشر ClickStack في بيئة الإنتاج على أي موفّر سحابي:
- اضبط
frontendUrlبشكل صحيح باستخدام نطاقك أو عنوان IP الخارجي - أعدّ مورد Ingress مع TLS للوصول عبر HTTPS
- استبدل قيمة
otel.opampServerUrlباستخدام FQDN إذا واجهت مشاكل في الاتصال (خصوصًا على GKE) - عدّل
clickhouse.config.clusterCidrsليتوافق مع CIDR الخاص بشبكة الـpod لديك - اضبط التخزين الدائم لأعباء العمل في بيئة الإنتاج
- عيّن طلبات الموارد وحدودها بما يناسب
- فعّل المراقبة والتنبيهات
- اضبط النسخ الاحتياطي والتعافي من الكوارث
- طبّق إدارة الأسرار بالشكل المناسب
أفضل الممارسات لبيئة الإنتاج
إدارة الموارد
hyperdx:
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 2000m
memory: 4Giالإتاحة العالية
hyperdx:
replicaCount: 3
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- clickstack
topologyKey: kubernetes.io/hostnameالتخزين الدائم
تأكّد من تهيئة وحدات التخزين الدائمة للاحتفاظ بالبيانات:
clickhouse:
persistence:
enabled: true
size: 100Gi
storageClass: "fast-ssd" # Use cloud-specific storage classفئات التخزين الخاصة بكل بيئة سحابية:
- GKE:
pd-ssdأوpd-balanced - EKS:
gp3أوio2 - AKS:
managed-premiumأوmanaged-csi
ملاحظات حول توافق المتصفحات
في عمليات النشر التي تستخدم HTTP فقط (للتطوير/الاختبار)، قد تظهر بعض المتصفحات أخطاء في crypto API بسبب متطلبات السياق الآمن. أما في عمليات النشر في بيئة الإنتاج، فاستخدم دائمًا HTTPS مع شهادات TLS مناسبة من خلال إعداد Ingress.
راجع إعداد Ingress للحصول على إرشادات إعداد TLS.
الخطوات التالية
- دليل التهيئة (v1.x) - مفاتيح API، والأسرار، وIngress
- خيارات النشر (v1.x) - تهيئة الأنظمة الخارجية
- دليل Helm الأساسي (v1.x) - التثبيت الأساسي
- عمليات النشر السحابية (v2.x) - دليل السحابة للإصدار v2.x
- دليل الترقية - الترحيل من v1.x إلى v2.x