تثبيت ريدماين في كوبرنيتيس - الجزء 2: تثبيت ريدماين
هذا هو الجزء الثاني من سلسلة حول نشر Redmine في Kubernetes. في هذه المقالة، سنقدم تعليمات حول كيفية نشر تثبيت موثوق لـ Redmine.
إعادة العد الجزء 1
بحلول الآن يجب أن تتطلع إلى تثبيت Redmine على Kubernetes. بعد كل شيء ، هذا هو ما جئت من أجله ، أليس كذلك؟
في Redmine в Kubernetes - точка 1: إعداد البيئة ، قمنا بتثبيت Ingress Controller ، وهو مكون لإعادة توجيه طلبات الإنترنت داخل عنقودك ، وقمنا بإنشاء نطاق DNS ، redminek8s.ddns.net. الآن نحتاج فقط إلى تكوين HTTPS ونحن جاهزون لنشر Redmine.
HTTPS باستخدام cert-manager
على الرغم من أنه يمكننا الاحتفاظ بـ Redmine الخاص بنا كـ HTTP ، إلا أن HTTPS أصبح الأساسي للمواقع الإلكترونية ، بحيث يحذرك معظم المتصفحات من مشكلة أمان عندما لا يتم استخدام HTTPS من قبل موقع ويب.
عادةً ما يكون تمكين HTTPS ليس مهمة بسيطة ، حيث تحتاج إلى شراء شهادة وتحميلها على موقعك ، وتجديدها بعد فترة معينة ، وتكرار العملية. يقوم cert-manager بتأتير كل هذا ، بما في ذلك تجديد الشهادات ، وحتى الحصول على شهادات مجانية. يمكنك رؤية مزيد من المعلومات على Тяхното местоположение ، ولكن سأشرح كل ما تحتاج إلى معرفته بعد ذلك.
تثبيت cert-manager
قم بتنفيذ الخطوات التالية لتثبيت cert-manager في عنقودك:
helm repo добави jetstack https://charts.jetstack.io && helm repo update
helm install cert-manager jetstack / cert-manager --set installCRDs = true
أولاً ، قم بإضافة المستودع الذي يحتوي على cert-manager ، ثم قم بتثبيت أحدث إصدار له.
الاتصال بسلطة الشهادة
الآن نحتاج إلى إرشاد cert-manager للاتصال بمزود الشهادة الذي نختاره. سنستخدم LetsEncrypt ، سلطة شهادة مجانية. أنشئ هذا الملف أولاً (تذكر أن تستبدل <your-email-address> بعنوان بريد إلكتروني حقيقي) وسمه cluster-issuer.yaml
apiВерсия: cert-manager.io/v1alpha2
вид: ClusterIssuer
метаданни:
име: letsencrypt
спец:
Acme:
сървър: https://acme-v02.api.letsencrypt.org/directory
електронна поща:
privateKeySecretRef:
име: letsencrypt
решават:
- http01:
проникване:
клас: nginx
ثم قم بتطبيقه على عنقودك باستخدام
kubectl прилагам -f cluster-issue.yaml
تهانينا! الملف أعلاه هو أول تكوين Kubernetes نكتبه ونطبقه على العنقود. قد لاحظت أنه يوضح كيفية الاتصال بـ LetsEncrypt ، ولكنه يصف أيضًا Ingress Controller الذي قمنا بإنشائه في الجزء 1 (الفئة: nginx في النهاية) يحتوي هذا النوع من التكوين على بعض الأسطر مع مسافات للإشارة إلى تبعية بعض الخصائص للآخرين. احتفظ بهذه المسافات كما هو موضح لضمان قراءة الملف وتطبيقه بشكل صحيح.
الآن تم تمكين عنقودك من HTTPS. كلما قمنا بتثبيت تطبيق ، يمكننا توجيهه للعمل مع HTTPS و فوالا! سيتم القيام بعملية الحصول على الشهادة تلقائيًا خلف الكواليس.
تثبيت ريدماين
هذا ما كنا ننتظره جميعًا. يمكننا تثبيت ريدماين بعدة طرق مختلفة ، ولكن بلا شك الطريقة الأكثر ملاءمة هي استخدام Helm. كما فعلنا من قبل ، نقوم أولاً بإضافة المستودع الذي يحتوي على ريدماين
helm repo добавете битнами https://charts.bitnami.com/bitnami && helm repo update
ولكن هذه المرة بدلاً من التثبيت على الفور ، سنقوم بإنشاء ملف تكوين لتحديد بعض السلوك المخصص الذي نريد أن يكون لديه ريدماين.
سنفصل جميع التكوينات في قسمها الخاص ولكنك تضعها جميعًا في نفس الملف ، واحدة بعد الأخرى. اسم الملف هو values.yaml.
جميع تطبيقات Helm لديها ملف values.yaml يحتوي على جميع التكوينات الممكنة التي يمكن إجراؤها على التطبيق. عند إنشاء values.yaml الخاص بنا ، نحدد التغييرات التي نريدها. سيتم ترك أي قيمة لا نشملها في ملفنا كما هي في الملف الافتراضي.
يمكن العثور أيضًا على جميع القيم الافتراضية على صفحة تطبيق Helm ، https://hub.helm.sh/charts/bitnami/redmine. قم بالتحقق من جميع التكوينات.
أول مستخدم مسؤول
RedmineUsername: adminUser
Redmine Парола:
هذه الخطوة ضرورية وسهلة الفهم. إنه أول مستخدم في ريدماين ، والذي سنستخدمه لتسجيل الدخول للمرة الأولى.
عندما يتم تثبيت ريدماين ، ستتمكن من الوصول إليه باستخدام هذا المستخدم لتكوين تثبيتك الجديد تمامًا.
قاعدة بيانات PostgreSQL
بشكل افتراضي ، ستتطلب عملية التثبيت الخاصة بنا في Helm إنشاء قاعدة بيانات MariaDB. بدلاً من ذلك ، سنقوم بتكوين تثبيتنا لاستخدام PostgreSQL. تحتاج أيضًا إلى إضافة كلمة مرور على الأقل للوصول إلى هذه القاعدة بيانات ، كما يمكنك رؤية ذلك أدناه
Тип на базата данни: postgresql
mariadb:
активиран: false
PostgreSQL:
активиран: вярно
postgresql База данни: Redmine
postgresqlИме на потребителя: Redmine
postgresqlPassword:
يجب أن نخبر تثبيتنا صراحة أننا لا نرغب في تثبيت MariaDB مع تكوين قاعدة بيانات PostgreSQL.
تكوين اسم DNS
التكوين أدناه هو الجانب الآخر من تكوين DNS الذي قمنا به في الجزء 1. كما يمكنك أن ترى نحن نمكّن TLS ، وهو البروتوكول الذي يقف وراء HTTPS ، ونضبط اسم المضيف الذي استخدمناه عند إنشاء سجل DNS الخاص بنا:
الدخول:
تمكين: صحيح
certManager: صحيح
име на хост: redminek8s.ddns.net
tls: صحيح
анотации:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt
أيضًا في السطرين الأخيرين نربط تطبيقنا بتحكم الدخول ومع إصدار العقدة الذي قمنا بإنشائه من قبل.
الآن يمكننا نشر Redmine مع تكوين مخصص:
кормило инсталирайте Redmine -f values.yaml bitnami / redmine
هذا السطر مشابه للسطور الأخرى لتثبيت helm التي استخدمناها من قبل ، ولكن هذه المرة نقدم قيمًا مخصصة في ملف values.yaml. هذه هي الطريقة لتخصيص أي تطبيق Helm.
نحتاج إلى بعض الصبر أكثر ، حيث يستغرق إنشاء التطبيق بعض الوقت. يمكنك تنفيذ هذا الأمر للتحقق من حالة حاويات التطبيق الخاصة بك:
kubectl вземете шушулки - гледайте
سيعيد الأمر شيئًا مشابهًا لهذا:
ИМЕ ГОТОВ СТАТУС ВЪЗСТАНОВЯВА ВЪЗРАСТ
. . .
redmine-999c68dd9-x7h2k 1/1 Running 0 6m40s
redmine-postgresql-0 1/1 Работи 0 6m40s
يجب عليك الانتظار حتى يكون حالة كلتا الحاويتين هي Running وجاهزة 1/1 ، والأمر الذي استغرق في حالتي حوالي 6 دقائق.
الآن كل شيء جاهز لفتح المتصفح والانتقال إلى نشرتنا الجديدة:
Redmine جاهز
заключение
كوبرنيتيس هي أداة معقدة لنشر التطبيقات ، ولكن تجاوزنا تلك التعقيدات بمساعدة Helm (دون اللعب على الكلمات) ونشرنا تثبيتًا موثوقًا لـ Redmine.
يمكنك العثور على ملخص لهذا الدليل في مستودع git التالي: https://github.com/lcofre/redmine-on-k8s. لا تتردد في المقارنة مع ملفاتك إذا واجهتك مشكلة.
تركنا بعض المفاهيم خارج النقاش لأنها كانت معقدة أو كانت الشرح محدد للسحابة. من بينها ليونة وجاهزية التطبيق الخاص بك ، وتكوين رسائل البريد الوارد ، وتوسيع التطبيق للتعامل مع المزيد من الحمولة. يرجى إعلامنا بما يهمك أكثر حتى نتمكن من مناقشته في دليل مستقبلي.
الترقية النهائية لـ Redmine؟ سهلة.
احصل على جميع الأدوات القوية للتخطيط والإدارة والتحكم المثالي في المشروع في برنامج واحد.