Ein Artikel, der auf die Veranstaltung "Kubernetes Hackason ~ Zwei Tage, um in Docker und Kubernetes einzutauchen! ~" Zurückblickt, fand am 23. August 2019 statt.
Lehrer Microsoft-Anwalt: Kao Terada
Vielen Dank. m (_ _) m
Dieses Mal werden wir in Azure insgesamt drei Ressourcen erstellen: Ubuntu als Umgebung für Sprungbretter, Push-Ziel für Dockerfile und Umgebung zum Ausführen von Kubernetes.
Was den Inhalt betrifft, Erstellen Sie ein Docker-Image unter Ubuntu. Push an Azure Container Registry (ACR). Starten Sie den Container mit Azure Kubernetes Service (AKS). Stellen Sie sich vor bis.
Herr Terada hat die notwendigen Akten und Informationen sehr ordentlich zusammengestellt. GitHub-Link: https://github.com/yoshioterada/k8s-Azure-Container-Service-AKS--on-Azure
In Ordung! Machen wir das!
Link: https://signup.live.com/signup
Azure-Anmeldeseite: https://portal.azure.com/#home
Klicken Sie im Azure-Konsolenbildschirm auf "Ressource erstellen". Machen Sie Ubuntu 18.04 LTS Version Erstellen Sie eine neue Ressourcengruppe! Der Name der virtuellen Maschine ist identisch. Die Region ist "Ostjapan" Öffentlicher SSH-Schlüssel "Passwort" ssh erlauben
ssh userName @ ipAdress
Referenzartikel: https://qiita.com/myyasuda/items/cb8e076f4dba5c41afbc
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable test edge"
sudo apt-get update
sudo apt-get install docker-ce
docker --version
Danach möchte ich mit ACR und AKS zusammenarbeiten. Also werde ich die Azure CLI installieren!
Referenzartikel: http://aka.ms/az-cli-install-jp
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
// Der Unterschied zwischen dem Erstellen einer Docker-Datei und einem Docker-Image ...
Bewegung
cd FrontService
Schauen Sie sich das Dockerfile an
cat 0-Dockerfile-for-Maven
docker build -t maven-include-localrepo:1.1 . -f 0-Dockerfile-for-Maven
Überprüfen Sie, ob Sie es früher erstellen konnten.
docker images
// Kubernetes ist ein Image, das ein Docker-Image über ACR abruft. Ich denke, dass. // Private Version von Docker Hub Ist es nicht schön?
Ich möchte das erstellte Image in die zuvor erwähnte Azure Continer-Registrierung übertragen. Erstellen Sie es also zuerst.
Referenzartikel: https://github.com/yoshioterada/DEIS-k8s-ACS/blob/master/CreateAzureContainerRegistry.md Ressource im Browser erstellen Entscheiden Sie den Registrierungsnamen entsprechend. Die Ressourcengruppe ist neu und entsprechend festgelegt. Der Administrator hat es aktiviert.
Docker-Login. Geben Sie den Benutzernamen und die ACR-Domäne als Befehlsargumente an. Docker-Login -u [Benutzername] [xxx.azurecr.io] Geben Sie das Passwort nach ein
Erforderliche Informationen können mit dem Zugriffsschlüssel auf dem Detailbildschirm bestätigt werden.
Informationen auf dem Detailbildschirm erhalten { user : 〇〇 login-server: 〇〇〇〇.azurecr.io pass: 〇〇〇〇〇〇〇〇 }
// Ich habe mich bei ACR authentifiziert. (Mit Docker-Login.)
Herr Terada hat eine Docker-Image-Erstellung zusammengestellt und in einer .sh-Datei (2-build-create.sh) an ACR gesendet. Es scheint also, dass Sie sh mit einem Befehl beginnen sollten. Geben Sie jedoch das zu pushende Bild an und bearbeiten Sie die beiden Stellen des Push-Ziel-Repositorys mit vi!
vi 2-build-create.sh
DOCKER_IMAGE=〇〇〇〇/front-spring-service DOCKER_REPOSITORY=〇〇〇〇.azurecr.io
Wenn Sie einen Befehl eingeben, können Sie die Versionsspezifikation als Argument erhalten ... Wenn es das zweite Mal ist, setzen Sie sie auf 2.0!
./2-build-create.sh [x.x]
Überprüfen Sie, ob es mit Ihrem Browser gepusht wird!
vi src/main/java/com/yoshio3/frontspring/FrontController.java
Lassen Sie uns die Rückgabezeichenfolge ändern, die die beste von allen ist!
Okay, lass es uns basierend auf der geänderten Quelle erstellen
./2-build-create.sh 2.0
Bild starten
Docker run -p 8080: 8080 -it [REPOSITORY-Name]: [x.x (TAG-Nummer)]
Öffnen wir es in einem anderen Tab und greifen mit Curl darauf zu, um es zu überprüfen!
curl http://localhost:8080/sample/hello
Nächstes Ziel: Ich möchte einen Container mit AKS einrichten. Holen Sie sich zuerst das Bild in ACR!
Auch die Ressourcengruppe ist neu! Ist der Clustername gleich? Region ist Ostjapan Auf Knotenanzahl 1 einstellen. Virtueller Knoten aktiviert
HTTP-Anwendung ・ ・ ・ Ja
az aks install-cli
az login
az aks get-credentials --resource-group [xxxx] --name [xxxx]
kubectl cluster-info
Und
kubectl get node
Kubernetes kann derzeit nicht auf den ACR zugreifen. Bearbeiten Sie also 3-create-secret4reg.sh mit vi.
kubectl create secret docker-registry docker-reg-credential --docker-server=〇〇〇〇.azurecr.io --docker-username=〇〇 --docker-password="〇〇〇〇" [email protected]
kubectl get secret
!Okay, ich denke ich kann das Bild damit bekommen!
Ändern Sie den erstellten ACR-Servernamen und den Namen des Container-Images
vi 4-create-deployment-svc.yaml
Teil 30 korrigierte Zeile. Der einzugebende Inhalt ist in Docker-Bildern lang. Nach / schreibe ver. `` image: 〇〇〇〇.azurecr.io/〇〇/front-spring-service:1.0 `
Korrigieren Sie etwas unten. Die CPU wurde um 0,6 auf 100 m geändert. 2 Plätze
Wenn Sie 1.0 erhalten möchten, gehen Sie oben
template: metadata: labels: app: spring-front-service version: [Belassen Sie dies als "v1"]
In Ordung! Ich konnte das Bild für die Authentifizierung und Erfassung angeben.
kubectl apply -f 4-create-deployment-svc.yaml
kubectl get po -w
kubectl port-forward [spring-front-service-〇〇〇〇] 8080:8080
In einem anderen Tab ...
curl localhost:8080/sample/hello
#Ergebnisse werden angezeigt
Duplizieren Sie 4-create-deploy-svc.yaml, um 4-create-deploy-svc-v2.yaml zu erstellen.
Bearbeiten Sie mit vi 4-create-deploy-svc-v2.yaml
kubectl apply -f 4-create-deployment-svc-v2.yaml
kubectl get po
// Zweitens ist es möglicherweise besser, den Port weiterzuleiten und zu überprüfen.
Jetzt haben wir erfolgreich zwei Container mit k8s eingerichtet! Hurra! !!
kubectl get po --selector app=[],version=[v1]
-> Mit anderen Worten, Sie können einen Selektor schreiben, um zu steuern, auf welchen Pod Sie zugreifen möchten! !! !!
Als nächstes starten wir den v2-Container mit Kubernetes und aktualisieren v1 auf v2.
Lassen Sie uns einen Dienst erstellen und starten. Haben Sie das Gefühl, dass der Service den Zugang zum Pod vermittelt? ??
Wenn Sie pod ausführen, wird IP fest generiert. Wie schaffen Sie das? Handbuch ist schwer. Neben der IP-Adresse gibt es noch andere Möglichkeiten, auf den Pod zuzugreifen. Es ist nicht gut, dass sich die IP häufig ändert, nicht wahr?
Das Herzstück des Einsatzes => Solange Sie einen Dienst erstellen und sich diese eindeutige IP-Adresse merken, können Sie den Pod mit der Dienstauswahl ändern. Lassen Sie uns 11-Service.yaml überprüfen!
kubectl apply -f 11-Service.yaml
kubectl get svc
Sie können zu neuen Pods wechseln, während Sie die normal funktionierenden Pods beibehalten. Sie können es sofort zurückgeben! Das ist das Tolle an Kubernetes! !! !! !! Es ist schwer, es selbst zu tun. Bearbeiten Sie einfach yaml.
Normalerweise ist der Dienst vom Typ: ClusterIP! !! Wenn Sie es wirklich auch nur für einen Moment nach außen zeigen möchten, geben Sie Folgendes ein: LoadBalancer. Aber nicht gut. Achtung. Bitte seien Sie vorsichtig.
-> Wenn mehrere Dienste vorhanden sind, können Sie den aufzurufenden Dienst gemäß der URL verzweigen, indem Sie sie in Ingress gruppieren und den Pfad in den Ingress-Einstellungen festlegen.
Trennen Sie URLs mit Ingress! Verzweigen Sie den Pod mit Service. Das Image ist Service-Routing. Rezeptionist! !!
Eine praktische Funktion zum Bedienen von Mikrodiensten.
vi 12-Ingress.yaml
Änderung: -host: front-service. [〇〇〇〇.aksapp.io]
Der Inhalt dieses Fixes wird aus der Ressource "HTTP-Anwendungsroutingdomäne" im Browser eingefügt.
kubectl apply -f 12-Ingress.yaml
kubectl get ing
http://[front-service.〇〇〇〇.japaneast.aksapp.io]/sample/hello
Der Inhalt der Veranstaltung endet vorerst hier.
Es ist besser, Kubernetes nicht zu berühren, es sei denn, Sie haben die Einstellung, Dinge unter der Voraussetzung zu machen, dass sie kaputt gehen. Dropdown-Liste. Reduzieren Sie den Einflussbereich. Es ist besser, unter der Voraussetzung zu denken, dass es fallen wird, als zu versuchen, zu verhindern, dass es fällt. Betrachten Sie den Fluss der Rekonstruktion, wenn er fällt. Wie weit wird das Design der Messe gehen? Es wird definitiv fallen.
Vielen Dank, Herr Terada! Um ehrlich zu sein, hatte Docker es 30 Minuten lang berührt, also verstand ich es irgendwie, aber Kubernetes war unwissend. Zum Glück war ich ein Mob-Profi und habe es geschafft, es zu beenden! !!
(´∀`)
Später machten wir drei dasselbe mit einem Bekannten. Dieser Artikel wurde basierend auf einem damals erfolgreichen Beispiel erstellt.
Es ist wichtig zu wiederholen.
Kubernetes ... Ich bin froh, dass ich mich ein wenig mikroservice gefühlt habe. Ich möchte es wieder tun! (^ ・ ^)
Recommended Posts