Thierry  Perret

Thierry Perret

1661917990

Comment Créer Un Cluster AWS EKS Avec Eksctl

Dans ce guide, vous apprendrez à créer des clusters sur AWS Elastic Kubernetes Service (EKS) avec eksctl . À la fin du didacticiel, vous automatiserez la création de trois clusters (dev, staging, prod) avec le contrôleur d'entrée ALB en un seul clic.

EKS est un service Kubernetes géré, ce qui signifie qu'Amazon Web Services (AWS) est entièrement responsable de la gestion du plan de contrôle. Aujourd'hui, nous allons examiner la création et la gestion de notre cluster EKS avec la eksctl ligne de commande.

TABLE DES MATIÈRES

1 · Trois options populaires pour provisionner un cluster EKS
2 · Mais d'abord, configurons le compte AWS
3 · Eksctl : le moyen le plus rapide de provisionner un cluster EKS
4 · Vous pouvez également définir des clusters eksctl dans YAML, mais les outils ont leurs limites
5 · Récapitulation


En particulier, AWS :

  • Gère les serveurs d'API Kubernetes et la base de données etcd.
  • Exécute le plan de contrôle Kubernetes sur trois zones de disponibilité.
  • Met à l'échelle le plan de contrôle à mesure que vous ajoutez des nœuds à votre cluster.
  • Fournit un mécanisme pour mettre à niveau votre plan de contrôle vers une version plus récente.
  • Rotation des certificats.
  • Et plus.

Si vous exécutez votre cluster, vous devez toujours créer toutes ces fonctionnalités.

Cependant, lorsque vous utilisez EKS, vous les sous-traitez à Amazon Web Service pour un prix : 0,10 USD par heure et par cluster.

Veuillez noter qu'Amazon Web Services propose une promotion de niveau gratuit de 12 mois lorsque vous vous inscrivez pour un nouveau compte. Cependant, EKS ne fait pas partie de la promotion.

Le reste du guide suppose que vous avez un compte sur Amazon Web Service.

Si ce n'est pas le cas, vous pouvez vous inscrire ici.

Ceci est un guide pratique - si vous préférez regarder le code, vous pouvez le faire ici.

Trois options populaires pour provisionner un cluster EKS

Il existe trois options courantes pour exécuter et déployer un cluster EKS :

  1. Vous pouvez créer le cluster à partir de l' interface Web AWS.
  2. Vous pouvez utiliser l'utilitaire de ligne de commande eksctl .
  3. Vous pouvez définir le cluster comme utilisant du code avec un outil tel que Terraform.

Même si elle est répertoriée comme la première option, la création d'un cluster à l'aide de l'interface AWS est déconseillée et pour une bonne raison.

Il y a beaucoup d'options de configuration et d'écrans que vous devez compléter avant de pouvoir utiliser le cluster.

Lorsque vous créez le cluster manuellement, pouvez-vous être sûr que :

  • Vous n'avez pas oublié de modifier un des paramètres ?
  • Vous pouvez répéter exactement les mêmes étapes lors de la création d'un cluster pour d'autres environnements ?
  • Lorsqu'il y a un changement, vous pouvez appliquer les mêmes modifications dans l'ordre à tous les clusters sans aucune erreur ?

Le processus est sujet aux erreurs et ne s'adapte pas bien si vous avez plusieurs clusters.

Une meilleure option consiste à définir un fichier contenant tous les indicateurs de configuration et à l'utiliser comme modèle pour créer le cluster.

Et c'est précisément ce que vous pouvez faire avec des outils tels que eksctl et Terraform.

Mais d'abord, configurons le compte AWS

Avant de pouvoir commencer à utiliser eksctl et Terraform, vous devez installer l'AWS CLI.

Cet outil est nécessaire pour authentifier vos demandes à votre compte sur Amazon Web Services.

Vous pouvez trouver la documentation officielle sur l'installation de l'AWS CLI ici.

Après avoir installé l'AWS CLI, vous devez exécuter :

$ aws --version 
aws-cli/2.0.40 Python/3.8.5 Darwin/19.6.0 source/x86_64

Si vous pouvez voir la version dans la sortie, cela signifie que l'installation est réussie.

Ensuite, vous devez lier votre compte à l'AWS CLI.

Pour cette partie, vous aurez besoin de :

  1. ID de clé d'accès AWS.
  2. Clé d'accès secrète AWS.
  3. Nom de région par défaut.
  4. Format de sortie par défaut.

Les éléments essentiels dont vous avez besoin sont les deux premiers : l' ID de clé d'accès et la clé d'accès secrète .

Ces informations d'identification ne s'affichent qu'une seule fois après la création d'un utilisateur sur l'interface Web AWS.

Pour ce faire, suivez ces instructions :

Maintenant que vous avez les clés, vous entrez tous les détails :

$ aws configure
AWS Access Key ID [None]: <enter the access key>
AWS Secret Access Key [None]: <enter the secret key>
Default region name [None]: <eu-west-2>
Default output format [None]: <None>

L'AWS CLI vous permet d'interagir avec AWS sans utiliser l'interface Web.

Vous pouvez essayer de répertorier tous vos clusters EKS avec :

$ aws eks list-clusters 
{     
"clusters": [] 
}

Une liste vide - c'est logique, vous n'en avez pas encore créé.

Maintenant que votre compte sur AWS est configuré, il est temps d'utiliser eksctl.

Eksctl : le moyen le plus rapide de provisionner un cluster EKS

Eksctl est un outil de ligne de commande pratique pour créer un cluster EKS avec quelques commandes simples.

Alors, quelle est la différence avec l'AWS CLI ?

L'AWS CLI n'est-elle pas suffisante pour créer des ressources ?

L'AWS CLI a une commande pour créer un cluster EKS : aws eks create-cluster.

Cependant, la commande crée uniquement un plan de contrôle.

Il ne crée aucun nœud de travail, ne configure pas l'authentification, les autorisations, etc.

D'autre part, eksctl est un aws ekssur les stéroïdes.

Avec une seule commande, vous disposez d'un cluster entièrement fonctionnel.

Avant de plonger dans un exemple, vous devez installer le binaire eksctl.

Vous pouvez trouver les instructions sur la façon d'installer eksctl à partir de la page officielle du projet.

Vous pouvez vérifier qu'eksctl est correctement installé avec :

$ eksctl version 
0.25.0

Eksctl utilise les informations d'identification de l'AWS CLI pour se connecter à votre compte.

Vous pouvez donc créer un cluster avec :

$ eksctl cluster create

La commande fait quelques hypothèses sur le cluster souhaité :

  • Il crée un plan de contrôle (géré par AWS).
  • Il joint deux noeuds worker.
  • Il sélectionne le m5.largecomme type d'instance.
  • Il crée le cluster dans la us-west-2région.

Si le cluster ne correspond pas tout à fait à ce que vous aviez en tête, vous pouvez facilement personnaliser les paramètres en fonction de vos besoins.

Bien entendu, vous pouvez modifier la région ou inclure un type d'instance couvert par l'offre de niveau gratuit, tel qu'un t2.micro.

Aussi, pourquoi ne pas inclure l'autoscaling ?

Vous pouvez créer un nouveau cluster avec :

$ eksctl create cluster \   
--name learnk8s-cluster \   
--node-type t2.micro \   
--nodes 3 \   
--nodes-min 3 \   
--nodes-max 5 \   
--region eu-central-1

La commande crée un plan de contrôle :

  • Dans la région eu-central-1 (Francfort) .
  • Avec le nom du cluster comme "learnk8s-cluster".
  • Utilisation d' t2.microinstances.
  • Les instances de nœud de calcul effectueront une mise à l'échelle automatique en fonction de la charge (de 3 à un maximum de 5 nœuds).

Veuillez noter que la commande peut prendre environ 15 à 20 minutes.

En ce moment, eksctl:

  1. Utilise les informations d'identification de l'AWS CLI pour se connecter à votre compte sur AWS.
  2. Crée des modèles de formation de nuages ​​pour le cluster EKS ainsi que les groupes de nœuds. Cela inclut les images AMI, les versions, les volumes, etc.
  3. Crée toute la plomberie réseau nécessaire, telle que le VPC, les sous-réseaux et les adresses IP.
  4. Génère les informations d'identification nécessaires pour accéder au cluster Kubernetes - le kubeconfig.

Pendant que vous attendez que le cluster soit provisionné, vous devez télécharger kubectl, l'outil de ligne de commande permettant de connecter et de gérer le cluster Kubernetes.

