Faire évoluer Kubernetes jusqu’à 7 500 nœuds
(openai.com)-
OpenAI partage son expérience de montée en charge de k8s pour GPT-3, DALL·E, etc.
-
En général, on ne fait pas évoluer un cluster unique jusqu’à 7 500 nœuds, ce qui nécessite une gestion particulière, mais cela permet d’obtenir une infrastructure simple et de monter en charge facilement sans modifier le code.
-
L’environnement applicatif et matériel diffère un peu de celui des entreprises classiques.
→ Les GPU doivent utiliser pleinement le matériel du nœud via NVLink, GPUDirect, etc.
→ C’est pourquoi, en général, un seul Pod occupe l’ensemble du nœud.
→ Autrement dit, il y a beaucoup de nœuds, mais la charge sur le scheduler reste relativement faible.
- Réseau
→ Comme le nombre de pods et de nœuds a fortement augmenté, ils sont passés au Native Pod Networking.
→ Le traitement des adresses IP a été modifié pour reposer sur des alias, ce qui permet d’utiliser 200 000 adresses IP à tout moment.
- API Server
→ Utilisation du tableau de bord Grafana fourni par kube-prometheus.
→ Il est utile de définir des alertes sur les HTTP 429 (Too Many Requests) et les 5xx (Server Error) comme signaux de haut niveau en cas de problème.
→ L’API Server s’exécute toujours en dehors du cluster
1 commentaires
C’est un article assez long… Comme je n’aurai probablement jamais à mettre en place un cluster de cette taille, je n’en ai fait qu’un bref résumé.