Articles

Créer des définitions de ressources clients sur Kubernetes

Créer des définitions de ressources clients sur Kubernetes est une tâche importante pour garantir le bon fonctionnement de votre application. Découvrez comment le faire facilement!

## Kubernetes Custom Resource Definitions (CRDs) : Un tutoriel

First, you’ll need to define the custom resource. This is done using the Kubernetes API, which is a declarative way of defining objects. You’ll need to provide the name of the resource, its fields, and any validation rules you want to apply. Once you’ve defined the resource, you can create instances of it using the Kubernetes API.

Next, you’ll need to create a controller for the CRD. This is a piece of code that will watch for changes to the custom resource and take action accordingly. For example, if you create a new instance of the resource, the controller could create a new pod or service based on the data in the resource. The controller can also be used to update existing resources when their data changes.

Finally, you’ll need to deploy the controller. This is done using the Kubernetes API, and it will allow the controller to start watching for changes to the custom resource. Once deployed, the controller will be able to take action based on changes to the custom resource.

Kubernetes est une plateforme open-source populaire utilisée pour automatiser le déploiement, le dimensionnement et la gestion des applications conteneurisées. Il fournit une puissante API pour gérer les ressources, mais parfois ses ressources intégrées ne sont pas suffisantes pour votre cas d’utilisation. C’est là que les définitions de ressources personnalisées (CRD) de Kubernetes entrent en jeu. Les CRD vous permettent de définir vos propres ressources personnalisées, qui peuvent être gérées de la même manière que les ressources intégrées telles que les pods et les services.

Dans ce tutoriel, nous allons passer en revue les étapes pour mettre en œuvre une CRD Kubernetes.

Tout d’abord, vous devrez définir la ressource personnalisée. Cela se fait à l’aide de l’API Kubernetes, qui est une manière déclarative de définir des objets. Vous devrez fournir le nom de la ressource, ses champs et toutes les règles de validation que vous souhaitez appliquer. Une fois la ressource définie, vous pouvez créer des instances de celle-ci à l’aide de l’API Kubernetes.

Ensuite, vous devrez créer un contrôleur pour la CRD. Il s’agit d’un morceau de code qui surveillera les modifications apportées à la ressource personnalisée et agira en conséquence. Par exemple, si vous créez une nouvelle instance de la ressource, le contrôleur peut créer un nouveau pod ou un nouveau service en fonction des données de la ressource. Le contrôleur peut également être utilisé pour mettre à jour les ressources existantes lorsque leurs données changent.

Enfin, vous devrez déployer le contrôleur. Cela se fait à l’aide de l’API Kubernetes et permettra au contrôleur de commencer à surveiller les modifications apportées à la ressource personnalisée. Une fois déployé, le contrôleur sera en mesure d’agir en fonction des modifications apportées à la ressource personnalisée.

Les CRD Kubernetes offrent une grande flexibilité et permettent aux développeurs d’utiliser des données personnalisées pour gérer leurs applications sur Kubernetes. Les CRD peuvent être utilisés pour créer des objets personnalisés tels que des bases de données, des services réseau ou des services d’analyse. Les contrôleurs associés

Source de l’article sur DZONE

Qu'est-ce que Envoy Gateway et pourquoi est-il nécessaire pour Kubernetes ?

Envoy Gateway est un service proxy open source qui fournit une connectivité sécurisée et un routage intelligent pour les applications Kubernetes. Il est nécessaire pour assurer la sécurité et la disponibilité des applications.

## Envoy Gateway : Faciliter la configuration d’Envoy proxy comme passerelle API et contrôleur d’entrée

Envoy Gateway est un projet qui a été créé pour faciliter le codage des applications multicloud. Il est basé sur le proxy Envoy, qui est le plan de données du service mesh Istio. Envoy est utilisé pour gérer le trafic est-ouest (communication de service à service à l’intérieur d’un centre de données). Cependant, pour que Istio gère un réseau d’applications multicloud, Envoy a été configuré comme un proxy côté pour gérer le trafic nord-sud (trafic entrant et sortant des centres de données).

Il a été constaté que les développeurs d’applications trouvaient difficile de configurer le proxy Envoy en tant que passerelle API et contrôleur d’entrée. Cela prenait beaucoup de temps, ce qui a conduit la communauté à utiliser l’API Gateway Kubernetes en tant que partie du projet Envoy et à finalement construire Envoy Gateway. Envoy Gateway est conçu pour être facilement configurable et peut être utilisé pour fournir des fonctionnalités telles que la sécurité, la mise en cache, la journalisation et la surveillance des API. Il peut également être utilisé pour fournir des fonctionnalités telles que la mise en œuvre de règles de routage, la gestion des certificats TLS et le contrôle d’accès.

Envoy Gateway est un outil très pratique pour les développeurs d’applications multicloud. Il permet aux développeurs de configurer et de gérer facilement leurs applications multicloud. Il permet également aux développeurs de mettre en œuvre des fonctionnalités avancées telles que la sécurité, la mise en cache, la journalisation et la surveillance des API. En outre, il permet aux développeurs de mettre en œuvre des règles de routage, de gérer les certificats TLS et de contrôler l’accès aux applications. Enfin, Envoy Gateway offre une grande flexibilité et une grande scalabilité pour les applications multicloud.

Source de l’article sur DZONE

Any typical enterprise-grade application deployed on Kubernetes comprises several API resources that need to be deployed together. For example, the WordPress application, which is one of the example applications available on the Kubernetes GitHub repository, includes:

  • a wordpress frontend pod,
  • a wp-pv-claim persistent volume claim mounted to the frontend pod,
  • a wordpress-mysql MySQL database pod,
  • a mysql-pv-claim persistent volume claim mounted to the MySQL database pod,
  • two persistent volumes: wordpress-pv-1 and wordpress-pv-2 to serve the persistent volume claims,
  • services for the database and frontend pods.

Application (or app) is not a native construct in Kubernetes. However, managing applications is the primary concern of the developers and operations. Application delivery on Kubernetes involves upgrading, downgrading, and customizing the individual API resources. Kubernetes allows you to restrict the spread of your application resources through namespaces such that you can deploy an entire app in a namespace that can be deleted or created. However, a complex application might consist of resources spread across namespaces, and in such cases answering the following questions might be a challenge:

Source de l’article sur DZONE

To teach myself Kubernetes in general and controllers in particular, I previously developed one in Java. This week, I decided to do the same in Rust by following the same steps I did.

  1. My First Cup of Rust
  2. My Second Cup of Rust
  3. The Rustlings Exercises – Part 1
  4. The Rustlings Exercises – Part 2
  5. Rust on the Front-End
  6. A Rust Controller for Kubernetes (this post)

The Guiding Principle

The guiding principle is creating a Kubernetes controller that watches pods’ lifecycle and injects a sidecar into them. When Kubernetes schedules the pod, the controller schedules the sidecar; when it deletes the former, it deletes the latter as well.

Source de l’article sur DZONE