Jetpack

Jetpack مطلوب على كل عقدة من نظام المجموعة. يتم تثبيته تلقائيا بواسطة Azure CycleCloud على كل جهاز ظاهري يتم توفيره ليصبح عقدة في نظام مجموعة. يوفر Jetpack ثلاث وظائف رئيسية:

  • تكوين العقدة - يستخدم CycleCloud البرامج النصية و Chef لأتمتة تكوين جهاز ظاهري تم توفيره في عقدة نظام مجموعة عمل. يتم تضمين عميل Chef بالإضافة إلى الموارد الضرورية لتكوين الجهاز الظاهري داخل Jetpack.
  • المزامنة الموزعة - تدير Jetpack الاتصال بين العقدة وخادم تطبيق CycleCloud. وهذا يمكن CycleCloud من مراقبة حالة توفير الأجهزة الظاهرية ومزامنة تنسيق عقد متعددة في نظام المجموعة.
  • HealthCheck -- يستخدم Jetpack HealthCheck لتحديد صحة الأجهزة الظاهرية بحيث يمكن إنهاء الأجهزة الظاهرية غير السليمة.

تثبيت Jetpack

يتم تخزين مثبت Jetpack مؤقتا في حساب تخزين Azure عند بدء تشغيل نظام مجموعة لأول مرة باستخدام CycleCloud. مع توفير الأجهزة الظاهرية لنظام المجموعة، يتم تنفيذ ملحق برنامج نصي مخصص كجزء من عملية التمهيد التي تقوم بتنزيل مثبت Jetpack من ذاكرة التخزين المؤقت Azure Storage ثم تثبيته على الجهاز الظاهري.

مثبت Jetpack:

  • فك حزم ملفات Jetpack إلى شجرة دليل واحدة:
    • Windows: C:\cycle\jetpack
    • Linux: /opt/cycle/Jetpack
  • إنشاء البرامج النصية لبدء تشغيل النظام التي تقوم بتكوين جهاز ظاهري كعقدة نظام مجموعة
  • تثبيت خدمة HealthCheck
  • تثبيت أداة سطر الأوامر Jetpack إلى:
    • Windows: C:\cycle\jetpack\bin\jetpack
    • Linux: /opt/cycle/jetpack/bin/jetpack
  • إنشاء قواعد udev على Linux
  • تعيين متغير البيئة CYCLECLOUD_HOME

ملاحظة

إذا تم تثبيت Jetpack مسبقا على الصورة، فلن يعيد ملحق البرنامج النصي المخصص تثبيت Jetpack. بدلا من ذلك، سيتم تشغيل خطوة تهيئة ستتحقق من صحة اتصال العقدة ب CycleCloud وبدء تشغيل healthcheck الخدمات و jetpackd قبل متابعة تكوين العقدة.

الدلائل الفرعية ل Jetpack

الدليل الوصف
bin الثنائيات والبرامج النصية المفيدة.
config ملفات التكوين والبرامج النصية المعرفة من قبل المستخدم والكتلة.
logs السجلات التي تم إنشاؤها عن طريق الانضمام إلى نظام مجموعة وتقارب العقدة، ذات أهمية خاصة هي chef-client.log الذي يحتوي على النتائج من وصفات Chef المتقاربة.
run ملفات وقت التشغيل التي تم إنشاؤها بواسطة النظام. لا نوصي بالوصول مباشرة إلى هذه الملفات.
system الملفات الداخلية. لا نوصي باستخدام أي ملفات في هذا الدليل مباشرة لأنها يمكن أن تتغير بشكل كبير من الإصدار إلى الإصدار.

التحقق من الصحة

تنفذ خدمة HealthCheck البرامج النصية المعرفة من قبل المستخدم لتحديد قابلية بقاء الجهاز الظاهري الحالية كعقدة نظام مجموعة. يرجى الاطلاع على وثائق HealthCheck لمزيد من المعلومات.

أداة سطر أوامر Jetpack

توفر أداة سطر الأوامر Jetpack مجموعة مفيدة من الأوامر الفرعية لمعالجة الجهاز الظاهري الحالي والتفاعل مع Azure CycleCloud.

الأمر الوصف
jetpack autoscale التحجيم التلقائي للمجموعة التي تنتمي إليها هذه العقدة.
jetpack config استرداد قيمة تكوين.
jetpack converge تنفيذ تقارب Chef.
jetpack download قم بتنزيل مورد كائن ثنائي كبير الحجم من مشروع في Azure Storage.
jetpack keepalive تأخير إنهاء النظام بواسطة HealthCheck Service.
jetpack log سجل رسالة إلى واجهة مستخدم نظام مجموعة CycleCloud.
jetpack run_on_shutdown أضف برنامج نصي ليتم استدعاؤه قبل إنهاء العقدة.
jetpack send إرسال رسالة AMQP عشوائية إلى خادم CycleCloud.
jetpack shutdown طلب إيقاف تشغيل الجهاز الظاهري بواسطة CycleCloud.
jetpack test قم بتشغيل الاختبارات المقترنة بالمشاريط المعينة إلى الجهاز الظاهري.
jetpack users سرد المستخدمين الذين سيديرهم CycleCloud على هذا الجهاز الظاهري.
jetpack report_issue أرشفة ملفات السجل من الجهاز الظاهري إلى Azure Storage

