Inlägg i blogg av Mats Johannesson
Förutsättning: Konto för GCP.
Arbetsuppgift 1: Anslut till konsol för GCP och logga på
1. Öppna webbläsare och skriv in URL: https://console.cloud.google.com och klicka på Enter.
2. Logga på med dina inloggningsuppgifter.
Arbetsuppgift 2: Skapa projekt och verifiera att API är påslaget
1. I konsol, expandera Navigation menu på vänstra sidan och klicka på IAM & Admin – Settings.
2. I fältet under Project name, skriv in nytt namn för ditt projekt, klicka sedan på SAVE.
3. Återinläs sidan och namnet kommer att förändras.
4. I konsol, expandera Navigation menu på vänstra sidan och klicka på APIs & Services - Dashboard.
5. Skriv in Kubernetes Engine API i sökrutan och klicka på Enter. Klicka på Kubernetes Engine API i sökresultatet.
6. Klicka på ENABLE (Om API redan är påslaget, kommer det att stå DISABLE). Detta kommer att ta några minuter.
7. När API är påslaget kommer översiktsbild att visas.
8. Skriv in Google Container Registry API i sökrutan och klicka på Enter. Klicka på Google Container Registry API i sökresultatet.
9. Verifiera att det står Enabled under Activation status.
Arbetsuppgift 3: Skapa kluster
1. I den högra övre delen av konsol, klicka på ikon >_ (Activate Cloud Shell).
2. I nedre delen av konsol, klicka på
Continue. Virtuell maskin med Cloud Shell kommer att skapas och startas.
3. Istället för att arbeta i den nedre delen av konsolen, klicka på ikon för Open in new window, för att öppna ett nytt fönster med Cloud Shell.
4. Skriv in följande kommando och klicka på Enter, för att skapa variabel som innehåller namnet för den zon där du kommer att skapa klustret:
export MIN_ZON=europe-north1-a
För att se vilka zoner som finns tillgängliga, använd följande kommando:
gcloud compute zones list
5. Skriv in följande kommando och klicka på Enter, för att skapa kluster för webbfrontend med två (2) noder:
gcloud container clusters create webbfronten --zone $MIN_ZON --num-nodes 2
6. Efter en stund kommer klustret vara
klart, verifiera att STATUS visar RUNNING.
7. Skriv in följande kommando och klicka på Enter, för att kontrollera version:
kubectl version
8. Återgå
till konsol, expandera Navigation menu på vänstra sidan och klicka på Compute
Engine, verifiera att noder som du skapade är virtuella maskiner och att dessa
finns i den zon som du specificerade.
9. Du kan även se klustret genom att expandera Navigation menu på vänstra sidan och klicka på Kubernetes clusters, verifiera att klustret som du skapade tidigare visas.
Arbetsuppgift 4: Skapa deplyment för nginx
1. Återgå till fönstret för Cloud Shell.
2. Skriv in följande kommando och klicka på Enter, för att skapa deployment för nginx:
kubectl create deployment nginx --image=nginx:latest
2. Deployment består av en pod, för att verifiera detta skriv in följande kommando och klicka på Enter:
kubectl get pods
Arbetsuppgift 5: Exponera pod för åtkomst från Internet (LoadBalancer)
1. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter:
kubectl expose deployment nginx --port 80 --type LoadBalancer
LoadBalancer exponeras som en tjänst (services). I .easec:s modul Kubernetes beskrivs de olika kopplingarna som kan göras, bland annat med NodePort.
2. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att se information om extern IP-adress (Kan ta en liten stund!):
kubectl get services
Notera extern IP-adress.
3. Öppna ny flik i din webbläsare, skriv in extern IP-adress och klicka på Enter. Standardsida för nginx visas.
4. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att skala din deployment:
kubectl scale deployment nginx --replicas 4
5. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att se pods:
kubectl get pods
6. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att se på vilka noder som pods körs på:
kubectl get pods -o wide
Två pods körs på respektive nod. Lägg märke till att respektive pod har en unik IP-adress.
I verklig miljö så kan du styra hur dessa pods kommer att fördelas. I .easec:s modul Kubernetes tittar vi på detta. Det kommer att komma ett blogginlägg om detta. I Kubernetes är det Scheduler som hanterar detta.
Bilden ovan visar två typer av undersökningar som kan göras (det finns fler), tillgång av resurser och etikett (label).
7. Återgå till konsol, expandera Navigation menu på vänstra sidan och klicka på Kubernetes Engine – Services & Ingress, notera att tjänsten visas i konsol.
8. Dubbelklicka på din tjänst, i fliken Overview får du en översiktsbild för din tjänst.
9. Klicka på fliken YAML för att se konfigurationsfil för din funktion.
Arbetsuppgift 6: Städa upp
1. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter:
kubectl delete deployment nginx
2. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att verifiera att pods är borttagna:
kubectl get pods
Kommandot resulterar i att inga pods finns.
3.cI fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att ta bort tjänst (nginx):
kubectl delete service nginx
4. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att kontrollera att tjänst är borta:
kubectl get services
5. I fönstret för Cloud Shell, skriv in följande kommando och klicka på Enter, för att ta bort klustret:
gcloud container clusters delete webbfronten --zone $MIN_ZON
Skriv in ett Y och klicka på Enter för att bekräfta att du vill ta bort.
6. Återgå till konsol, expandera Navigation menu på vänstra sidan och klicka på Compute Engine, verifiera att noder som skapades tidigare är borta.
Du är klar!