نشر Kubernetes مع Kubeadm على CentOS 7
نظرة عامة تهدف هذه المقالة إلى مساعدتك في إنشاء مجموعة Kubernetes وتشغيلها باستخدام kubeadm في لمح البصر. سيقوم هذا الدليل بنشر خادمين في
نعلم جميعًا ونحب Docker ، وهي منصة لإنشاء وإدارة وتوزيع حاويات التطبيقات عبر أجهزة متعددة. تقدم Docker Inc. خدمة لاستضافة حاويات مفتوحة المصدر ليتم تنزيلها (أو سحبها) مثل مستودع git المعروف باسم "Docker Registry". فكر في الأمر مثل GitHub لحاويات Docker.
ولكن ماذا لو كنت تريد استضافة السجل الخاص بك منفصلًا عن السجل العام؟ حسنًا ، فتحت Docker Inc. تطبيق التسجيل من مصدرها على GitHub.
سيأخذك هذا البرنامج التعليمي على الرغم من عملية إعداد سجل Docker خاص باستخدام CoreOS على VPS جديد.
لن نقضي الكثير من الوقت في مراجعة ما يمكن أن يفعله Docker و CoreOS تمامًا ، لأنه خارج نطاق هذا البرنامج التعليمي. في الأساس ، تم تصميم CoreOS لمجموعات كبيرة من الخوادم ، وهو صغير وسريع ويحصل على تحديثات أمان منتظمة تلقائيًا. نظام الملفات الجذر الخاص به هو أيضًا للقراءة فقط ، مما يعني أنه يجب عليك استخدام Docker لتشغيل أي نوع من البرامج غير المضمنة في التثبيت الأساسي.
وهذا يجعل Core OS نظام مضيف مثالي لـ Docker!
قامت شركة Docker Inc. بتوفير التسجيل كصورة عالية المستوى ، وهذا يعني أنه يمكننا سحبها لأسفل بطريقة بسيطة:
docker pull registry
قد يستغرق ذلك بضع دقائق حسب سرعة الاتصال.
بالإضافة إلى كونها صورة عالية المستوى تعني أيضًا أنها تحصل على دعم وتحديثات منتظمة.
الآن دعونا نختبر التسجيل. يمكننا إنشاء حاوية جديدة باستخدام صورة التسجيل:
docker run -p 5000:5000 -d --name=basic_registry registry
بالنسبة لأولئك الذين لم يستخدموا Docker كثيرًا ، يشير -p
العلم إلى PORT
، مما يعني أننا نعرض المنفذ 5000 من الحاوية إلى المنفذ المضيف 5000.
تشير -d
العلامة إلى أن daemon
هذا سيؤدي إلى تشغيل الحاوية في الخلفية وعدم طباعة الإخراج إلى جلسة SSH الحالية ، ونريد أيضًا تسمية حاوية الاختبار الأساسية هذه باستخدام --name
الخيار حتى نتمكن من إدارتها بسهولة لاحقًا.
تأكد من تشغيل حاوية التسجيل الأساسية باستخدام docker ps
. يجب أن يبدو الإخراج مشابهًا لما يلي:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
edfb54e4a8c4 registry:0.8.1 "/bin/sh -c 'exec do 7 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp basic_registry
أيضًا ، قم بزيارة http://YOUR_IP:5000
في متصفح الويب الخاص بك ، ويجب أن تتلقى رسالة مثل ما يلي:
"docker-registry server (dev) (v0.8.1)"
لاحظ الكلمة
dev
الواردة بين قوسين. هذا يعني أن الخادم يقوم حاليًا بتشغيل تكوين dev. سنلقي نظرة على المزيد من التكوين قريبًا.
لديك الآن سجل حاويات خاص بك (أساسي جدًا) قيد التشغيل! لكننا لم ننتهي بعد.
ربما ترغب في الحفاظ على هذا خاصًا من أعين المتطفلين ، أو ربما تخزين صورك على Amazon S3 بدلاً من التخزين المحلي. دعنا نستعرض خيارات التكوين المختلفة في القسم التالي.
قبل أن نمضي قدمًا ، دعنا نقتل حاوية الاختبار حتى لا نواجه منافذ متضاربة.
docker kill basic_registry
هناك طريقتان لتمرير التكوين إلى Docker Registry. تتمثل إحدى الطرق في تمرير متغيرات البيئة إلى حاوية جديدة ، والأخرى هي إضافة ملف تكوين.
إليك بعض خيارات التكوين الشائعة التي سنستخدمها:
loglevel
- الحد الأدنى من المعلومات لتسجيل الدخول إلى وحدة التحكم. الافتراضي هو info
.standalone
- هل يجب أن يعمل هذا السجل من تلقاء نفسه؟ (لا يستعلم أبداً السجل العام.) الافتراضي هو true
.index_endpoint
- إذا لم تكن قائمة بذاتها ، فما الفهرس الآخر الذي سنستعلم عنه؟ افتراضي index.docker.io
.cache
و cache_lru
- الخيارات المتعلقة باستخدام ذاكرة التخزين المؤقت Redis للملفات الصغيرة ، سنتناولها لاحقًا.storage
- ما خلفية التخزين التي يجب أن نستخدمها لهذا الخادم؟ (في هذا البرنامج التعليمي سنستخدم المحلي).storage_path
- في حالة استخدام التخزين المحلي ، ما الدليل الذي يجب استخدامه للاحتفاظ بالملفات؟قبل أن نبدأ في التهيئة ، نحتاج إلى ملف أساسي للعمل معه. سيعمل الملف من مستودع Docker Registry على GitHub بشكل جيد:
wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml
يجب حفظ الملف بنجاح مع ناتج مثل:
2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]
عظيم! الآن يمكننا تعديل هذا الملف ليناسب احتياجاتنا.
إن محرر النصوص الوحيد الذي يأتي مع Core OS هو vim
، ولكن لا تقلق إذا لم تستخدمه من قبل ، فسيشرح هذا خطوة بخطوة ما يجب تحريره وكيفية القيام بذلك.
vim config_sample.yml
بمجرد فتح الملف ، اضغط على I
الزاوية اليمنى السفلى يجب أن تعرض: -- INSERT --
لوضع الإدراج. قم بالتمرير إلى أسفل الملف باستخدام مفاتيح الأسهم الخاصة بك ، من المفترض أن ترى قسمًا يسمى prod
.
سنقوم بتغيير الخطين ، التغييرات أدناه
prod:
<<: *local
storage_path: _env:STORAGE_PATH:/data
ما قمنا به هو تغيير prod
التكوين للاستخلاص من local
القسم بدلاً من s3
القسم. ثم استبدلنا storage_path
لاستخدام المسار /data
داخل الحاوية الجديدة.
بمجرد التأكد من صحة جميع التغييرات ، اضغط ESC
على للخروج من وضع الإدراج والنوع :wq
(وهذا يعني كتابة التغييرات في الملف ، وإنهاء vim.)
الآن دعونا نعيد تسمية الملف إلى مجرد config.yml
mv config_sample.yml config.yml
إذا كنت ترغب في استخدام redis لتسريع تسجيل الحاوية ، فببساطة سحب حاوية جديدة من السجل العام وإضافة بضعة أسطر إضافية من التكوين.
أولاً ، اسحب صورة المستوى الأعلى لـ Redis:
docker pull redis
بمجرد سحب الصورة بنجاح ، يمكننا تشغيلها وتسميتها تمامًا كما فعلنا في سجل الاختبار:
docker run -d --name registry-redis redis
نظرًا لأن redis في الذاكرة ، فإننا لا نحتاج إلى إجراء أي تكوين لها ، حيث سنربطها بحاوية التسجيل في خطوات لاحقة.
مرة أخرى ، تأكد من تشغيله باستخدام docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54f65641eccf redis:2.8 "redis-server" 2 seconds ago Up 1 seconds 6379/tcp registry-redis
الآن أعد فتح config.yml
في vim
وأدخل وضع الإدراج تمامًا مثل المرة الأولى التي قمنا بتحريرها.
أضف الأسطر التالية أسفل prod
القسم ، مع التأكد من وضع مسافة بادئة بشكل صحيح. هذه المرة نحن فقط نضيف cache
و cache_lru
.
cache:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 0
cache_lru:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 1
متغيرات البيئة REDIS_PORT_6379_TCP_ADDR
و REDIS_PORT_6379_TCP_PORT
يتم تمريرها إلى الحاوية التسجيل على الربط مع الحاوية رديس.
مع ذلك ، لديك الآن إعداد حاوية Redis ستعمل جنبًا إلى جنب مع حاوية التسجيل. الآن على بناء التسجيل!
لدينا كل مجموعة التهيئة وجاهزة ، والآن نحتاج إلى إنشاء حاوية التسجيل الفعلية.
أطلق النار vim Dockerfile
لإنشاء ملف Dockerfile جديد. أدخل وضع الإدراج واتبع التعديلات أدناه.
FROM registry:latest
# Add the custom configuration file we made
ADD ./config.yml /docker-registry/config/config.yml
# Create the data directory
RUN mkdir /data
# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
# Make sure we use the prod configuration settings
env SETTINGS_FLAVOR prod
ما فعلناه أعلاه هو في الأساس توسيع صورة التسجيل بحيث يستخدم ملف التكوين والإعدادات الخاصة بنا. ملف Dockerfile عبارة عن مجموعة من تعليمات الإنشاء ليقوم Docker بقراءتها وإنشائها. إذا كنت ترغب في معرفة المزيد عن Dockerfiles وصيغتها ، ألق نظرة على وثائق موقع Docker الرسمية.
بعد ذلك نحتاج إلى بناء الحاوية للاستخدام.
docker build -t my_registry .
Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon
Step 0 : FROM registry
---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
---> Running in a090f0bdbfd1
---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
---> Running in 565b5bfb2b22
---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
---> Running in 31a92847b851
---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374
الآن نحن مستعدون للتشغيل!
لنقم بإنشاء دليل على نظامنا المضيف للتركيب في الحاوية كوحدة /data
التخزين.
mkdir registry-data
الآن يمكننا تدوير حاوية جديدة. إذا كنت تخطط لاستخدام ذاكرة التخزين المؤقت Redis ، فاستخدم الأمر الثاني أدناه.
# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry
# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry
للتأكد من أن الخادم يعمل بشكل صحيح ، قم بزيارة http://YOUR_IP:5000
. سترى الرسالة التالية:
"docker-registry server (prod) (v0.8.1)"
لاحظ (prod)
معنى تغييرات التكوين لدينا كانت ناجحة!
الآن بعد أن أصبح لدينا سجل تشغيل خاص بنا ، نريد أن يبدأ عميل Docker على أجهزتنا المحلية في استخدامه. عادة ما تستخدم الأمر: docker login
ولكن لاستخدامنا ، نحتاج إلى إضافة وسيطة أخرى إلى أمر تسجيل الدخول:
docker login YOUR_IP:5000
أدخل اسم مستخدم وكلمة مرور (فكر في هذا مثل إنشاء حساب جديد) وتجاهل الرسالة التي تنص على أنه يجب عليك تنشيطها.
بعد ذلك ، لنقم بسحب صورة المخزون ، ودفعها إلى مستودعنا الخاص.
# Pull the busybox image from the public registry
docker pull busybox
# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox
# Push it to our newly made registry
docker push YOUR_IP:5000/busybox
إذا تم دفع كل شيء بشكل صحيح ، فيجب أن تكون الرسالة النهائية على غرار:
Pushing tag for rev [a9eb17255234] on
تهانينا! لقد أعددت مستودع الأرصفة الخاص بك.
إليك بعض الأفكار حول كيفية تحسين السجل الخاص الجديد:
نظرة عامة تهدف هذه المقالة إلى مساعدتك في إنشاء مجموعة Kubernetes وتشغيلها باستخدام kubeadm في لمح البصر. سيقوم هذا الدليل بنشر خادمين في
عادة ما تتكون تطبيقات PHP من خادم ويب ونظام قاعدة بيانات علائقية ومترجم لغة نفسه. في هذا البرنامج التعليمي سنكون leveragin
مقدمة Docker هو تطبيق يسمح لنا بنشر البرامج التي يتم تشغيلها كحاويات. وقد كتب بلغة البرمجة Go الشهيرة
ستوضح لك هذه المقالة كيفية نشر تطبيق Node داخل حاوية Docker. ملاحظة: يفترض هذا البرنامج التعليمي أنك قمت بتثبيت Docker وقراءته
حاويات LXC (حاويات Linux) هي إحدى ميزات نظام التشغيل في Linux والتي يمكن استخدامها لتشغيل العديد من أنظمة Linux المعزولة على مضيف واحد. هذه
Kubernetes هو نظام أساسي مفتوح المصدر تم تطويره بواسطة Google لإدارة التطبيقات في حاويات عبر مجموعة من الخوادم. إنه يبني على عقد و
استخدام نظام مختلف؟ مقدمة Rancher هي منصة مفتوحة المصدر لتشغيل الحاويات وبناء خدمة حاويات خاصة. رانشر هو القاعدة
تشرح هذه المقالة كيفية تثبيت Docker-compose على CoreOS. في CoreOS ، المجلد / usr / غير قابل للتغيير بحيث لا يتو��ر المسار القياسي / usr / local / bin
استخدام نظام مختلف؟ مقدمة Rancher هي منصة مفتوحة المصدر لتشغيل الحاويات وبناء خدمة حاويات خاصة. رانشر هو القاعدة
استخدام نظام مختلف؟ مقدمة يحول Docker Swarm خوادمك الفردية إلى مجموعة من أجهزة الكمبيوتر ، مما يسهل القياس والتوافر العالي
استخدام نظام مختلف؟ Docker هو تطبيق يسمح بنشر البرامج داخل حاويات افتراضية. تمت كتابته في برنامج Go
نظرة عامة RancherOS هو نظام تشغيل خفيف الوزن بشكل لا يصدق (حوالي 60 ميجا بايت فقط) يقوم بتشغيل برنامج Docker daemon باسم PID 0 لتشغيل خدمات النظام
استخدام نظام مختلف؟ مقدمة يحول Docker Swarm خوادمك الفردية إلى مجموعة من أجهزة الكمبيوتر ؛ تسهيل التوسع ، وتوافر عالية
يوضح هذا البرنامج التعليمي أساسيات البدء مع Docker. أفترض أن لديك Docker مثبتة بالفعل. ستعمل الخطوات في هذا البرنامج التعليمي على
عند تشغيل تطبيق ويب ، تحتاج عادةً إلى تحقيق أقصى استفادة من مواردك دون الحاجة إلى تحويل البرنامج الخاص بك لاستخدام مؤشرات متعددة
المتطلبات الأساسية محرك Docker 1.8+. 4 جيجابايت على الأقل من مساحة القرص. 4 غيغابايت على الأقل من ذاكرة الوصول العشوائي. الخطوة 1. تثبيت Docker من أجل تثبيت SQL-Server ، Docker mus
استخدام نظام مختلف؟ مقدمة Docker هو تطبيق يسمح بنشر البرامج داخل حاويات افتراضية. هو مكتوب في G
استخدام نظام مختلف؟ Docker هو تطبيق يسمح بنشر البرامج التي يتم تشغيلها كحاويات. وقد كتب في برنامج Go الشهير
مقدمة سيوضح لك هذا الدليل كيفية إنشاء وتكوين سرب Docker باستخدام عدة خوادم Alpine Linux 3.9.0 و Portainer. يرجى الانتباه إلى ذلك
نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول
يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".
هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.
اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.
اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.
لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟
مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.
ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!
ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.
أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد