Je vais exécuter plusieurs clusters Kubernetes dans différents clouds publics et même sur site (qui seront dans des emplacements différents). Je vais avoir le même site Web HTML/javascript en cours d'exécution sur chacun d'eux. J'aimerais pouvoir modifier une image en fonction du cluster dans lequel je me trouve. L'image elle-même affichera dans quel cluster elle se trouve actuellement, par exemple : AWS, Azure, GCP, etc.

Par exemple, chaque fois que vous actualisez, vous vous retrouvez dans un cluster différent et vous pouvez voir lequel car l'image sera affichée.

Je n'ai aucune idée de comment faire cela. Jusqu'à présent, je suis sûr que cela nécessitera JavaScript.

0
swalk 20 mars 2021 à 03:45

2 réponses

Meilleure réponse

Chaque fournisseur de cloud dispose généralement d'un serveur de métadonnées. Google, AWS et Azure ont des services de métadonnées dont vous pouvez lire les détails de configuration à l'aide de HTTP.

Pour déterminer le fournisseur de cloud sur Linux, lisez les données de l'instance Cloud Init. La clé JSON cloud-name vous indiquera le fournisseur de cloud.

Lisez ce fichier et analysez les données JSON :

/run/cloud-init/instance-data.json

Consultez la documentation de chaque service, voir les liens ci-dessous. Une fois que vous savez sur quel cloud vous exécutez, vous pouvez interroger la région, le nom du cluster, etc. Votre code côté serveur peut alors afficher tout ce que vous voulez aux clients.

Point de terminaison AWS :

http://169.254.169.254/latest/meta-data/

Documentation AWS

Point de terminaison Azure :

http://169.254.169.254/metadata/instance?api-version=2020-06-01

Documentation Azure

Point de terminaison Google :

http://metadata.google.internal/computeMetadata

Documentation Google

2
John Hanley 20 mars 2021 à 01:07
  • Vous pouvez utiliser le client JavaScript Kubernetes https://github.com/kubernetes-client/javascript pour obtenez des informations sur les objets de nœud Kubernetes depuis votre pod Kubernetes à l'aide du compte de service associé au pod.

  • Allez-vous utiliser AWS EKS, Azure AKS et GCP GKE pour Cloud Kubernetes ? Dans ce cas, le Cloud Controller Manager https://kubernetes.io/docs/concepts /architecture/cloud-controller/ annotera les nœuds Kubernetes avec les informations pertinentes

  • Comment allez-vous installer et gérer votre On Prem Kubernetes ? Utiliser OpenShift, Rancher ou un autre middleware ?

1
Sagar Velankar 20 mars 2021 à 21:01