المعلمات المدعومة GitOps (Flux v2)
يوفر Azure إمكانية نشر التطبيقات التلقائية باستخدام GitOps التي تعمل مع Azure Kubernetes Service (AKS) ومجموعات Kubernetes الممكنة في Azure Arc. يتيح لك GitOps مع Flux v2 استخدام مستودع Git الخاص بك كمصدر للحقيقة لتكوين نظام المجموعة ونشر التطبيق. لمزيد من المعلومات، راجع عمليات نشر التطبيقات باستخدام GitOps (Flux v2) والبرنامج التعليمي: نشر التطبيقات باستخدام GitOps مع Flux v2.
تستخدم GitOps على Kubernetes الممكنة في Azure Arc أو Azure Kubernetes Service Flux، وهي مجموعة أدوات مفتوحة المصدر شائعة تدعم العديد من المعلمات لتمكين سيناريوهات مختلفة. للحصول على وصف لجميع المعلمات التي يدعمها Flux، راجع وثائق Flux الرسمية.
لمشاهدة جميع المعلمات التي يدعمها Flux في Azure، راجع az k8s-configuration
الوثائق. لا يدعم هذا التنفيذ حاليا كل معلمة يدعمها Flux. أخبرنا ما إذا كانت المعلمة التي تحتاجها مفقودة من تنفيذ Azure.
توضح هذه المقالة بعض المعلمات والوسيطات المتوفرة az k8s-configuration flux create
للأمر . يمكنك أيضا مشاهدة القائمة الكاملة للمعلمات الخاصة az k8s-configuration flux
باستخدام المعلمة -h
في Azure CLI (على سبيل المثال، az k8s-configuration flux -h
أو az k8s-configuration flux create -h
).
تلميح
الحل البديل لنشر موارد Flux مع معلمات غير مدعومة هو تحديد الموارد المخصصة Flux المطلوبة (مثل GitRepository أو Kustomization) داخل مستودع Git الخاص بك. انشر هذه الموارد باستخدام az k8s-configuration flux create
الأمر . ستظل قادرا بعد ذلك على الوصول إلى موارد Flux الخاصة بك من خلال واجهة مستخدم Azure Arc.
وسيطات التكوين العامة
المحددة | تنسيق | الملاحظات |
---|---|---|
--cluster-name -c |
السلسلة | اسم مورد نظام المجموعة في Azure. |
--cluster-type -t |
القيم المسموح بها: connectedClusters ، managedClusters |
استخدم connectedClusters لمجموعات Kubernetes الممكنة في Azure Arc أو managedClusters لمجموعة AKS. |
--resource-group -g |
السلسلة | اسم مجموعة موارد Azure التي تحتوي على مورد نظام المجموعة. |
--name -n |
السلسلة | اسم تكوين Flux في Azure. |
--namespace --ns |
السلسلة | اسم مساحة الاسم لنشر التكوين. افتراضي: default . |
--scope -s |
السلسلة | نطاق الإذن للمشغلين. القيم المحتملة هي cluster (الوصول الكامل) أو namespace (الوصول المقيد). افتراضي: cluster . |
--suspend |
flag | تعليق كافة التسويات المصدر وkustomize المحددة في تكوين Flux هذا. وستستمر التسويات التي كانت نشطة وقت التعليق. |
الوسيطات العامة المصدر
المحددة | تنسيق | الملاحظات |
---|---|---|
--kind |
السلسلة | نوع المصدر الذي يجب التوفيق بينه وبينه. القيم المسموح بها: bucket ، ، git . azblob افتراضي: git . |
--timeout |
تنسيق مدة golang | الحد الأقصى للوقت لمحاولة التوفيق بين المصدر قبل انتهاء المهلة. الافتراضي: 10m . |
--sync-interval --interval |
تنسيق مدة golang | الوقت بين تسوية المصدر على نظام المجموعة. افتراضي: 10m . |
وسيطات مرجع مصدر مستودع Git
المحددة | تنسيق | الملاحظات |
---|---|---|
--branch |
السلسلة | فرع داخل مصدر Git للمزامنة مع نظام المجموعة. افتراضي: master . قد يكون للمستودعات الأحدث فرع جذر يسمى main ، وفي هذه الحالة تحتاج إلى تعيين --branch=main . |
--tag |
السلسلة | ضع علامة داخل مصدر Git للمزامنة مع نظام المجموعة. مثال:--tag=3.2.0 . |
--semver |
السلسلة | نطاق علامة semver Git داخل مصدر Git للمزامنة مع نظام المجموعة. مثال:--semver=">=3.1.0-rc.1 <3.2.0" . |
--commit |
السلسلة | يقوم Git بتثبيت SHA داخل مصدر Git للمزامنة مع نظام المجموعة. مثال:--commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a . |
لمزيد من المعلومات، راجع وثائق Flux حول استراتيجيات سحب مستودع Git.
مستودع Git العام
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
http[s]://server/repo[.git] |
عنوان URL لمصدر مستودع Git للتصالح مع نظام المجموعة. |
مستودع Git الخاص مع SSH
هام
أعلن Azure DevOps عن إهمال SSH-RSA كطريقة تشفير مدعومة للاتصال بمستودعات Azure باستخدام SSH. إذا كنت تستخدم مفاتيح SSH للاتصال بمستودعات Azure في تكوينات Flux، نوصي بالانتقال إلى مفاتيح RSA-SHA2-256 أو RSA-SHA2-512 أكثر أمانا. لمزيد من المعلومات، راجع إهمال Azure DevOps SSH-RSA.
مستودع Git الخاص مع مفاتيح SSH و Flux التي تم إنشاؤها
أضف المفتاح العام الذي تم إنشاؤه بواسطة Flux إلى حساب المستخدم في مزود خدمة Git الخاص بك.
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
ssh://user@server/repo[.git] |
git@ يجب استبدال user@ إذا كان المفتاح العام مقترنا بالمستودع بدلا من حساب المستخدم. |
مستودع Git الخاص مع SSH والمفاتيح التي يوفرها المستخدم
استخدم المفتاح الخاص بك مباشرة أو من ملف. يجب أن يكون المفتاح بتنسيق PEM وينتهي بخط جديد (\n
).
أضف المفتاح العام المرتبط إلى حساب المستخدم في مزود خدمة Git الخاص بك.
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
ssh://user@server/repo[.git] | git@ يجب استبدال user@ إذا كان المفتاح العام مقترنا بالمستودع بدلا من حساب المستخدم. |
--ssh-private-key |
مفتاح Base64 بتنسيق PEM | قم بتوفير المفتاح مباشرة. |
--ssh-private-key-file |
المسار الكامل إلى الملف المحلي | قم بتوفير المسار الكامل للملف المحلي الذي يحتوي على مفتاح تنسيق PEM. |
مضيف Git الخاص مع SSH والمضيفين المعروفين المقدمين من المستخدم
يحتفظ عامل تشغيل Flux بقائمة من مضيفي Git الشائعين في ملفه known_hosts
. يستخدم Flux هذه المعلومات لمصادقة مستودع Git قبل إنشاء اتصال SSH. إذا كنت تستخدم مستودع Git غير شائع أو مضيف Git الخاص بك، يمكنك توفير مفتاح المضيف بحيث يمكن ل Flux تحديد مستودعك.
تماما مثل المفاتيح الخاصة، يمكنك توفير المحتوى الخاص بك known_hosts
مباشرة أو في ملف. عند توفير المحتوى الخاص بك، استخدم مواصفات تنسيق المحتوى known_hosts، جنبا إلى جنب مع أي من سيناريوهات مفتاح SSH السابقة.
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
ssh://user@server/repo[.git] | git@ يمكن استبدال user@ . |
--known-hosts |
سلسلة Base64 | توفير known_hosts المحتوى مباشرة. |
--known-hosts-file |
المسار الكامل إلى الملف المحلي | توفير known_hosts محتوى في ملف محلي. |
مستودع Git الخاص مع مستخدم ومفتاح HTTPS
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
https://server/repo[.git] |
HTTPS مع المصادقة الأساسية. |
--https-user |
سلسلة أولية | اسم مستخدم HTTPS. |
--https-key |
سلسلة أولية | الرمز المميز للوصول الشخصي ل HTTPS أو كلمة المرور. |
مستودع Git الخاص مع شهادة HTTPS CA
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
https://server/repo[.git] |
HTTPS مع المصادقة الأساسية. |
--https-ca-cert |
سلسلة Base64 | شهادة CA لاتصال TLS. |
--https-ca-cert-file |
المسار الكامل إلى الملف المحلي | توفير محتوى شهادة المرجع المصدق في ملف محلي. |
وسيطات مصدر المستودع
إذا كنت تستخدم bucket
المصدر، فإليك وسيطات الأمر الخاصة بالمستودع.
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
سلسلة URL | عنوان URL ل bucket . التنسيقات المدعومة: http:// ، . https:// |
--bucket-name |
السلسلة | اسم للمزامنة bucket . |
--bucket-access-key |
السلسلة | معرف مفتاح الوصول المستخدم للمصادقة باستخدام bucket . |
--bucket-secret-key |
السلسلة | المفتاح السري المستخدم للمصادقة باستخدام bucket . |
--bucket-insecure |
Boolean | التواصل مع bucket بدون TLS. إذا لم يتم توفيرها، يفترض خطأ؛ إذا تم توفيره، يفترض أنه صحيح. |
وسيطات مصدر حساب تخزين Azure Blob
إذا كنت تستخدم azblob
المصدر، فإليك وسيطات الأمر الخاصة بكائن ثنائي كبير الحجم.
المحددة | تنسيق | الملاحظات |
---|---|---|
--url -u |
سلسلة URL | عنوان URL ل azblob . |
--container-name |
السلسلة | اسم حاوية Azure Blob Storage المراد مزامنتها |
--sp_client_id |
السلسلة | معرف العميل لمصادقة كيان خدمة باستخدام Azure Blob، مطلوب لأسلوب المصادقة هذا |
--sp_tenant_id |
السلسلة | معرف المستأجر لمصادقة كيان خدمة باستخدام Azure Blob، مطلوب لأسلوب المصادقة هذا |
--sp_client_secret |
السلسلة | سر العميل لمصادقة كيان الخدمة باستخدام Azure Blob |
--sp_client_cert |
السلسلة | شهادة العميل المشفرة Base64 لمصادقة كيان خدمة باستخدام Azure Blob |
--sp_client_cert_password |
السلسلة | كلمة المرور لشهادة العميل المستخدمة لمصادقة كيان خدمة باستخدام Azure Blob |
--sp_client_cert_send_chain |
السلسلة | تحديد ما إذا كان يجب تضمين رأس x5c في مطالبات العميل عند الحصول على رمز مميز لتمكين المصادقة المستندة إلى اسم الموضوع / المصدر لشهادة العميل |
--account_key |
السلسلة | مفتاح Azure Blob المشترك للمصادقة |
--sas_token |
السلسلة | رمز SAS المميز ل Azure Blob للمصادقة |
--managed-identity-client-id |
السلسلة | معرف العميل للهوية المدارة للمصادقة باستخدام Azure Blob |
هام
عند استخدام مصادقة الهوية المدارة لمجموعات AKS والمصدر azblob
، يجب تعيين الهوية المدارة كحد أدنى لدور Storage Blob Data Reader . المصادقة باستخدام هوية مدارة غير متوفرة بعد لمجموعات Kubernetes التي تدعم Azure Arc.
سر محلي للمصادقة مع المصدر
يمكنك استخدام سر Kubernetes محلي للمصادقة مع git
أو bucket
azBlob
مصدر. يجب أن يحتوي السر المحلي على جميع معلمات المصادقة المطلوبة للمصدر ويجب إنشاؤها في نفس مساحة الاسم مثل تكوين Flux.
المحددة | تنسيق | الملاحظات |
---|---|---|
--local-auth-ref --local-ref |
السلسلة | مرجع محلي إلى سر Kubernetes في مساحة اسم تكوين Flux لاستخدامها للمصادقة مع المصدر. |
لمصادقة HTTPS، يمكنك إنشاء سر باستخدام username
و password
:
kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-literal=username=<my-username> --from-literal=password=<my-password-or-key>
لمصادقة SSH، يمكنك إنشاء سر مع الحقلين identity
و known_hosts
:
kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-file=identity=./id_rsa --from-file=known_hosts=./known_hosts
هام
أعلن Azure DevOps عن إهمال SSH-RSA كطريقة تشفير مدعومة للاتصال بمستودعات Azure باستخدام SSH. إذا كنت تستخدم مفاتيح SSH للاتصال بمستودعات Azure في تكوينات Flux، نوصي بالانتقال إلى مفاتيح RSA-SHA2-256 أو RSA-SHA2-512 أكثر أمانا. لمزيد من المعلومات، راجع إهمال Azure DevOps SSH-RSA.
لكلتا الحالتين، عند إنشاء تكوين Flux، استخدم --local-auth-ref my-custom-secret
بدلا من معلمات المصادقة الأخرى:
az k8s-configuration flux create -g <cluster_resource_group> -c <cluster_name> -n <config_name> -t connectedClusters --scope cluster --namespace flux-config -u <git-repo-url> --kustomization name=kustomization1 --local-auth-ref my-custom-secret
تعرف على المزيد حول استخدام سر Kubernetes محلي مع أساليب المصادقة هذه:
- مصادقة HTTPS لمستودع Git
- شهادات HTTPS الموقعة ذاتيا لمستودع Git
- مصادقة SSH لمستودع Git
- مصادقة ثابتة للمستودع
إشعار
إذا كنت بحاجة إلى Flux للوصول إلى المصدر من خلال الوكيل الخاص بك، يجب تحديث عوامل Azure Arc بإعدادات الوكيل. لمزيد من المعلومات، راجع الاتصال باستخدام خادم وكيل صادر.
تنفيذ Git
لدعم العديد من موفري المستودعات الذين ينفذون Git، يمكن تكوين Flux لاستخدام إحدى مكتبتي Git: go-git
أو libgit2
. للحصول على التفاصيل، راجع وثائق Flux.
يحدد تنفيذ GitOps ل Flux v2 تلقائيا المكتبة التي يجب استخدامها لمستودعات السحابة العامة:
- بالنسبة لمستودعات GitHub وGitLab وBitBucket، يستخدم
go-git
Flux . - بالنسبة إلى Azure DevOps وجميع المستودعات الأخرى، يستخدم
libgit2
Flux .
بالنسبة للمستودعات المحلية، يستخدم libgit2
Flux .
Kustomization
Kustomization هو إعداد تم إنشاؤه لتكوينات Flux التي تتيح لك اختيار مسار معين في مستودع المصدر الذي يتم التوفيق بينه وبين نظام المجموعة. لا تحتاج إلى إنشاء ملف 'kustomization.yaml على هذا المسار المحدد. بشكل افتراضي، تتم تسوية جميع البيانات في هذا المسار. ومع ذلك، إذا كنت تريد أن يكون لديك تراكب Kustomize للتطبيقات المتوفرة على مسار المستودع هذا، يجب عليك إنشاء ملفات Kustomize في git لتكوين Flux للاستفادة منها.
باستخدام az k8s-configuration flux kustomization create
، يمكنك إنشاء واحد أو أكثر من kustomizations أثناء التكوين.
المحددة | تنسيق | الملاحظات |
---|---|---|
--kustomization |
لا توجد قيمة | بداية سلسلة من المعلمات التي تقوم بتكوين kustomization. يمكنك استخدامه عدة مرات لإنشاء kustomizations متعددة. |
name |
السلسلة | اسم فريد لهذا kustomization. |
path |
السلسلة | المسار داخل مستودع Git للتوفيق مع نظام المجموعة. الافتراضي هو المستوى الأعلى للفرع. |
prune |
Boolean | القيمة الافتراضية هي false . قم بتعيين prune=true للتأكد من أن الكائنات التي تم نشرها في Flux إلى نظام المجموعة يتم تنظيفها إذا تمت إزالتها من المستودع أو إذا تم حذف تكوين Flux أو kustomizations. يعد الاستخدام prune=true مهما للبيئات التي لا يمتلك فيها المستخدمون حق الوصول إلى المجموعات ويمكنهم إجراء تغييرات فقط من خلال مستودع Git. |
depends_on |
السلسلة | اسم واحد أو أكثر من kustomizations (ضمن هذا التكوين) التي يجب أن توفق قبل أن يمكن التوفيق بين kustomization هذا. على سبيل المثال: depends_on=["kustomization1","kustomization2"] . إذا قمت بإزالة kustomization يحتوي على kustomizations تابعة، تصبح حالة kustomizations التابعة DependencyNotReady ، وتتوقف التسوية. |
timeout |
تنسيق مدة golang | افتراضي: 10m . |
sync_interval |
تنسيق مدة golang | افتراضي: 10m . |
retry_interval |
تنسيق مدة golang | افتراضي: 10m . |
validation |
السلسلة | القيم: none ، client ، . server افتراضي: none . راجع وثائق Flux للحصول على التفاصيل. |
force |
Boolean | افتراضي: false . قم بتعيين force=true لإرشاد وحدة التحكم kustomize لإعادة إنشاء الموارد عند فشل التصحيح بسبب تغيير حقل غير قابل للتغيير. |
يمكنك أيضا استخدام az k8s-configuration flux kustomization
لتحديث kustomizations وإدراجها وإظهارها وحذفها في تكوين Flux.
الخطوات التالية
- تعرف على المزيد حول عمليات نشر التطبيقات باستخدام GitOps (Flux v2) ل AKS وKubernetes التي تدعم Azure Arc.
- استخدم البرنامج التعليمي لمعرفة كيفية تمكين GitOps على مجموعات Kubernetes التي تدعم AKS أو Azure Arc.
- تعرف على سير عمل CI/CD باستخدام GitOps.