‫Oke. Deze lezing begint waar de
‫vorige eindigde. Dus, als je hier
‫gewoon in springt en je hebt de laatste overgeslagen, ga
‫dan terug naar die, want je hebt de implementatie nodig die we in die hebben
‫gemaakt om deze te starten.
‫Wanneer ik een kubectl doe om alles te
‫krijgen, zou ik hier moeten zien dat ik één implementatie heb
‫met een replicaset van vijf.
‫Je ziet de vijf pods.
‫Dan heb je de standaardservice van Kubernetes, die
‫er altijd is. Dan
‫de httpenv cluster IP-service.
‫U kunt natuurlijk verschillende IP-adressen en verschillende
‫podnamen hebben. Daar moeten we zijn.
‫We hebben deze implementatie.
‫We hebben een IP-adres in het cluster gemaakt zodat anderen er toegang
‫toe hebben met de beschrijvende naam httpenv, omdat dat
‫de servicenaam is.
‫Laten we er een maken die extern wordt
‫weergegeven op het host-IP. Dit zou zijn, als u zich
‫misschien in een datacenter zou bevinden of ergens waar u geen
‫load balancer had die u zou kunnen bedienen met de load balancer-service, waar we
‫het even over zullen hebben.
‫In dit geval wil je eigenlijk gewoon een
‫NodePort doen waarbij je poorten ergens in het hoge bereik van
‫je Kubernetes-cluster krijgt die je kunt
‫gebruiken om van buiten naar binnen te praten.
‫Dus het zal er toegang toe hebben vanaf
‫een externe service, toch. Standaard staat hij niet op poort 80.
‫De NodePorts zijn bedoeld als hoge poorten, dus
‫je plaatst daar meestal iets voor, zoals
‫een externe load balancer of een geautomatiseerde service die dat
‫voor je zal beheren. In dit geval kan
‫ik opnieuw een kubectl-exposure doen.
‫Het gaat eruit zien als de laatste die we deden.
‫implementatie httpenv.
‫Dat is degene die we moeten ontmaskeren.
‫We gaan poort 8888 opnieuw invoeren.
‫Maar we gaan het een nieuwe naam geven omdat we
‫er al een hebben met de naam httpenv.
‫Dus deze gaan
‫we een httpenv-np noemen voor geen poort.
‫Op die manier werkt het zij aan zij met het
‫cluster-IP-adres dat er al is.
‫Dan gaan we het type wijzigen in NodePort.
‫U zult dat type NodePort opmerken, omdat het het standaardtype is,
‫dat we handmatig kunnen specificeren als u dat wilt.
‫Het standaardtype is cluster-IP.
‫Als ik terugga en een kubectl get-services doe, zie
‫je daar een
‫nieuwe van het type NodePort.
‫Laten we het hebben over de poorten aan de rechterkant.
‫Die poorten, wanneer ze de dubbele punt in het midden hebben, zijn
‫het tegenovergestelde van wat je zou zien in Docker en Swarm.
‫De poort aan de linkerkant is in
‫dit geval de poort in het cluster, in de container zelf
‫die wordt vermeld.
‫Dan is de poort aan de rechterkant de poort die op
‫uw knooppunten is blootgesteld aan de buitenwereld.
‫Je vraagt je misschien af waar de poort aan de rechterkant vandaan komt.
‫Die poort komt uit een standaardbereik voor NodePorts
‫die vooraf zijn ingesteld in
‫uw containercluster.
‫Het is een hoog bereik. De hoop hier is dat er geen
‫conflicten zijn, toch. Dat er niets
‫anders op uw systeem standaard draait op die poorten.
‫Omdat vaak de lage poorten, zoals 8888, zo algemeen zijn dat ze door iets
‫anders kunnen worden gebruikt. Dan zijn alle
‫poorten in het echt lage bereik meestal
‫alleen toegankelijk via root. Poorten 1024 en lager.
‫Er zijn een paar dingen om hier op te merken.
‫De eerste is dat u het cluster-IP ziet.
‫Hoewel we bij het maken van deze
‫NodePort-service geen cluster-IP zeiden.
‫We zeiden NodePort.
‫Deze diensten zijn additief.
‫Wat dat betekent, is dat het begint met cluster-IP en
‫vervolgens naar NodePort gaat en vervolgens naar de
‫optionele load balancer-service. Elk van hen zal de
‫services erboven in deze lijst maken.
‫Wat betekent dat wanneer ik een NodePort maak,
‫het een cluster-IP-eindpunt voor mij creëert, omdat
‫het zo verbinding maakt. Het neemt de verbinding die
‫binnenkomt in die poort op de hoge poort van het
‫knooppunt en leidt het vervolgens om naar het cluster-IP voor die service.
‫Natuurlijk, zoals de meeste dingen in Kubernetes, is dit allemaal
‫veranderlijk en aanpasbaar.
‫Een van de dingen die u kunt wijzigen, is het poortbereik.
‫Een daarvan is dat u het cluster-IP kunt vermijden.
‫Veel van die dingen kun je doen, maar het meeste kun je
‫alleen in YAML doen, waar we later op terug zullen komen.
‫Als je dingen op de opdrachtregel zoals deze
‫doet, zijn we beperkt in het aantal opties dat we kunnen gebruiken.
‫Als je verder gaat dan wat die opties toestaan, moet
‫je YAML gaan doen. Daar gaan we het later in
‫de cursus over hebben. OKE. Als je Linux
‫gebruikt, is deze NodePort nu toegankelijk op localhost.
‫U kunt dus localhost, of het host-IP zelf, gebruiken om deze
‫poort te cURLen. Welke poort je ook hebt.
‫Het zal waarschijnlijk niet dezelfde poort zijn als de mijne sinds
‫de mijne 32334 is.
‫Als je Docker Desktop gebruikt, zal
‫het een gemakslaag bieden met iets
‫dat vpnkit wordt genoemd en dat net is ingebouwd in Docker Desktop,
‫waar het dit zal verbinden met de localhost op je Windows-
‫of Mac-machine.
‫Ik kan hier op mijn Mac zitten en
‫cURL localhost 32334.
‫Ik krijg hetzelfde antwoord terug alsof ik het
‫cluster-IP rechtstreeks heb gekruld. De reden dat dit hier
‫op Docker Desktop staat, is dat je niet in
‫die pods hoeft te springen zoals we eerder deden, alleen maar
‫om toegang te krijgen tot de service. Dit is een manier om uw
‫Kubernetes-services op uw machines te laten verschijnen, zodat u dingen kunt
‫testen, toch. Dus als je
‫binnen Kubernetes aan het ontwikkelen of testen bent, kun je gewoon een
‫NodePort doen en naar die poort gaan, wat een beetje willekeurig
‫zal zijn op je host.
‫Nogmaals, je kunt daar een exacte poort specificeren, maar dat zou je
‫in YAML moeten doen, wat we later zullen doen.
‫De andere optie, als u Docker Desktop gebruikt, is dat
‫deze wordt geleverd met een ingebouwde load balancer-service.
‫Je herinnert je dat ik het eerder had toen
‫we het over deze vier soorten services hadden, is dat de
‫load balancer niet standaard is ingebouwd en dat je hem
‫alleen kunt gebruiken via een externe service, meestal in
‫een cloudservice. Rechtsaf.
‫Bij Amazon zouden dat ELB's en ALB's zijn.
‫Met DigitalOcean zou dat met hun load balancers zijn.
‫U zou die plug-in in uw Kubernetes moeten toevoegen, zodat deze
‫zou werken met die externe load balancers.
‫In wezen praat de kube-API met hun API om die load
‫balancer te besturen.
‫Als u Docker Desktop gebruikt, kunt u deze opdracht proberen.
‫We noemen het
‫httpenv-lb voor deze service en we veranderen het type in
‫load balancer.
‫Als we een kubectl get-service uitvoeren, zouden we drie load balancers
‫voor deze implementatie moeten zien.
‫Nogmaals, als je Docker Desktop gebruikt, kun
‫je ze alle drie zien. Als je Linux gebruikt, of
‫Minikube gebruikt, of iets dergelijks, zou je er maar twee zien.
‫Elke load balancer, omdat het technisch gezien lijkt
‫op een plug-in of service van derden die een
‫externe API is, hebben de load balancers allemaal verschillende functies
‫en ondersteunde dingen. Je kunt in hun documentatie kijken om erachter
‫te komen wat ze zullen doen.
‫In dit geval, met Docker Desktop, hebben we het
‫alleen de poort 8888 verteld die deel uitmaakte
‫van de implementatie, en de load balancer-serviceplug-in
‫van Docker zal het vervolgens
‫op poort 8888 publiceren.
‫Het leuke hier is dat dat de enige
‫manier is om je Kubernetes op een specifieke poort
‫buiten de standaardset te hebben, toch.
‫Dus toen we de NodePort deden, waren we
‫gedefinieerd of beperkt tot die set in
‫het 30000-bereik. Als je iets zou
‫willen doen zoals je zou doen met Compose, of Swarm, of Docker
‫lokaal draaien waar je het gewoon op een poort zoals 80 of
‫wat dan ook wilt draaien, dan kun je nu met Docker Desktop,
‫met behulp van de ingebouwde Kubernetes, je kunt doe die load balancer en typ
‫daar die poort in, en het zal daar responsief zijn.
‫Nu op Mac of Windows zou
‫ik cURL localhost 8888 kunnen typen en dat
‫antwoord terugkrijgen. U zult daar voor
‫de load balancer merken dat deze nog steeds die andere poort heeft.
‫Nogmaals, dat komt omdat het 32-bereik daar,
‫althans op de mijne, de ingebouwde NodePort is
‫die het maakt. Technisch gezien op
‫de achtergrond, onthoud dat dit drie verschillende lagen zijn,
‫dus de load balancer accepteert mijn pakket, geeft het vervolgens
‫door aan de NodePort en vervolgens geeft de NodePort
‫het door aan het cluster-IP. Er zal altijd die NodePort
‫zijn die daar wordt weergegeven naast de vier 8-en voor
‫een load balancer, ook al is dat niet echt de
‫poort die de load balancer op mijn localhost gebruikt.
‫Laten we, voordat we naar de volgende lezing gaan, alles opruimen
‫wat we net hebben gedaan. We hebben veel dingen gemaakt.
‫Deze commando's laten zien dat je het delete-commando met
‫meerdere objecten tegelijk kunt gebruiken.
‫Het hoeven geen verwante objecten te zijn.
‫In feite zou je er gewoon een grote lijst van kunnen
‫maken als je wilt op een enkele opdracht.