Veuillez télécharger kubectl ICI

Vous pouvez vérifier que le binaire est installé avec succès avec :

$ kubectl version --client

Il devrait vous donner la version en sortie.

Une fois votre cluster prêt, vous serez accueilli par la ligne suivante.

[output truncated] 
[✔]  EKS cluster "learnk8s-cluster" in "eu-central-1" region is ready$

Vous pouvez vérifier que le cluster est en cours d'exécution en utilisant :

$ eksctl get cluster --name learnk8s-cluster --region eu-central-1

Ça marche!

Listons tous les pods du cluster :

kubectl get pods --all-namespaces
kube-system   aws-node-j4x9b            1/1     Running   0          4m11s
kube-system   aws-node-lzqkd            1/1     Running   0          4m12s
kube-system   aws-node-vj7rh            1/1     Running   0          4m12s
kube-system   coredns-5fdf64ff8-7zb4g   1/1     Running   0          10m
kube-system   coredns-5fdf64ff8-x5dfd   1/1     Running   0          10m
kube-system   kube-proxy-67967          1/1     Running   0          4m12s
kube-system   kube-proxy-765wd          1/1     Running   0          4m12s
kube-system   kube-proxy-gxjdn          1/1     Running   0          4m11s

Vous pouvez voir à partir de l' espace de kube-systemnoms que Kubernetes a créé les pods obligatoires nécessaires pour exécuter le cluster.

Avec cela, vous avez réussi à créer et à vous connecter à un cluster Kubernetes entièrement fonctionnel.

Félicitations!

Contenez votre excitation, cependant - vous détruisez immédiatement le cluster.

Il existe une meilleure façon de créer des clusters avec eksctl, et c'est en définissant ce que vous voulez dans un fichier YAML.

Vous pouvez également définir des clusters eksctl dans YAML, mais les outils ont leurs limites

Lorsque vous disposez de toute la configuration du cluster dans un seul fichier, vous pouvez :

  1. Stockez dans Git ou tout autre contrôle de version.
  2. Partagez-le avec vos amis et collègues.
  3. Rappelez-vous quelle était la dernière configuration appliquée au cluster.

Avant d'explorer la configuration YAML pour eksctl, détruisons le cluster actuel avec :

$ eksctl delete cluster --name learnk8s-cluster --region eu-central-1

N'oubliez pas de laisser la commande se terminer et faire son travail, sinon l'arrêt prématuré risque de laisser quelques ressources en suspens (qui vous seront facturées).

Vous devriez voir la sortie de commande suivante une fois la suppression terminée :

[sortie tronquée] 
[✔] toutes les ressources du cluster ont été supprimées$

Eksctl vous permet de créer des clusters définis au format YAML.

Vous pouvez définir la spécification de votre cluster et de votre nœud et transmettre ce fichier à eksctl afin qu'il puisse créer les ressources.

Voyons comment cela fonctionne.

Créez un cluster.yamlfichier avec le contenu suivant :

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: learnk8s
  region: eu-central-1
nodeGroups:
  - name: worker-group
    instanceType: t2.micro
    desiredCapacity: 3
    minSize: 3
    maxSize: 5

Vous pouvez déjà deviner à quoi ressemblera le cluster ci-dessus une fois déployé.

C'est le même cluster que vous avez créé précédemment avec les arguments de ligne de commande, mais cette fois toutes les exigences sont stockées dans le YAML.

C'est un cluster :

  • Dans la région eu-central-1 (Francfort) .
  • Avec le nom du cluster comme "learnk8s-cluster".
  • Utilisation d' t2.microinstances.
  • Les instances de nœud de calcul effectueront une mise à l'échelle automatique en fonction de la charge (de 3 à un maximum de 5 nœuds).

Vous pouvez créer un cluster en alimentant la configuration YAML avec :

$ eksctl create cluster -f cluster.yaml

Encore une fois, soyez patient ici.

La commande aura besoin de 10 à 15 minutes pour terminer le provisionnement des ressources.

Vous pouvez vérifier que le cluster a été créé avec succès avec :

$ eksctl get cluster --name learnk8s
NAME         VERSION    STATUS
learnk8s        1.17    ACTIVE

Et vous avez terminé, vous avez correctement provisionné un cluster avec eksctl et YAML.

