Ce tutoriel vous montre comment exécuter une simple application Hello World Node.js sur Kubernetes en utilisant Minikube et Katacoda. Katacoda fournit un environnement Kubernetes gratuit dans le navigateur.
Note: Vous pouvez également suivre ce tutoriel si vous avez installé Minikube localement.
Ce tutoriel fournit une image de conteneur construite à partir des fichiers suivants :
minikube/server.js
|
|---|
|
minikube/Dockerfile
|
|---|
|
Pour plus d’informations sur la commande docker build, lisez la documentation de Docker.
Cliquez sur Lancer le terminal.
Note: Si vous avez installé Minikube localement, lancezminikube start.
Ouvrez le tableau de bord Kubernetes dans un navigateur :
minikube dashboardEnvironnement Katacoda seulement : En haut du volet du terminal, cliquez sur le signe plus, puis cliquez sur Sélectionner le port pour afficher sur l’hôte 1.
Environnement Katacoda seulement : Tapez 30000, puis cliquez sur Afficher le port.
Un Pod Kubernetes est un groupe d’un ou plusieurs conteneurs, liés entre eux à des fins d’administration et de mise en réseau. Dans ce tutoriel, le Pod n’a qu’un seul conteneur. Un Déploiement Kubernetes vérifie l’état de santé de votre Pod et redémarre le conteneur du Pod s’il se termine. Les déploiements sont le moyen recommandé pour gérer la création et la mise à l’échelle des Pods.
Utilisez la commande kubectl create pour créer un déploiement qui gère un Pod. Le
Pod utilise un conteneur basé sur l’image Docker fournie.
kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-nodeAffichez le déploiement :
kubectl get deploymentsSortie :
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
hello-node 1 1 1 1 1mVoir le Pod :
kubectl get podsSortie :
NAME READY STATUS RESTARTS AGE
hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1mAfficher les événements du cluster :
kubectl get eventsVoir la configuration de kubectl :
kubectl config view.Note: Pour plus d’informations sur les commandeskubectl, voir la vue d’ensemble de kubectl
Par défaut, le Pod n’est accessible que par son adresse IP interne dans le cluster Kubernetes.
Pour rendre le conteneur hello-node accessible depuis l’extérieur du réseau virtuel Kubernetes, vous devez exposer le Pod comme un Service Kubernetes.
Exposez le Pod à internet en utilisant la commande kubectl expose :
kubectl expose deployment hello-node --type=LoadBalancer --port=8080L’indicateur --type=LoadBalancer indique que vous voulez exposer votre Service
à l’extérieur du cluster.
Affichez le Service que vous venez de créer :
kubectl get servicesSortie :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23mSur les fournisseurs de cloud qui supportent les load balancers, une adresse IP externe serait fournie pour accéder au Service.
Sur Minikube, le type LoadBalancer rend le Service accessible via la commande minikube service.
Exécutez la commande suivante :
minikube service hello-nodeEnvironnement Katacoda seulement : Cliquez sur le signe plus, puis cliquez sur Sélectionner le port pour afficher sur l’hôte 1.
Environnement Katacoda seulement : Tapez 30369 (voir port en face de 8080 dans la sortie services), puis cliquez sur Afficher le port.
Cela ouvre une fenêtre de navigateur qui sert votre application et affiche le message Hello World.
Minikube dispose d’un ensemble d’extensions intégrées qui peuvent être activées, désactivées et ouvertes dans l’environnement Kubernetes local.
Énumérer les extensions actuellement pris en charge :
minikube addons listSortie:
addon-manager: enabled
coredns: disabled
dashboard: enabled
default-storageclass: enabled
efk: disabled
freshpod: disabled
heapster: disabled
ingress: disabled
kube-dns: enabled
metrics-server: disabled
nvidia-driver-installer: disabled
nvidia-gpu-device-plugin: disabled
registry: disabled
registry-creds: disabled
storage-provisioner: enabled
Activez une extension, par exemple, heapster :
minikube addons enable heapsterSortie :
heapster was successfully enabledAffichez le pod et le service que vous venez de créer :
kubectl get pod,svc -n kube-systemSortie :
NAME READY STATUS RESTARTS AGE
pod/heapster-9jttx 1/1 Running 0 26s
pod/influxdb-grafana-b29w8 2/2 Running 0 26s
pod/kube-addon-manager-minikube 1/1 Running 0 34m
pod/kube-dns-6dcb57bcc8-gv7mw 3/3 Running 0 34m
pod/kubernetes-dashboard-5498ccf677-cgspw 1/1 Running 0 34m
pod/storage-provisioner 1/1 Running 0 34m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/heapster ClusterIP 10.96.241.45 <none> 80/TCP 26s
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 34m
service/kubernetes-dashboard NodePort 10.109.29.1 <none> 80:30000/TCP 34m
service/monitoring-grafana NodePort 10.99.24.54 <none> 80:30002/TCP 26s
service/monitoring-influxdb ClusterIP 10.111.169.94 <none> 8083/TCP,8086/TCP 26sDésactivez heapster :
minikube addons disable heapsterSortie :
heapster was successfully disabledVous pouvez maintenant nettoyer les ressources que vous avez créées dans votre cluster :
kubectl delete service hello-node
kubectl delete deployment hello-nodeSi nécessaire, arrêtez la machine virtuelle Minikube (VM) :
minikube stopSi nécessaire, effacez la VM Minikube :
minikube deleteCette page est elle utile ?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.