الترقيات
Kubernetes
تستخدم عمليات Kubernetes بعد النشر واجهة سطر الأوامر
helm على محطة عملك. لا يتضمن عميل Helm مدمجًا سوى init، لذا ثبّت helm قبل أول ترقية.init:
v (يتوافق مخطط بالإصدار X.Y.Z مع الوسم vX.Y.Z). يشير مخطط المنشور مسبقاً إلى image الحاوية العامة، لذا لا تتطلب عمليات التثبيت والترقية العادية قيماً لـ image. وللاطلاع على القيم الافتراضية لـ مخطط، شغّل helm show values clicklink-connector --repo https://releases.clicklink.clickhouse.com/charts. يعمل المنفّذ بنسخة replica واحدة باستخدام strategy الخاصة بـ Recreate، لذا تؤدي الترقية إلى قطع اتصاله لفترة وجيزة. راجع عندما يكون موصل غير متصل لمعرفة ما يحدث للأوامر خلال تلك المدة.
لا يتوفر لعملية التثبيت من مرجع مخطط مباشر (oci:// أو URL أو أرشيف أو دليل محلي) repository يمكن الرجوع إليه لحل المرجع. أعد تشغيل helm upgrade clicklink-connector <same-chart-reference> بالإصدار الجديد بدلاً من ذلك. كما أن إعادة تشغيل init باستخدام واجهة سطر أوامر أحدث توصل إلى الحالة المطلوبة، لكنها تحتاج إلى نقطة دخول: --handoff إذا احتفظت بـ bundle، أو رمز تسجيل جديد مع --force بعد التنظيف الموثّق. ويُعد helm upgrade المذكور أعلاه المسار المعتاد (راجع إعادة التشغيل والتعافي).
Linux VM
أعِد تشغيل برنامج التثبيت على المضيف. إذ سيُنزّل الإصدار الأحدث ويتحقق منه كما فعل أثناء الإعداد الأولي. وسيُنشئ نسخة احتياطية من الملف التنفيذي السابق، ويثبّت وحدات systemd الحالية، مع الاحتفاظ بأنماط الإخفاء وملف البيئة النشطين لديك. ثم أعد تشغيل البرامج الخفية:--version vX.Y.Z إلى أمر التثبيت.
الحالة الصحية
توفّر كل برنامج خفي نقطة نهاية/livez على منفذ الحالة الصحية الخاص بها. ومؤشر الحالة الصحية هو حقل JSON status في جسم الاستجابة، وليس رمز حالة HTTP. تُوفَّر مقاييس Prometheus على المسار /metrics على المنفذ نفسه؛ ولا يوجد منفذ مقاييس منفصل. المنافذ الافتراضية لكلا الهدفين:
يوفّر المنفّذ أيضًا واجهة برمجة تطبيقات الأوامر المحلية الخاصة به على
127.0.0.1:9999. وهي لا تتضمن أي مصادقة خاصة بها ولا تُعرَض أبدًا خارج المضيف أو الـpod؛ وتصل إليها أوامر الخدمة clicklink clctl محليًا.
عند تمكين جلسات الدعم، تستمع البوابة أيضًا على المنفذ 8443: باستخدام TLS موقّع ذاتيًا على جهاز افتراضي، أو HTTP محلي ضمن الـpod خلف kubectl port-forward، أو Ingress ينهي TLS على Kubernetes.
على جهاز افتراضي، شغّل مجموعة الفحوصات الكاملة في أي وقت:
2 إذا فشل أي فحص.
الشهادات
يجدد الموصل شهادة العميل الخاصة به. يتحقق كل من الساحب ومستكشف الأخطاء ومصلحها والمنفّذ من الشهادة الطرفية كل 12 ساعة ويجددها عند تبقي 10 أيام على انتهاء صلاحيتها. يعيد التجديد شهادة طرفية صالحة لمدة 30 يوماً عبر قناة mTLS الحالية الموثقة باستخدام HMAC، لذا لا يلزم اتخاذ أي إجراء من قِبل المشغّل. في Kubernetes، يكتب البرنامج الخفي الشهادة الطرفية المجددة مجدداً في Secretclicklink-mtls؛ وعلى جهاز افتراضي، يكتبها ضمن /etc/clicklink/tls/.
لفحص تاريخ انتهاء الصلاحية الحالي:
تدوير بيانات الاعتماد
بيانات اعتماد واجهة برمجة التطبيقات (HMAC)
اطلب رمز تسجيل جديدًا من فريق حسابك، ثم أعد تشغيل أمرinit الأصلي مع --enroll و--force. احتفظ بجميع الرايات الخاصة بالهدف المستخدمة في التثبيت الأول (--target-namespace و--values وأي رايات mirror مثل --chart أو --chart-repo أو --chart-version)، لأن --force يعيد إعداد التهيئة المحفوظة. ينتقل وضع مُدار من التهيئة التي يجري استبدالها، لذا فإن --managed اختياري هنا. في تثبيت default:
init على تمكين وبدء الوحدات التي لا تعمل بعد، لذا أعد تشغيل البرامج الخفية بعد التدوير:
init مسبقًا Secretَي clicklink-hmac وclicklink-mtls المُدوَّرين؛ ولا ينشئهما المخطط. ولا يشملهما التعليق التوضيحي لقيمة التحقق الخاص به، لذا تحتفظ وحدات pod قيد التشغيل ببيانات الاعتماد التي بدأت بها. أعد تشغيل كل مكوّن بعد التدوير:
لإجراء التدوير دون تدخل يدوي، عندما يتطلب إعداد SQL كلمة مرور، يمرّر stdin كلا السريْن بالترتيب: رمز التسجيل في السطر الأول وكلمة المرور في السطر الثاني. وتستهلك قراءة رمز التسجيل سطرًا واحدًا فقط.
مستخدمو ClickHouse
أعِد توفير مستخدمي الموصل ذوي صلاحية القراءة فقط لكل مثيل سجّلته بنفسك. في Kubernetes، نفِّذ الأوامر من محطة عملك. يعيد--apply-ch-grants تطبيق الأذونات المُنشأة مجددًا داخل الـ pod، بحيث تصل بيانات الاعتماد الجديدة إلى ClickHouse؛ وإذا كانت كلمة مرور المستخدم الإداري معيّنة، فأضف --ch-admin-password-stdin ومرّرها عبر pipe:
--ch-user-via cr:
--ch-user-via cr وخيارات اختيار الـpod إلى أيٍّ من الصيغتين؛ راجع مرجع CLI.
شهادة العميل
يُجدَّد تلقائيًا (راجع الشهادات). لاستبدال شهادة سارية فورًا، أعد تشغيلinit باستخدام الخيار --force. ثم أعد تشغيل كل مكوّن حتى تقدّم البرامج الخفية الشهادة الطرفية الجديدة: على Kubernetes كما هو موضّح في قسم بيانات اعتماد واجهة برمجة التطبيقات، وعلى الجهاز الافتراضي الوحدات الثلاث.
إعادة التشغيل والاسترداد
تتقارب عمليات إعادة تشغيلinit، لذا تكون إعادة تنفيذ الأمر نفسه دائمًا هي الخطوة الأولى. من دون --force، يُحتفَظ بملف /etc/clicklink/config.yaml الموجود (VM) أو تراكب clicklink-values.yaml (Kubernetes)، ويُعاد استخدام مفتاح العميل الموجود؛ ويستبدل init بيانات الاعتماد وسلسلة CA بصورة ذرية. ويمكن تكرار أوامر الاسترداد التي تطبعها واجهة سطر الأوامر بعد فشل جزئي بأمان.
يستبدل --force الإعداد أو التراكب المحتفَظ به، ويُعيد إنشاء مفتاح العميل، ويحل محل شهادة العميل غير منتهية الصلاحية. ولا ينشئ مطلقًا معرّف UUID جديدًا للعنقود، لذا تُحفظ هوية الموصل. ويُحتفظ بوضع مُدار الخاص بالتهيئة المستبدلة في عمليات إعادة التشغيل غير المراقَبة، ويُعرض بوصفه الخيار الافتراضي على الطرفية، ما لم تمرّر --managed أو --no-managed.
إذا فشل توقيع الشهادة بعد التدريج، أو أعادت نقطة نهاية التوقيع الرمز 409 لأن شهادة غير منتهية الصلاحية موجودة بالفعل، فلن تحتاج إلى رمز تسجيل جديد أو إصدار ثانٍ. أكمل التثبيت باستخدام المواد الموقَّعة الموجودة بالفعل على القرص:
/etc/clicklink ويدير الخدمات). في Kubernetes، تطبع واجهة سطر الأوامر الصيغة الكاملة، بما في ذلك --target helm و--target-namespace و--values؛ استخدم الأمر المطبوع كما هو.
الموصل غير متصل. أثناء تعطل الموصل أو تعذّر الوصول إليه، تستمر الخدمات التي يديرها في العمل. إذ يبقيها ClickHouse Operator في العنقود الخاص بك قيد التشغيل، كما أن المنفّذ ليس ضمن مسار البيانات. تحتاج تغييرات دورة الحياة إلى اتصال المنفّذ، لذا لا يُطبَّق أي منها حتى يعيد الاتصال. وعند إعادة التشغيل، يستعيد المنفّذ الأوامر قيد الإرسال من قاعدة بيانات الأوامر الخاصة به. ويُجاب عن أي أمر تعيد ClickHouse Cloud تسليمه من النتيجة المسجَّلة؛ ولا يُعاد تنفيذ سوى الأمر الفاشل. لمعرفة ما يحدث لأوامر دورة الحياة في حال عدم اتصال أي منفّذ، راجع عندما يكون الموصل غير متصل.
إلغاء التثبيت
Linux VM
يتوفرuninstall.sh ضمن أرشيف tar الخاص بالإصدار. إذا لم يتبقَّ على المضيف أي أرشيف tar مستخرج، فاجلب أرشيفًا واستخرجه (انظر التنزيل والتحقق اليدويين). شغّل uninstall.sh من الدليل المستخرج:
clicklink-scraper وclicklink-troubleshooter وclicklink-executor وإزالة وحدات systemd والملف التنفيذي. ويُبقي على ما يلي، بحيث تستخدم إعادة التثبيت لاحقًا التهيئة الحالية:
/etc/clicklink، بما في ذلك حزم وصول المنفّذ ضمن/etc/clicklink/access/executor/var/lib/clicklink، بما في ذلك قاعدة بيانات أوامر المنفّذexecutor.dbوسجل الخدمات/var/log/clicklink- مستخدم
clicklink
clicklink-system؛ احذفها عندما لا يستخدمها أي شيء آخر.
Kubernetes
helm.sh/resource-policy: keep، لذا يُبقيه إلغاء التثبيت قائمًا ومعه قاعدة بيانات الأوامر وسجل الخدمات. كذلك فإن الـ Secrets التي أنشأها init، وSecret حزمة المنصة الذي كتبه platform approve، وConfigMap سجل الخدمات الذي يتولاه الـ المنفّذ ليست مملوكة للمخطط، وتبقى هي الأخرى بعد إلغاء التثبيت. احذفها صراحةً. وضمّن زوج Secret الوصول وServiceAccount لكل instance سجّلته بنفسك، ولكل خدمة مُدارة جهّزت لها مستكشف الأخطاء ومصلحها (ويحمل اسم الخدمة). ويغطي --ignore-not-found الكائنات التي لم تُنشأ أصلًا، مثل Secret حزمة المنصة قبل أول موافقة:
init أذونات المنفّذ على مستوى العنقود بأكمله، وليس المخطط. أزِلها بصفتك مسؤول العنقود بعد ألّا تبقى أي خدمات مُدارة:
طبقة المنصة
لا يؤدي إلغاء تثبيت الـ موصل إلى إزالة طبقة المنصة. فمساحات أسماء المنصة وأعباء العمل، و RBAC الخاص بـpcm-platform، وكائنات الـ admission التي ثبّتتها موافقاتك تبقى جميعها في العنقود، وكذلك كل خدمة مُدارة. احذف الخدمات أولًا؛ انظر حذف خدمة. في عنقود اختباري خالٍ من الخدمات، يزيل الأمر clicklink clctl platform reset إصدارات المنصة. أما ما يتركه من CustomResourceDefinitions و RBAC و StorageClass فيلزم حذفه يدويًا؛ انظر إعادة تعيين عنقود اختباري. أما خارج العناقيد الاختبارية، فاتفق على خطة إزالة مع فريق حسابك قبل المساس بطبقة المنصة.
مستخدمو ClickHouse
لا تؤدي إزالة التثبيت من أيٍّ من الهدفين إلى حذف مستخدمي القراءة فقط الذين تم توفيرهم على المثيلات التي سجّلتها بنفسك. احذفهم بصفتك Admin على كل مثيل (وأضف--ch-user-suffix إلى الأسماء إذا كنت قد عيّنت لاحقةً):