Maison développement back-end Golang Utiliser Google Kubernetes Engine (GKE) dans Go : un guide complet

Utiliser Google Kubernetes Engine (GKE) dans Go : un guide complet

Jun 17, 2023 pm 01:25 PM
go语言 kubernetes gke

Ces dernières années, Kubernetes est devenu le standard de facto pour les plates-formes d'orchestration de conteneurs, et Google Kubernetes Engine (GKE) est un moteur Kubernetes entièrement géré fourni sur Google Cloud Platform. Il fournit non seulement une orchestration automatisée des conteneurs, une évolutivité et une haute disponibilité, mais permet également un démarrage et un ajustement rapides, facilitant ainsi le déploiement du code. Cet article vous expliquera comment utiliser GKE dans le langage Go. J'espère que cet article pourra devenir un guide complet d'utilisation de GKE.

Étape 1 : Créer un projet et activer l'API GKE

Tout d'abord, nous devons créer un projet Google Cloud Platform. Avant d'accéder à GKE, nous devons activer l'API GKE. Il existe de nombreuses façons d'activer l'API GKE, nous en présentons ici deux : 

1 Sur la page "API et services" > "API" de Google Cloud Console, filtrez "API Kubernetes Engine" et activez-la.

2. Dans le cloud Shell ou le terminal local, entrez la commande suivante :

gcloud services enable container.googleapis.com
Copier après la connexion

Étape 2 : Créer un cluster Kubernetes

Après avoir activé l'API GKE, nous devons créer un cluster Kubernetes. La taille et les spécifications du cluster peuvent être ajustées en fonction des besoins spécifiques. Voici un exemple contenant 3 nœuds de taille n1-standard-1 :

gcloud container clusters create example-cluster --zone=us-central1-a --num-nodes=3 --machine-type=n1-standard-1
Copier après la connexion

Lors de l'exécution de la commande ci-dessus, nous devons remplacer "example-cluster" par le nom du cluster que nous devons créer. De plus, nous devons également sélectionner une région pour créer notre cluster, ici nous avons sélectionné us-central1-a. Le nombre et les spécifications des nœuds du cluster Kubernetes doivent également être ajustés en fonction de la situation réelle.

Étape 3 : Installer les outils client Kubernetes

Après avoir créé le cluster Kubernetes, nous devons installer et configurer les outils client Kubernetes pour gérer notre cluster. Les outils clients Kubernetes incluent généralement Kubectl et Helm. kubectl est un outil de ligne de commande pour Kubernetes qui peut être utilisé pour gérer des clusters, des pods et des conteneurs Kubernetes, et effectuer des opérations telles que la création, la mise à jour, la suppression et le développement. Helm est un gestionnaire de packages qui peut être utilisé pour installer et gérer des bibliothèques tierces.

La méthode pour installer et configurer kubectl est la suivante :

1. Installez kubectl dans le terminal local :

gcloud components install kubectl
Copier après la connexion

2. Configurez kubectl avec le cluster actuel :

gcloud container clusters get-credentials example-cluster --zone=us-central1-a
Copier après la connexion

3. pour gérer le cluster, par exemple, exécutez la commande suivante pour obtenir tous les nœuds du cluster Kubernetes :

kubectl get nodes
Copier après la connexion

La méthode pour installer et configurer Helm est la suivante :

1. Téléchargez le fichier binaire Helm dans le terminal local et installez-le. it :

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get-helm-3 | bash
Copier après la connexion

2. Connectez Helm au cluster Kubernetes actuel Configuration :

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller --upgrade
Copier après la connexion

Étape 4 : Déployer l'application Go sur GKE

Enfin, nous pouvons déployer notre application Go dans le cluster Kubernetes. Voici un exemple de déploiement d'une application Go à l'aide des ressources de déploiement et de service :

1. Créez un fichier YAML contenant les ressources de déploiement et de service, par exemple :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: go-app-deployment
  labels:
    app: go-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: go-app
  template:
    metadata:
      labels:
        app: go-app
    spec:
      containers:
        - name: go-app
          image: gcr.io/example-project/go-app:latest
          ports:
            - containerPort: 8080
              protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: go-app-service
  labels:
    app: go-app