التحجيم التلقائي ل jetpack

jetpack autoscale تعيين أهداف التحجيم التلقائي للمجموعة التي تنتمي إليها العقدة. يمكن تحجيم المجموعات حسب الذاكرات الأساسية أو عدد المثيلات أو التعريفات المخصصة.

لتوسيع نطاق إلى 100 نواة:

jetpack autoscale --corecount=100

لتوسيع نطاق nodearray "gpu" إلى 5 عقد:

jetpack autoscale --instancecount 5 --name=gpu

لتخصيص التحجيم التلقائي، يجب كتابة ملف json إلى القرص الذي يحتوي على تعريف nodearray الذي ترغب في تغيير حجمه. لتوسيع النطاق بمقدار 100 نواة:

[
  {
      "Name": "execute",
      "TargetCoreCount": 100
  }
]
jetpack autoscale --file=custom-autoscale.json

تكوين jetpack

jetpack config إحضار المعلومات التي تم تمريرها إلى جهاز ظاهري بواسطة CycleCloud. يعرض ما يلي:

  • جميع خصائص النظام المتوفرة عبر Ohai
  • مجموعة فرعية من بيانات تعريف Azure الخاصة بالجهاز الظاهري
  • معلومات حول نظام مجموعة CycleCloud الأصل.

تقارب jetpack

jetpack converge تنزيل جميع مشاريع CycleCloud المقترنة بالعقدة، وبدء عملية تقارب Chef التي تقوم بتشغيل جميع وصفات Chef والبرامج النصية ل cluster-init للعقدة.

تنزيل jetpack

jetpack download تنزيل كائن ثنائي كبير الحجم تم تحميله مع مشروع إلى العقدة. يجب تحديد المشروع الذي ينتمي إليه الكائن الثنائي كبير الحجم.

لتنزيل big-file.zip الكائن الثنائي كبير الحجم الذي تم تحميله كجزء من example-project المشروع إلى الدليل الحالي:

jetpack download --project example-project big-file.zip .

jetpack keepalive

jetpack keepalive يتفاعل مع خدمة HealthCheck لتأخير إنهاء الجهاز الظاهري بسبب فشل HealthCheck. يمكن تأخير الإنهاء لفترة محددة أو إلى أجل غير مسمى. بشكل افتراضي، يتأخر الإنهاء لمدة ساعة واحدة.

لتأخير إنهاء النظام بمقدار ساعة واحدة:

jetpack keepalive

لتأخير إنهاء النظام لمدة ست ساعات:

jetpack keepalive 6h

لتعطيل خدمة HealthCheck بالكامل، أي إنهاء التأخير إلى أجل غير مسمى:

jetpack keepalive forever

ملاحظة

forever يتوفر الخيار فقط ل HealthCheck على أجهزة Windows الظاهرية

سجل jetpack

jetpack log يرسل رسالة سجل مرة أخرى إلى CycleCloud. ستظهر الرسالة في سجل خادم التطبيق (عادة /opt/cycle_server/cycle_server.log) وسجل الأحداث الرئيسي وصفحة واجهة مستخدم نظام المجموعة.

تحتوي كل رسالة على خاصيتين: المستوىوالأولوية.

تشير خاصية المستوى إلى نوع الرسالة. المستويات الصالحة هي "معلومات" و"تحذير" و"خطأ". لا يشير المستوى إلى أهمية رسالة معينة - على سبيل المثال، بعض الأخطاء تافهة وبعض الرسائل الإعلامية مهمة.

تشير الأولوية إلى أهمية الرسالة. قيم الأولوية الصالحة هي "منخفضة" و"متوسطة" و"عالية". يتم عرض الرسائل ذات الأولوية المتوسطة أو الأعلى فقط على صفحة واجهة مستخدم نظام المجموعة لتجنب إغراق الصفحة برسائل ذات أولوية منخفضة.

لإرسال رسالة سجل معلوماتية ستظهر على صفحة واجهة مستخدم نظام المجموعة:

jetpack log 'system is now ready'

لإرسال رسالة سجل ذات أولوية منخفضة لا تريد ظهورها على صفحة واجهة مستخدم نظام المجموعة:

jetpack log 'system is now ready' --priority low