Si vous le souhaitez, vous pouvez enregistrer ce fichier dans le contrôle de version.

Vous pouvez vous demander ce qui se passe lorsque vous appliquez à nouveau la même configuration ?

Met-il à jour le cluster ?

Essayons:

$ eksctl create cluster -f cluster.yaml
[✖]  Stack [eksctl-learnk8s-cluster] already exists status code: 400

$

Vous ne pourrez pas modifier la spécification car la commande create n'est utilisée qu'au début pour créer le cluster.

Si vous souhaitez décrire le cluster en tant que fichier statique, mais mettre à jour la configuration de manière incrémentielle, vous trouverez peut-être que Terraform est plus approprié. Nous le ferons dans notre prochain article.

Emballer

Dans cet article, nous avons examiné la configuration de notre cluster EKS à l'aide de certaines eksctl commandes. C'est une très bonne idée si vous choisissez d'utiliser l'AWS CLI pour créer votre cluster. Si vous souhaitez décrire le cluster comme un fichier statique, mais mettre à jour la configuration de manière incrémentielle, vous trouverez peut-être que Terraform est plus approprié, nous y reviendrons dans notre prochain article.

Lien : https://faun.pub/kubernetes-provisioning-clusters-on-aws-with-eks-f45b9b6b4018

#aws #eks 

What is GEEK

Buddha Community

Comment Créer Un Cluster AWS EKS Avec Eksctl
Thierry  Perret

Thierry Perret

1661917990

Comment Créer Un Cluster AWS EKS Avec Eksctl

Dans ce guide, vous apprendrez à créer des clusters sur AWS Elastic Kubernetes Service (EKS) avec eksctl . À la fin du didacticiel, vous automatiserez la création de trois clusters (dev, staging, prod) avec le contrôleur d'entrée ALB en un seul clic.

EKS est un service Kubernetes géré, ce qui signifie qu'Amazon Web Services (AWS) est entièrement responsable de la gestion du plan de contrôle. Aujourd'hui, nous allons examiner la création et la gestion de notre cluster EKS avec la eksctl ligne de commande.

TABLE DES MATIÈRES

1 · Trois options populaires pour provisionner un cluster EKS
2 · Mais d'abord, configurons le compte AWS
3 · Eksctl : le moyen le plus rapide de provisionner un cluster EKS
4 · Vous pouvez également définir des clusters eksctl dans YAML, mais les outils ont leurs limites
5 · Récapitulation


En particulier, AWS :

  • Gère les serveurs d'API Kubernetes et la base de données etcd.
  • Exécute le plan de contrôle Kubernetes sur trois zones de disponibilité.
  • Met à l'échelle le plan de contrôle à mesure que vous ajoutez des nœuds à votre cluster.
  • Fournit un mécanisme pour mettre à niveau votre plan de contrôle vers une version plus récente.
  • Rotation des certificats.
  • Et plus.

Si vous exécutez votre cluster, vous devez toujours créer toutes ces fonctionnalités.

Cependant, lorsque vous utilisez EKS, vous les sous-traitez à Amazon Web Service pour un prix : 0,10 USD par heure et par cluster.

Veuillez noter qu'Amazon Web Services propose une promotion de niveau gratuit de 12 mois lorsque vous vous inscrivez pour un nouveau compte. Cependant, EKS ne fait pas partie de la promotion.

Le reste du guide suppose que vous avez un compte sur Amazon Web Service.

Si ce n'est pas le cas, vous pouvez vous inscrire ici.

Ceci est un guide pratique - si vous préférez regarder le code, vous pouvez le faire ici.

Trois options populaires pour provisionner un cluster EKS

Il existe trois options courantes pour exécuter et déployer un cluster EKS :

  1. Vous pouvez créer le cluster à partir de l' interface Web AWS.
  2. Vous pouvez utiliser l'utilitaire de ligne de commande eksctl .
  3. Vous pouvez définir le cluster comme utilisant du code avec un outil tel que Terraform.

Même si elle est répertoriée comme la première option, la création d'un cluster à l'aide de l'interface AWS est déconseillée et pour une bonne raison.

Il y a beaucoup d'options de configuration et d'écrans que vous devez compléter avant de pouvoir utiliser le cluster.

