Cet article est partagé par la communauté Huawei Cloud « Cloud Native Multi-Cloud Cluster Karmada | 8 sujets pour l'été Open Source 2024 vous invitent à co-créer » , auteur : Cloud Containers Great Future.
Introduction à l'été Open Source
L’inscription des étudiants à l’Open Source Summer 2024 ouvre le 30 avril. Open Source Summer est une activité open source d'été initiée et soutenue à long terme par le « Plan d'éclairage de la chaîne d'approvisionnement de logiciels open source » de l'Institut du logiciel de l'Académie chinoise des sciences. Elle vise à encourager les élèves des écoles à participer activement au développement et à l'élaboration de programmes. maintenance des logiciels open source, et pour cultiver et découvrir des développeurs plus remarquables, promouvoir le développement vigoureux d'excellentes communautés de logiciels open source et aider à construire des chaînes d'approvisionnement de logiciels open source. Le moteur de conteneur multi-cloud natif Karmada propose cette année 8 sujets dans le domaine du multi-cloud et du multi-cluster . Les étudiants du Collège sont invités à postuler.
Introduction à la communauté Karmada
Karmada ( https://github.com/karmada-io ) est le premier projet d'orchestration de conteneurs multi-cloud et multi-cluster du secteur, et il s'agit également d'un projet de niveau incubation de la Cloud Native Computing Foundation (CNCF) . La communauté Karmada a été lancée conjointement par huit sociétés, dont Huawei Cloud, la Banque industrielle et commerciale de Chine, Xiaohongshu et China FAW, et a été officiellement open source en avril 2021. Les contributeurs de Karmada viennent du monde entier et couvrent plus de 60 organisations dans 22 pays et régions du monde, notamment Huawei, DaoCloud, l'Université du Zhejiang, Didi, Tencent, Xiaohongshu, Sina, Intel, IBM, Red Hat, Comcast et d'autres sociétés. . Jusqu'à présent, le projet a reçu plus de 4,1 000 étoiles sur GitHub, une plateforme d'hébergement de projets logiciels open source.
Karmada (Kubernetes Armada) est un système de gestion Kubernetes qui vous permet d'exécuter des applications cloud natives dans plusieurs clusters Kubernetes et plates-formes cloud sans nécessiter de modifications d'application. Karmada permet un Kubernetes multi-cloud véritablement ouvert en utilisant les API natives de Kubernetes et en fournissant des fonctionnalités de planification avancées.
Projet Open Source été 2024 de la communauté Karmada
Sujet 1 : Karmada prend en charge la restauration en douceur des fonctionnalités d'un seul cluster
Difficulté du projet : Basique
Mentor de la communauté du projet : Pan Chaosi (Super pan)
Email de contact du moniteur : [email protected]
Description du projet : Karmada prend en charge la gestion d'un seul cluster et la reprise des ressources déployées sur le cluster unique d'origine. Il prend également en charge la suppression d'un seul cluster pour le rendre hors du contrôle de Karmada. Lors de la suppression d'un seul cluster, Karmada nettoiera les ressources qui étaient autrefois contrôlées par Karmada sur le cluster. Cependant, dans certains scénarios de suppression, les utilisateurs souhaitent que ces ressources restent dans le cluster unique. Karmada espère inciter davantage d'utilisateurs à essayer de passer d'un seul cluster à plusieurs clusters. Cette capacité peut réduire les coûts d'essai et d'erreur des utilisateurs. Lorsque les utilisateurs souhaitent revenir de plusieurs clusters à un seul cluster, ils peuvent éviter de causer des dommages au système. cluster unique après la restauration d'Influence.
Par conséquent, nous prévoyons de fournir une fonctionnalité de restauration fluide. Les utilisateurs peuvent configurer les ressources à conserver lors de la suppression d'un cluster géré, conservant ainsi de manière sélective les ressources dans le cluster unique d'origine.
Sujet 2 : Implémentation de la fonction de gestion des politiques de remplacement du tableau de bord Karmada
Difficulté du projet : Avancé
Mentor communautaire du projet : Lu Chuanjia (capitaine)
Email de contact du tuteur : [email protected]
Brève description du projet : Actuellement, Karmada Dashboard prend déjà en charge les capacités d'affichage de Cluster, PropagationPolicy et OverridePolicy. La communauté réécrit actuellement Karmada Dashboard, dans l'espoir de prendre pleinement en charge les capacités de gestion des ressources ci-dessus.
Nous espérons prendre pleinement en charge la gestion des fonctionnalités OverridePolicy dans Karmada Dashboard, prendre en charge l'édition et l'affichage des ressources OverridePolicy via l'éditeur OverridePolicy et réduire la complexité d'utilisation des utilisateurs.
Extension du projet : ajoutez des fonctionnalités LSP à la version YAML de l'éditeur (les travailleurs locaux et le JSON-RPC distant sont disponibles) pour réduire la complexité de l'écriture de YAML pour les utilisateurs ;
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40342?lang=zh&list=pro
Sujet 3 : karmadactl prend en charge la méthode du fichier de configuration pour l'installation et le déploiement d'un environnement de niveau production
Difficulté du projet : Basique
Mentor de la communauté du projet : Liang Yuanpeng
Email de contact du tuteur : [email protected]
Brève description du projet : Karmada fournit la méthode d'installation de la commande karmadactl init. Plus de paramètres doivent être définis lors de l'exécution de la commande, avec le développement de la communauté, les utilisateurs devront définir de plus en plus de paramètres, ce qui est peu pratique pour les utilisateurs. Afin de réduire les paramètres de ligne de commande excessifs, nous proposons l'installation et le déploiement via des fichiers de configuration. Vous devez comprendre et vous familiariser avec le code source de karmadactl init, soumettre une proposition pour le fichier de configuration de support de karmadactl init et promouvoir la proposition de fusion par la communauté karmada. L'objectif principal de cette proposition est de réduire les paramètres de ligne de commande excessifs, de migrer progressivement les paramètres sous forme de fichiers de configuration et de prendre pleinement en compte l'évolutivité de la solution pour faciliter l'ajout de nouveaux paramètres à l'avenir.
Problème connexe : https://github.com/karmada-io/karmada/issues/3464
De plus, karmadactl init doit utiliser plusieurs images de conteneur pendant le processus de déploiement, et les utilisateurs ne peuvent pas facilement obtenir la liste des images de conteneur qui seront utilisées. Par conséquent, nous prévoyons d'ajouter une sous-commande de liste d'images qui permet aux utilisateurs d'imprimer les images de conteneur utilisées lors du processus d'initialisation de karmadactl sur la console. Cette fonction est implémentée en tant qu'élément dans la solution ci-dessus.
Problème connexe : https://github.com/karmada-io/karmada/issues/4086.
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40186?lang=zh&list=pro
Sujet 4 : Karmada répartit uniformément le nombre de répliques en fonction des contraintes de distribution
Difficulté du projet : Avancé
Mentor communautaire du projet : He Junhua (whitewindmills)
Email de contact du tuteur : [email protected]
Brève description du projet : Dans la stratégie actuelle d'allocation du numéro de réplique du planificateur de Karmada, nous prenons déjà en charge quatre méthodes d'allocation de répliques : la réplication, le poids statique, l'agrégation basée sur le nombre de répliques disponibles et la pondération dynamique basée sur le nombre de répliques disponibles. Mais pour des scénarios de planification plus complexes : après les contraintes de distribution inter-AZ, le nombre de réplicas de la charge de travail est réparti aussi uniformément que possible dans le cluster sélectionné. Actuellement, Karmada ne prend pas bien en charge de tels scénarios.
Par conséquent, nous prévoyons de trier sémantiquement la stratégie de planification actuelle de Karmada, de déterminer s'il convient d'étendre l'API existante ou de modifier la conception originale de l'API, et enfin d'introduire cette fonctionnalité pour répondre aux besoins de planification d'un plus grand nombre de scénarios.
Problème connexe : https://github.com/karmada-io/karmada/issues/4805
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40281?lang=zh&list=pro
Sujet 5 : Karmada prend en charge le mécanisme de configuration dynamique OverridePolicy
Difficulté du projet : Avancé
Mentor de la communauté du projet : Jiang Xingyan (Chauncey)
Email de contact du tuteur : [email protected]
Description du projet : Karmada utilise l'API native Kubernetes et fournit des fonctions de planification avancées. Lorsque Karmada planifie des applications cloud natives sur différents clusters membres, les utilisateurs peuvent avoir besoin de configurations différenciées pour différents clusters membres, telles que la définition de différentes variables d'environnement ou la définition de différentes images pour différents clusters membres. À cet égard, Karmada fournit une API de politique de configuration différenciée - OverridePolicy, qui peut définir des informations de configuration différenciées pour différents clusters.
Il existe actuellement une limitation dans l'utilisation d'OverridePolicy. Il ne peut définir que certaines valeurs statiques et ne peut pas définir dynamiquement des valeurs en fonction de certaines conditions. Cette limitation limite les scénarios d'utilisation d'OverridePolicy. Par conséquent, nous souhaitons fournir un mécanisme capable de définir dynamiquement des valeurs en fonction de conditions. Cela améliore la flexibilité des utilisateurs dans l'utilisation d'OverridePolicy pour une configuration de cluster différenciée et apporte plus d'évolutivité aux utilisateurs. Par exemple, les utilisateurs peuvent se développer en définissant le langage CEL ou Lua dans OverridePolicy. La communauté a déjà des problèmes pertinents pour suivre cette tâche, et des solutions spécifiques doivent continuer à être avancées.
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40337?lang=zh&list=pro
Sujet 6 : Outil i18n automatisé Karmada Dashboard
Difficulté du projet : Basique
Mentor communautaire du projet : Ding Wenjiang (warjiang)
Email de contact du tuteur : [email protected]
Brève description du projet : i18n est un élément très important du projet d'internationalisation. Dans le processus de réécriture de Karmada Dashboard, nous avons eu du mal à trouver un ensemble d'outils i18n prêts à l'emploi dans la communauté open source. À mesure que l'échelle du projet s'étend, la gestion manuelle des capacités i18n est non seulement inefficace, mais la gestion manuelle des ressources i18n est également sujette aux erreurs.
Par conséquent, nous espérons développer un ensemble d'outils de traduction automatique i18n en complément du tableau de bord Karmada, qui prend en charge l'extraction automatique des caractères chinois du projet Karmada Dashboard, l'attribution automatique des clés i18n et le remplacement des caractères chinois originaux par la traduction i18n. fonctions de l'outil et l'extraction des caractères chinois reçus sont automatiquement traduits dans la langue cible en appelant une API de traduction tierce.
Prolongation du projet :
Fournit une page d'affichage des résultats de traduction i18n localement, permettant aux utilisateurs de visualiser la couverture i18n ; prend en charge les utilisateurs pour modifier manuellement la rédaction i18n ;
Utilisez GPT pour remplacer l'implémentation de traduction d'OpenAPI et établissez le glossaire Karmada pour éviter la traduction automatique des termes clés et améliorer la qualité de la traduction.
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40338?lang=zh&list=pro
Thème 7 : achèvement de la fonction karmadactl et amélioration de l'expérience d'exploitation et de maintenance
Difficulté du projet : Basique
Mentor de la communauté du projet : Ren Hongcai
Email de contact de l'instructeur : [email protected]
Brève description du projet : karmadactl est l'outil de ligne de commande (CLI) du projet Karmada, utilisé pour l'interaction entre les utilisateurs et administrateurs Karmada et Karmada. Comparé à kubectl, karmadactl est un outil CLI entièrement dédié aux scénarios multi-clusters Karmada. Actuellement, karmadactl implémente certaines applications de commandes telles que get et top dans des scénarios multi-clusters, mais certains scénarios doivent encore être implémentés et optimisés.
Par conséquent, nous prévoyons de compléter les fonctions de karmadactl dans des scénarios multiclusters, d'achever la mise en œuvre fonctionnelle de commandes telles que karmadactl create/patch/edit, d'optimiser l'entrée et la sortie de commandes telles que karmadactl get/apply et d'améliorer encore le fonctionnement. et expérience de maintenance de karmadactl.
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40397?lang=zh&list=pro
Sujet 8 : Réduire les autorisations RBAC des composants Karmada
Difficulté du projet : Avancé
Mentor de la communauté du projet : Zhang Zhuang
Email de contact de l'instructeur : [email protected]
Description du projet : Le projet Karmada utilise l'authentification RBAC pour réguler et contrôler l'accès aux ressources informatiques ou réseau. Si des autorisations d'accès aux objets ressources trop importantes sont attribuées lors de la configuration de RBAC, un abus d'autorisation peut se produire, permettant aux attaquants d'étendre leurs résultats et de pénétrer dans le cluster. Si une autorisation d'accès aux objets ressources trop petite est allouée lors de la configuration de RBAC, le composant peut fonctionner anormalement.
Par conséquent, nous prévoyons de trier l'ensemble d'autorisations RBAC minimum requis par le composant Karmada, de réviser la configuration actuelle recommandée par RBAC du référentiel Karmada et de la rendre conforme au principe du moindre privilège RBAC, et finalement de l'utiliser pour guider les utilisateurs de Karmada dans la configuration. les autorisations RBAC du composant Karmada.
Lien du projet : https://summer-ospp.ac.cn/org/prodetail/245c40153?lang=zh&list=pro
Comment s'inscrire au projet Open Source Summer Karmada ?
Objectif d'inscription
-
Cet événement est ouvert aux collégiens de plus de 18 ans.
-
Les étudiants qui sont sur le point d'obtenir leur diplôme cet été peuvent s'inscrire à l'événement à condition que leur carte d'étudiant soit valide au moment de postuler.
-
Les étudiants chinois doivent fournir leur carte d'identité, leur carte d'étudiant, le rapport de vérification en ligne de leur statut d'étudiant du ministère de l'Éducation (Xuexin.com) ou une preuve d'inscription lorsqu'ils participent à des activités.
-
Les étudiants étrangers sont tenus de fournir leur passeport lorsqu'ils participent aux activités, ainsi qu'un avis d'admission, une carte d'étudiant, un certificat d'inscription et d'autres documents prouvant leur identité d'étudiant.
Du 30 avril au 4 juin , les étudiants qualifiés peuvent s'inscrire, communiquer avec les tuteurs au sujet des projets et soumettre des candidatures de projets via le site officiel d'Open Source Summer (https://summer-ospp.ac.cn/).
Établir la communication avec le mentor
Les étudiants intéressés par les sujets d'été Open Source de la communauté Karmada peuvent contacter l'instructeur à l'avance pour communiquer les exigences du sujet via l'adresse e-mail de l'instructeur au-dessus de cet article ou via des conférences communautaires , et comprendre et verrouiller les projets qui leur conviennent ;
Préparer les documents de candidature au projet et soumettre la candidature
1. Consultez le [Modèle de demande de projet] dans le guide de l'étudiant (https://summer-ospp.ac.cn/help/student/) et préparez le matériel pertinent selon les besoins.
2. Cliquez sur le bouton [Ajouter une alternative] sur la page d'accueil du projet, accédez au centre personnel du système [Mon projet], cliquez sur le bouton [Afficher] et téléchargez votre CV et votre formulaire de candidature au projet ;
3. Hiérarchiser toutes les candidatures de projets. S'ils sont sélectionnés par plusieurs projets en même temps, les projets ayant la priorité la plus élevée seront sélectionnés en premier en fonction des projets soumis ;
4. Cliquez sur le bouton [Trier et soumettre] pour soumettre toutes les candidatures de projet.
Que peuvent gagner les étudiants ?
-
Apprenez à connaître des amis et des experts en technologie du secteur open source
-
Bénéficiez de conseils professionnels auprès de mentors communautaires et échangez en profondeur avec les développeurs de projets open source.
-
Enrichir l'expérience pratique du projet et améliorer les compétences en développement de projets
-
Fournir des références pour l’orientation des études et accumuler des contacts pour le développement de carrière
-
Les étudiants qui réussissent l'évaluation d'achèvement recevront une prime d'achèvement et un certificat d'achèvement (8 000 RMB avant impôts pour les difficultés de base, 12 000 RMB avant impôts pour les difficultés avancées) et auront la possibilité d'être sélectionnés comme étudiants exceptionnels.
Séminaire du projet d'été Open Source de la communauté Karmada
Cliquez pour suivre et découvrir les nouvelles technologies de Huawei Cloud dès que possible~
Les ressources piratées de "Qing Yu Nian 2" ont été téléchargées sur npm, obligeant npmmirror à suspendre le service unpkg. Zhou Hongyi : Il ne reste plus beaucoup de temps à Google. Je suggère que tous les produits soient open source. time.sleep(6) joue ici un rôle. Linus est le plus actif dans la « consommation de nourriture pour chiens » ! Le nouvel iPad Pro utilise 12 Go de puces mémoire, mais prétend disposer de 8 Go de mémoire. Le People's Daily Online examine la charge de type matriochka des logiciels de bureau : Ce n'est qu'en résolvant activement « l'ensemble » que nous pourrons avoir un avenir avec Flutter 3.22 et Dart 3.4 . nouveau paradigme de développement pour Vue3, sans avoir besoin de « ref/reactive », pas besoin de « ref.value » Publication du manuel chinois MySQL 8.4 LTS : vous aider à maîtriser le nouveau domaine de la gestion de bases de données Tongyi Qianwen niveau GPT-4 prix du modèle principal réduit de 97%, 1 yuan et 2 millions de jetons