بشكل افتراضي، الرسائل ذات مستوى الخطأ لها أولوية عالية. لإرسال رسالة خطأ:

jetpack log 'the machine cannot process jobs' --level error

لإرسال رسالة خطأ تافهة:

jetpack log 'the machine cannot process jobs' --level error --priority low

run_on_shutdown jetpack

jetpack run_on_shutdown تسجيل برنامج نصي bash ليتم استدعاؤه قبل إنهاء العقدة.

يأخذ الأمر المسار المطلق إلى البرنامج النصي كوسيطة.

عند إنهاء العقدة بواسطة Azure، إذا تم تمكين إعلامات الإنهاء ، فسيتم إعلام Jetpack بالإنهاء ومحاولة تشغيل البرنامج النصي قبل إيقاف تشغيل العقدة.

يجب أن تمكن العقد إعلامات الإنهاء لتمكين run_on_shutdown.

jetpack run_on_shutdown /tmp/example.sh

هذا الأمر غير معتمد لعقد Windows.

إرسال jetpack

jetpack send يرسل رسالة AMQP إلى CycleCloud. إنه أمر متقدم لا يوصى به إلا إذا كنت تقوم بتطوير مكونات إضافية ل CycleCloud.

يمكنك إرسال سلاسل أو ملفات عشوائية باستخدام مفاتيح توجيه AMQP محددة.

إيقاف تشغيل jetpack

jetpack shutdown يطلب من CycleCloud إنهاء العقدة. يمكن تمرير الخيارات إلى الأمر لتحديد سبب طلب إيقاف التشغيل (الخامل مقابل غير السليم) بالإضافة إلى كيفية إنهاء العقدة (إنهاء مقابل إلغاء التخصيص).

لإيقاف تشغيل عقدة غير صحية:

jetpack shutdown --unhealthy

لإزالة تخصيص العقدة:

jetpack shutdown --deallocate

اختبار jetpack

jetpack test تشغيل أي اختبارات مضمنة مع المشاريع المعينة للعقدة وطباعة النتائج إلى stdout.

مستخدمو jetpack

jetpack users يسرد المستخدمين الذين سيديرهم CycleCloud على العقدة. يمكن أن تتغير هذه القائمة بمرور الوقت حيث يتم تعيين المستخدمين وإزالتها إلى نظام المجموعة.

للحصول على طباعة سهلة الاستخدام من المستخدمين المعينين للعقدة:

$ jetpack users

Username: test-user
Full Name: Test User
UID: 10201
Is Admin: True
Is Owner: True

للحصول على إخراج JSON سهل البرمجة النصية:

$ jetpack users --json

[
    {
        "fullName": "Test User",
        "isAdmin": true,
        "isOwner": true,
        "name": "test-user",
        "publicKeys": [
            "ssh-rsa public-key-goes-here\n"
        ],
        "uid": 10201
    }
]

report_issue jetpack

jetpack report_issue أرشفة دلائل السجل من الجهاز الظاهري، وتحميلها اختياريا إلى Azure Storage وإنشاء عنوان URL موقع للوصول الخارجي. سيتم تحميل السجلات إلى حساب Azure Storage المشار إليه بواسطة Locker الخاص بالعقدة. عند توقيع أرشيف في Azure Storage، سيكون للرمز المميز SAS الناتج حق الوصول للقراءة فقط لمدة 30 يوما.

الاستخدام:

$ jetpack report_issue [LOG_PATH] [--upload/--no-upload] [--sign/--no-sign]

لأرشفة سجلات Jetpack الافتراضية وتحميلها وتوقيعها ($JETPACK_HOME/logs):

$ jetpack report_issue
Logs can be found at: https://testaccount.blob.core.windows.net/cyclecloud/issues/TestCluster-execute-1-77777964-8b74-420d-ad44-094edf7695f2.zip?sv=2017-11-09&rsct=binary&sig=jBJUlYo10lRq0eW94I%2B6syzYVmgo1qcTFUc35D/q0Tg%3D&se=2020-12-04T15%3A15%3A00Z&spr=https&rscd=disposition%3Dfile%3B%20attachment&sp=r&sr=b
Signed URL will expire on: 2020-12-04T15:15:00Z

للأرشفة، قم بتحميل دليل سجل غير افتراضي ولكن لا توقعه:

$ jetpack report_issue /var/log/azure --no-sign
Logs can be found at: https://testaccount.blob.core.windows.net/cyclecloud/issues/TestCluster-execute-1-d67fe991-1dac-4644-9af7-50c835726f5e.zip

لمجرد أرشفة السجلات على الجهاز الظاهري المحلي:

$ jetpack report_issue --no-upload
Logs can be found at: /tmp/tmp4nscw705/TestCluster-execute-1-4249e973-3d87-4b14-94ed-6856a5267972.zip