إذا كانت لديك أسئلة، فراجع الوثائق على kubespray.io وانضم إلينا على kubernetes Slack، القناة #kubespray . يمكنك الحصول على دعوتك هنا
فيما يلي عدة طرق لاستخدام Kubespray لنشر مجموعة Kubernetes.
قم بتثبيت Ansible وفقًا لدليل تثبيت Ansible، ثم قم بتنفيذ الخطوات التالية:
# Copy ` ` inventory/sample ` ` as ` ` inventory/mycluster ` `
cp -rfp inventory/sample inventory/mycluster
# Update Ansible inventory file with inventory builder
declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5)
CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
# Review and change parameters under ` ` inventory/mycluster/group_vars ` `
cat inventory/mycluster/group_vars/all/all.yml
cat inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
# Clean up old Kubernetes cluster with Ansible Playbook - run the playbook as root
# The option ` --become ` is required, as for example cleaning up SSL keys in /etc/,
# uninstalling old packages and interacting with various systemd daemons.
# Without --become the playbook will fail to run !
# And be mind it will remove the current kubernetes cluster (if it ' s running)!
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root reset.yml
# Deploy Kubespray with Ansible Playbook - run the playbook as root
# The option ` --become ` is required, as for example writing SSL keys in /etc/,
# installing packages and interacting with various systemd daemons.
# Without --become the playbook will fail to run !
ansible-playbook -i inventory/mycluster/hosts.yaml --become --become-user=root cluster.yml
ملاحظة: عندما يتم تثبيت Ansible بالفعل عبر حزم النظام على عقدة التحكم، ستنتقل حزم Python المثبتة عبر sudo pip install -r requirements.txt
إلى شجرة دليل مختلفة (على سبيل المثال /usr/local/lib/python2.7/dist-packages
على Ubuntu) من Ansible (على سبيل المثال /usr/lib/python2.7/dist-packages/ansible
لا يزال على Ubuntu). ونتيجة لذلك، سيفشل الأمر ansible-playbook
مع:
ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path.
يشير هذا على الأرجح إلى أن المهمة تعتمد على وحدة موجودة في requirements.txt
.
إحدى طرق معالجة ذلك هي إلغاء تثبيت حزمة Ansible للنظام ثم إعادة تثبيت Ansible عبر pip
، لكن هذا ليس ممكنًا دائمًا ويجب على المرء الاهتمام بإصدارات الحزمة. يتكون الحل البديل من تعيين متغيرات البيئة ANSIBLE_LIBRARY
و ANSIBLE_MODULE_UTILS
على التوالي إلى الدلائل الفرعية ansible/modules
و ansible/module_utils
لموقع تثبيت pip
، وهو Location
الموضح عن طريق تشغيل pip show [package]
قبل تنفيذ ansible-playbook
.
هناك طريقة بسيطة لضمان حصولك على الإصدار الصحيح من Ansible وهي استخدام صورة عامل الإرساء المضمنة مسبقًا من Quay. ستحتاج بعد ذلك إلى استخدام أدوات الربط للوصول إلى المخزون ومفتاح SSH في الحاوية، مثل هذا:
git checkout v2.26.0
docker pull quay.io/kubespray/kubespray:v2.26.0
docker run --rm -it --mount type=bind,source="$(pwd)"/inventory/sample,dst=/inventory
--mount type=bind,source="${HOME}"/.ssh/id_rsa,dst=/root/.ssh/id_rsa
quay.io/kubespray/kubespray:v2.26.0 bash
# Inside the container you may now run the kubespray playbooks:
ansible-playbook -i /inventory/inventory.ini --private-key /root/.ssh/id_rsa cluster.yml
انظر هنا إذا كنت ترغب في استخدام هذا المستودع كمجموعة Ansible
بالنسبة إلى Vagrant، نحتاج إلى تثبيت تبعيات Python لتوفير المهام. تأكد من تثبيت Python
و pip
:
python -V && pip -V
إذا أدى ذلك إلى إرجاع إصدار البرنامج، فهذا يعني أنك جاهز للبدء. إذا لم يكن الأمر كذلك، قم بتنزيل وتثبيت بايثون من هنا https://www.python.org/downloads/source/
قم بتثبيت Ansible وفقًا لدليل تثبيت Ansible ثم قم بتنفيذ الخطوة التالية:
vagrant up
ملاحظة: أنواع أنظمة التشغيل المستندة إلى Upstart/SysV غير مدعومة.
ansible_become
أو معلمات الأمر --become or -b
.الأجهزة: تتم حماية هذه الحدود بواسطة Kubespray. يمكن أن تختلف المتطلبات الفعلية لعبء العمل الخاص بك. للحصول على دليل التحجيم، انتقل إلى دليل بناء مجموعات كبيرة.
يمكنك الاختيار من بين عشرة مكونات إضافية للشبكة. (الافتراضي: calico
، باستثناء أن Vagrant يستخدم flannel
)
الفانيلا: شبكات gre/vxlan (الطبقة الثانية).
كاليكو هو مزود الشبكات وسياسة الشبكة. تدعم Calico مجموعة مرنة من خيارات الشبكات المصممة لتمنحك الشبكة الأكثر كفاءة عبر مجموعة من المواقف، بما في ذلك الشبكات غير المتراكبة والشبكات المتراكبة، مع أو بدون BGP. يستخدم Calico نفس المحرك لفرض سياسة الشبكة للمضيفين والبودات والتطبيقات (في حالة استخدام Istio وEnvoy) في طبقة شبكة الخدمة.
cilium: شبكة الطبقة 3/4 (بالإضافة إلى الطبقة 7 لحماية بروتوكولات التطبيقات وتأمينها)، تدعم الإدراج الديناميكي لشفرة BPF الثانوية في نواة Linux لتنفيذ خدمات الأمان والشبكات ومنطق الرؤية.
weave: Weave عبارة عن شبكة تراكب حاوية خفيفة الوزن ولا تتطلب مجموعة قاعدة بيانات K/V خارجية. (يُرجى الرجوع إلى وثائق استكشاف أخطاء weave
وإصلاحها).
kube-ovn: يدمج Kube-OVN المحاكاة الافتراضية للشبكة المستندة إلى OVN مع Kubernetes. إنه يوفر نسيج شبكة حاوية متقدم للمؤسسات.
kube-router: Kube-router هو واجهة CNI L3 لشبكات Kubernetes تهدف إلى توفير البساطة التشغيلية والأداء العالي: فهو يستخدم IPVS لتوفير وكيل خدمات Kube (في حالة الإعداد ليحل محل وكيل kube)، وiptables لسياسات الشبكة، وBGP لـ ods شبكة L3 (مع نظير BGP اختياريًا مع أقران BGP خارج المجموعة). ويمكنه أيضًا الإعلان بشكل اختياري عن المسارات إلى مجموعة Kubernetes Pods CIDRs وClusterIPs و ExternalIPs و LoadBalancerIPs.
macvlan: Macvlan هو برنامج تشغيل شبكة Linux. تتمتع Pods بعنوان Mac وIP فريد خاص بها، وتتصل مباشرة بالشبكة الفعلية (الطبقة الثانية).
multus: Multus عبارة عن مكون إضافي لـ CNI meta يوفر دعمًا متعددًا لواجهة الشبكة للقرون. بالنسبة لكل واجهة، يقوم Multus بتفويض مكالمات CNI إلى مكونات CNI الإضافية الثانوية مثل Calico وmacvlan وما إلى ذلك.
custom_cni: يمكنك تحديد بعض البيانات التي سيتم تطبيقها على المجموعات لتجلب لك CNI الخاص بك واستخدام البيانات غير المدعومة بواسطة Kubespray. راجع tests/files/custom_cni/README.md
tests/files/custom_cni/values.yaml
للحصول على مثال مع CNI المقدم بواسطة مخطط Helm.
يتم تعريف المكون الإضافي للشبكة المراد استخدامه بواسطة المتغير kube_network_plugin
. هناك أيضًا خيار للاستفادة من شبكة موفر الخدمة السحابية المدمجة بدلاً من ذلك. انظر أيضًا مدقق الشبكة.
nginx: وحدة تحكم الدخول NGINX.
metallb: مزود خدمة LoadBalancer للخدمات المعدنية العارية من MetalLB.
اختبارات CI/شاملة برعاية: CNCF، وEquinix Metal، وOVHcloud، وELASTX.
راجع مصفوفة الاختبار للحصول على التفاصيل.