الانتقال إلى المحتوى الرئيسي
إصدار المخطط 2.xتوثّق هذه الصفحة مخطط Helm v2.x المعتمد على المخططات الفرعية. إذا كنت لا تزال تستخدم مخطط inline-template بالإصدار v1.x، فراجع عمليات النشر السحابية باستخدام Helm (v1.x). للاطلاع على خطوات الترحيل، راجع دليل الترقية.
يغطي هذا الدليل الإعدادات الخاصة بالبيئات السحابية لنشر 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: 10Gi

Amazon 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.

الخطوات التالية

آخر تعديل في ٢٥ يونيو ٢٠٢٦