Lorsque vous créez le cluster manuellement, pouvez-vous être sûr que :

  • Vous n'avez pas oublié de modifier un des paramètres ?
  • Vous pouvez répéter exactement les mêmes étapes lors de la création d'un cluster pour d'autres environnements ?
  • Lorsqu'il y a un changement, vous pouvez appliquer les mêmes modifications dans l'ordre à tous les clusters sans aucune erreur ?

Le processus est sujet aux erreurs et ne s'adapte pas bien si vous avez plusieurs clusters.

Une meilleure option consiste à définir un fichier contenant tous les indicateurs de configuration et à l'utiliser comme modèle pour créer le cluster.

Et c'est précisément ce que vous pouvez faire avec des outils tels que eksctl et Terraform.

Mais d'abord, configurons le compte AWS

Avant de pouvoir commencer à utiliser eksctl et Terraform, vous devez installer l'AWS CLI.

Cet outil est nécessaire pour authentifier vos demandes à votre compte sur Amazon Web Services.

Vous pouvez trouver la documentation officielle sur l'installation de l'AWS CLI ici.

Après avoir installé l'AWS CLI, vous devez exécuter :

$ aws --version 
aws-cli/2.0.40 Python/3.8.5 Darwin/19.6.0 source/x86_64

Si vous pouvez voir la version dans la sortie, cela signifie que l'installation est réussie.

Ensuite, vous devez lier votre compte à l'AWS CLI.

Pour cette partie, vous aurez besoin de :

  1. ID de clé d'accès AWS.
  2. Clé d'accès secrète AWS.
  3. Nom de région par défaut.
  4. Format de sortie par défaut.

Les éléments essentiels dont vous avez besoin sont les deux premiers : l' ID de clé d'accès et la clé d'accès secrète .

Ces informations d'identification ne s'affichent qu'une seule fois après la création d'un utilisateur sur l'interface Web AWS.

Pour ce faire, suivez ces instructions :

Maintenant que vous avez les clés, vous entrez tous les détails :

$ aws configure
AWS Access Key ID [None]: <enter the access key>
AWS Secret Access Key [None]: <enter the secret key>
Default region name [None]: <eu-west-2>
Default output format [None]: <None>

L'AWS CLI vous permet d'interagir avec AWS sans utiliser l'interface Web.

Vous pouvez essayer de répertorier tous vos clusters EKS avec :

$ aws eks list-clusters 
{     
"clusters": [] 
}

Une liste vide - c'est logique, vous n'en avez pas encore créé.

Maintenant que votre compte sur AWS est configuré, il est temps d'utiliser eksctl.

Eksctl : le moyen le plus rapide de provisionner un cluster EKS

Eksctl est un outil de ligne de commande pratique pour créer un cluster EKS avec quelques commandes simples.

Alors, quelle est la différence avec l'AWS CLI ?

L'AWS CLI n'est-elle pas suffisante pour créer des ressources ?

L'AWS CLI a une commande pour créer un cluster EKS : aws eks create-cluster.

Cependant, la commande crée uniquement un plan de contrôle.

Il ne crée aucun nœud de travail, ne configure pas l'authentification, les autorisations, etc.

D'autre part, eksctl est un aws ekssur les stéroïdes.

Avec une seule commande, vous disposez d'un cluster entièrement fonctionnel.

Avant de plonger dans un exemple, vous devez installer le binaire eksctl.

Vous pouvez trouver les instructions sur la façon d'installer eksctl à partir de la page officielle du projet.

Vous pouvez vérifier qu'eksctl est correctement installé avec :

$ eksctl version 
0.25.0

Eksctl utilise les informations d'identification de l'AWS CLI pour se connecter à votre compte.

Vous pouvez donc créer un cluster avec :

$ eksctl cluster create

La commande fait quelques hypothèses sur le cluster souhaité :

  • Il crée un plan de contrôle (géré par AWS).
  • Il joint deux noeuds worker.
  • Il sélectionne le m5.largecomme type d'instance.
  • Il crée le cluster dans la us-west-2région.

Si le cluster ne correspond pas tout à fait à ce que vous aviez en tête, vous pouvez facilement personnaliser les paramètres en fonction de vos besoins.

Bien entendu, vous pouvez modifier la région ou inclure un type d'instance couvert par l'offre de niveau gratuit, tel qu'un t2.micro.

Aussi, pourquoi ne pas inclure l'autoscaling ?