spec:
  selector:
    app: go-app
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
  type: LoadBalancer
Copier après la connexion

où "go-app-deployment" est le déploiement que nous avons créé. nom de la ressource, "go-app" est l'espace de noms que nous utilisons et "go-app-service" est le nom de la ressource de service que nous avons créée. Nous devons spécifier une image de conteneur pour la ressource de déploiement, telle que "gcr.io/example-project/go-app:latest".

2. Utilisez la commande kubectl pour appliquer ce fichier YAML au cluster Kubernetes :

kubectl apply -f go-app.yaml
Copier après la connexion

3. Exécutez la commande suivante pour obtenir l'adresse IP externe créée sur GKE :

kubectl get service go-app-service
Copier après la connexion

Dans les résultats renvoyés, vous pouvez trouver "EXTERNE". - Champ "IP", cette adresse est l'adresse de l'application Go que nous avons déployée.

Résumé

Cet article fournit un guide complet sur l'utilisation de GKE en langage Go. GKE est un moteur Kubernetes entièrement géré qui nous fournit une orchestration de conteneurs pour l'automatisation des données, une haute disponibilité, une évolutivité et une interface facile à utiliser. À l'aide des méthodes mentionnées dans cet article, nous pouvons facilement déployer des applications Go sur GKE et ajouter des processus de déploiement automatisés pour rendre le déploiement d'applications plus pratique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Quelles bibliothèques sont utilisées pour les opérations du numéro de point flottantes en Go? Apr 02, 2025 pm 02:06 PM

La bibliothèque utilisée pour le fonctionnement du numéro de point flottante dans le langage go présente comment s'assurer que la précision est ...

Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Quel est le problème avec le fil de file d'attente dans GO's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Problème de threading de file d'attente dans Go Crawler Colly explore le problème de l'utilisation de la bibliothèque Crawler Crawler dans le langage Go, les développeurs rencontrent souvent des problèmes avec les threads et les files d'attente de demande. � ...

Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Comment résoudre le problème de conversion de type user_id lors de l'utilisation du flux redis pour implémenter les files d'attente de messages dans le langage Go? Apr 02, 2025 pm 04:54 PM

Le problème de l'utilisation de Redessstream pour implémenter les files d'attente de messages dans le langage GO consiste à utiliser le langage GO et redis ...

Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Dans Go, pourquoi les chaînes d'impression avec println et string () ont-elles des effets différents? Apr 02, 2025 pm 02:03 PM

La différence entre l'impression de chaîne dans le langage go: la différence dans l'effet de l'utilisation de fonctions println et string () est en Go ...

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Apr 02, 2025 pm 05:09 PM

Que dois-je faire si les étiquettes de structure personnalisées à Goland ne sont pas affichées? Lorsque vous utilisez Goland pour le développement du langage GO, de nombreux développeurs rencontreront des balises de structure personnalisées ...

Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Quelle est la différence entre la structure de définition des mots clés `var` et« type »dans le langage Go? Apr 02, 2025 pm 12:57 PM

Deux façons de définir les structures dans le langage GO: la différence entre les mots clés VAR et le type. Lorsque vous définissez des structures, GO Language voit souvent deux façons d'écrire différentes: d'abord ...

Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Quelles bibliothèques de GO sont développées par de grandes entreprises ou fournies par des projets open source bien connus? Apr 02, 2025 pm 04:12 PM

Quelles bibliothèques de GO sont développées par de grandes entreprises ou des projets open source bien connus? Lors de la programmation en Go, les développeurs rencontrent souvent des besoins communs, ...

Lorsque vous utilisez SQL.Open, pourquoi ne signale pas une erreur lorsque DSN passe vide? Lorsque vous utilisez SQL.Open, pourquoi ne signale pas une erreur lorsque DSN passe vide? Apr 02, 2025 pm 12:54 PM

Lorsque vous utilisez SQL.Open, pourquoi le DSN ne signale-t-il pas une erreur? En langue go, sql.open ...

See all articles