Traefik
وكيل عكسي يضبط نفسه من وسوم حاويات Docker
يراقب Traefik كلًا من Docker وKubernetes ومزودين آخرين، وينشئ المسارات تلقائيًا حين تبدأ حاوية بالوسوم المناسبة. يحصل على شهادات Let's Encrypt ويجددها بنفسه، والوكيل مفتوح المصدر برخصة MIT.
يناسبك إن كنت
- تشغّل حاويات كثيرة وتريد تعريف المسارات بجانب كل منها
- تنشر عبر Docker Compose أو Swarm أو Kubernetes
- تريد HTTPS تلقائيًا ووسائط مثل forward auth
انتبه إلى
- مفاهيمه تحتاج وقتًا، وأخطاء الوسوم تفشل بصمت
- الوصول إلى مقبس Docker يمنحه صلاحيات بمستوى root على المضيف
- الترقيات بين الإصدارات الكبرى غيّرت صيغة الإعداد، فاقرأ دليل الترحيل أولًا
توجيه يتبع حاوياتك
مع الوكيل العكسي التقليدي تعدّل ملف إعداد كلما أضفت خدمة. يقلب Traefik ذلك: تضيف بضعة وسوم (labels) إلى الحاوية في ملف compose، مثل اسم المضيف الذي تجيب عليه، فيلاحظ Traefik الحاوية ويبدأ التوجيه إليها. احذف الحاوية فيختفي المسار.
الوسائط (middlewares) تضيف الباقي: إعادة التوجيه إلى HTTPS، والمصادقة البسيطة، وحدود المعدل، والترويسات، وتمرير المصادقة إلى مزود هوية. يناسب من يصف منظومته أصلًا في Docker Compose أو Kubernetes ويريد أن يعيش التوجيه بجانب كل خدمة لا في ملف مركزي.
ما يتطلبه تشغيله
Traefik نفسه ملف تنفيذي واحد مكتوب بـ Go وذاكرته قليلة. التكلفة هي تعلم مفرداته: entrypoints وrouters وservices وmiddlewares وproviders، والفرق بين الإعداد الثابت والديناميكي. معظم مشكلات اليوم الأول خطأ إملائي في وسم، ويبقى الخطأ صامتًا حتى تفحص اللوحة أو السجلات.
لقراءة وسوم Docker يحتاج الوصول إلى مقبس Docker، وهذا يعادل صلاحيات root على المضيف. استخدم وكيل مقبس للقراءة فقط إن أمكن، وأبقِ اللوحة بعيدة عن الإنترنت، واحفظ ملف الشهادات على وحدة تخزين تنسخها احتياطيًا، وإلا ستصطدم بحدود Let's Encrypt بعد إعادة البناء.