Vous pouvez créer un nouveau cluster avec :

$ eksctl create cluster \   
--name learnk8s-cluster \   
--node-type t2.micro \   
--nodes 3 \   
--nodes-min 3 \   
--nodes-max 5 \   
--region eu-central-1

La commande crée un plan de contrôle :

  • Dans la région eu-central-1 (Francfort) .
  • Avec le nom du cluster comme "learnk8s-cluster".
  • Utilisation d' t2.microinstances.
  • Les instances de nœud de calcul effectueront une mise à l'échelle automatique en fonction de la charge (de 3 à un maximum de 5 nœuds).

Veuillez noter que la commande peut prendre environ 15 à 20 minutes.

En ce moment, eksctl:

  1. Utilise les informations d'identification de l'AWS CLI pour se connecter à votre compte sur AWS.
  2. Crée des modèles de formation de nuages ​​pour le cluster EKS ainsi que les groupes de nœuds. Cela inclut les images AMI, les versions, les volumes, etc.
  3. Crée toute la plomberie réseau nécessaire, telle que le VPC, les sous-réseaux et les adresses IP.
  4. Génère les informations d'identification nécessaires pour accéder au cluster Kubernetes - le kubeconfig.

Pendant que vous attendez que le cluster soit provisionné, vous devez télécharger kubectl, l'outil de ligne de commande permettant de connecter et de gérer le cluster Kubernetes.

Veuillez télécharger kubectl ICI

Vous pouvez vérifier que le binaire est installé avec succès avec :

$ kubectl version --client

Il devrait vous donner la version en sortie.

Une fois votre cluster prêt, vous serez accueilli par la ligne suivante.

[output truncated] 
[✔]  EKS cluster "learnk8s-cluster" in "eu-central-1" region is ready$

Vous pouvez vérifier que le cluster est en cours d'exécution en utilisant :

$ eksctl get cluster --name learnk8s-cluster --region eu-central-1

Ça marche!

Listons tous les pods du cluster :

kubectl get pods --all-namespaces
kube-system   aws-node-j4x9b            1/1     Running   0          4m11s
kube-system   aws-node-lzqkd            1/1     Running   0          4m12s
kube-system   aws-node-vj7rh            1/1     Running   0          4m12s
kube-system   coredns-5fdf64ff8-7zb4g   1/1     Running   0          10m
kube-system   coredns-5fdf64ff8-x5dfd   1/1     Running   0          10m
kube-system   kube-proxy-67967          1/1     Running   0          4m12s
kube-system   kube-proxy-765wd          1/1     Running   0          4m12s
kube-system   kube-proxy-gxjdn          1/1     Running   0          4m11s

Vous pouvez voir à partir de l' espace de kube-systemnoms que Kubernetes a créé les pods obligatoires nécessaires pour exécuter le cluster.

Avec cela, vous avez réussi à créer et à vous connecter à un cluster Kubernetes entièrement fonctionnel.

Félicitations!

Contenez votre excitation, cependant - vous détruisez immédiatement le cluster.

Il existe une meilleure façon de créer des clusters avec eksctl, et c'est en définissant ce que vous voulez dans un fichier YAML.

Vous pouvez également définir des clusters eksctl dans YAML, mais les outils ont leurs limites

Lorsque vous disposez de toute la configuration du cluster dans un seul fichier, vous pouvez :

  1. Stockez dans Git ou tout autre contrôle de version.
  2. Partagez-le avec vos amis et collègues.
  3. Rappelez-vous quelle était la dernière configuration appliquée au cluster.

Avant d'explorer la configuration YAML pour eksctl, détruisons le cluster actuel avec :

$ eksctl delete cluster --name learnk8s-cluster --region eu-central-1

N'oubliez pas de laisser la commande se terminer et faire son travail, sinon l'arrêt prématuré risque de laisser quelques ressources en suspens (qui vous seront facturées).

Vous devriez voir la sortie de commande suivante une fois la suppression terminée :

[sortie tronquée] 
[✔] toutes les ressources du cluster ont été supprimées$

Eksctl vous permet de créer des clusters définis au format YAML.

Vous pouvez définir la spécification de votre cluster et de votre nœud et transmettre ce fichier à eksctl afin qu'il puisse créer les ressources.

Voyons comment cela fonctionne.

Créez un cluster.yamlfichier avec le contenu suivant :

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: learnk8s
  region: eu-central-1
nodeGroups:
  - name: worker-group
    instanceType: t2.micro
    desiredCapacity: 3
    minSize: 3
    maxSize: 5

Vous pouvez déjà deviner à quoi ressemblera le cluster ci-dessus une fois déployé.

C'est le même cluster que vous avez créé précédemment avec les arguments de ligne de commande, mais cette fois toutes les exigences sont stockées dans le YAML.

C'est un cluster :

  • Dans la région eu-central-1 (Francfort) .
  • Avec le nom du cluster comme "learnk8s-cluster".
  • Utilisation d' t2.microinstances.
  • Les instances de nœud de calcul effectueront une mise à l'échelle automatique en fonction de la charge (de 3 à un maximum de 5 nœuds).

Vous pouvez créer un cluster en alimentant la configuration YAML avec :

$ eksctl create cluster -f cluster.yaml

Encore une fois, soyez patient ici.

La commande aura besoin de 10 à 15 minutes pour terminer le provisionnement des ressources.

Vous pouvez vérifier que le cluster a été créé avec succès avec :

$ eksctl get cluster --name learnk8s
NAME         VERSION    STATUS
learnk8s        1.17    ACTIVE

Et vous avez terminé, vous avez correctement provisionné un cluster avec eksctl et YAML.

Si vous le souhaitez, vous pouvez enregistrer ce fichier dans le contrôle de version.

Vous pouvez vous demander ce qui se passe lorsque vous appliquez à nouveau la même configuration ?

Met-il à jour le cluster ?

Essayons:

$ eksctl create cluster -f cluster.yaml
[✖]  Stack [eksctl-learnk8s-cluster] already exists status code: 400

$

Vous ne pourrez pas modifier la spécification car la commande create n'est utilisée qu'au début pour créer le cluster.

Si vous souhaitez décrire le cluster en tant que fichier statique, mais mettre à jour la configuration de manière incrémentielle, vous trouverez peut-être que Terraform est plus approprié. Nous le ferons dans notre prochain article.

Emballer

Dans cet article, nous avons examiné la configuration de notre cluster EKS à l'aide de certaines eksctl commandes. C'est une très bonne idée si vous choisissez d'utiliser l'AWS CLI pour créer votre cluster. Si vous souhaitez décrire le cluster comme un fichier statique, mais mettre à jour la configuration de manière incrémentielle, vous trouverez peut-être que Terraform est plus approprié, nous y reviendrons dans notre prochain article.

Lien : https://faun.pub/kubernetes-provisioning-clusters-on-aws-with-eks-f45b9b6b4018

#aws #eks 

Rory  West

Rory West

1622634720

Configure AWS ElasticSearch Service with EKS Cluster

AWS provides Elasticsearch service along with Kibana which makes developer’s work easy and simple. This article will guide on how to provision an AWS ElasticSearch Service and connect with an EKS cluster for log monitoring.

Article content

  1. Provision the ES Cluster
  2. Configure Fluent-Bit in EKS
  3. Deploy Fluent-bit
  4. Access Kibana Dashboard

Introduction to Elasticsearch Service

Elasticsearch can be installed on-premise, on Amazon EC2 or AWS Elasticsearch service. When you install Elasticsearch on-premise or on Amazon EC2, you have to be responsible for installing, provision infrastructure and managing the cluster. But with AWS Elasticsearch amazon takes care of everything. It is a fully managed service.

Along with Elasticsearch, AWS provides Kibana. It is deployed automatically with your Elasticsearch Domain as a fully managed service, automatically taking care of all the heavy lifting to manage the cluster.

AWS provides two types of endpoints in ES setups. 1 — Internet endpoint; 2 — VPC endpoint. You can also have a custom endpoint if you want to configure with a domain you have. We’ll discuss more features and configurations while provisioning an ES Domain.

In this article, we’ll provision an internet endpoint ES Domain.

#aws-eks #aws-elasticsearch #aws #elasticsearch-service #eks cluster

Deployment of Webapp over AWS-EKS cluster

Amazon EKS (Elastic Container Service for Kubernetes) — Allows you to use Kubernetes on AWS without installing and managing your own Kubernetes control plane.

EKS itself manages the master node privately inside its own infrastructure. Only we have to worry about our slave environment( like instance-type).

Here, we can launch various instance-types of the slave environment also knowns as nodeGroups, and inside this nodeGroups, we can launch as many nodes of various instance-type.

Benefits of using AWS-EKS

  • Easy to use.
  • Flexible.
  • Cost-effective.
  • Reliable.
  • Scalable and high-performance.
  • Secure.

#kubernetes-cluster #aws-efs #aws-eks #aws

Seamus  Quitzon

Seamus Quitzon

1601341562

AWS Cost Allocation Tags and Cost Reduction

Bob had just arrived in the office for his first day of work as the newly hired chief technical officer when he was called into a conference room by the president, Martha, who immediately introduced him to the head of accounting, Amanda. They exchanged pleasantries, and then Martha got right down to business:

“Bob, we have several teams here developing software applications on Amazon and our bill is very high. We think it’s unnecessarily high, and we’d like you to look into it and bring it under control.”

Martha placed a screenshot of the Amazon Web Services (AWS) billing report on the table and pointed to it.

“This is a problem for us: We don’t know what we’re spending this money on, and we need to see more detail.”

Amanda chimed in, “Bob, look, we have financial dimensions that we use for reporting purposes, and I can provide you with some guidance regarding some information we’d really like to see such that the reports that are ultimately produced mirror these dimensions — if you can do this, it would really help us internally.”

“Bob, we can’t stress how important this is right now. These projects are becoming very expensive for our business,” Martha reiterated.

“How many projects do we have?” Bob inquired.

“We have four projects in total: two in the aviation division and two in the energy division. If it matters, the aviation division has 75 developers and the energy division has 25 developers,” the CEO responded.

Bob understood the problem and responded, “I’ll see what I can do and have some ideas. I might not be able to give you retrospective insight, but going forward, we should be able to get a better idea of what’s going on and start to bring the cost down.”

The meeting ended with Bob heading to find his desk. Cost allocation tags should help us, he thought to himself as he looked for someone who might know where his office is.

#aws #aws cloud #node js #cost optimization #aws cli #well architected framework #aws cost report #cost control #aws cost #aws tags

AWS Fargate for Amazon Elastic Kubernetes Service | Caylent

On-demand cloud computing brings new ways to ensure scalability and efficiency. Rather than pre-allocating and managing certain server resources or having to go through the usual process of setting up a cloud cluster, apps and microservices can now rely on on-demand serverless computing blocks designed to be efficient and highly optimized.

Amazon Elastic Kubernetes Service (EKS) already makes running Kubernetes on AWS very easy. Support for AWS Fargate, which introduces the on-demand serverless computing element to the environment, makes deploying Kubernetes pods even easier and more efficient. AWS Fargate offers a wide range of features that make managing clusters and pods intuitive.

Utilizing Fargate
As with many other AWS services, using Fargate to manage Kubernetes clusters is very easy to do. To integrate Fargate and run a cluster on top of it, you only need to add the command –fargate to the end of your eksctl command.

EKS automatically configures the cluster to run on Fargate. It creates a pod execution role so that pod creation and management can be automated in an on-demand environment. It also patches coredns so the cluster can run smoothly on Fargate.

A Fargate profile is automatically created by the command. You can choose to customize the profile later or configure namespaces yourself, but the default profile is suitable for a wide range of applications already, requiring no human input other than a namespace for the cluster.

There are some prerequisites to keep in mind though. For starters, Fargate requires eksctl version 0.20.0 or later. Fargate also comes with some limitations, starting with support for only a handful of regions. For example, Fargate doesn’t support stateful apps, DaemonSets or privileged containers at the moment. Check out this link for Fargate limitations for your consideration.

Support for conventional load balancing is also limited, which is why ALB Ingress Controller is recommended. At the time of this writing, Classic Load Balancers and Network Load Balancers are not supported yet.

However, you can still be very meticulous in how you manage your clusters, including using different clusters to separate trusted and untrusted workloads.

Everything else is straightforward. Once the cluster is created, you can begin specifying pod execution roles for Fargate. You have the ability to use IAM console to create a role and assign it to a Fargate cluster. Or you can also create IAM roles and Fargate profiles via Terraform.

#aws #blog #amazon eks #aws fargate #aws management console #aws services #kubernetes #kubernetes clusters #kubernetes deployment #kubernetes pods