Een toepassing implementeren in uw Azure Kubernetes Service-cluster
- 10 minuten
Uw bedrijf zoekt een manier om uw cloudgebaseerde videorenderingsservice te implementeren. U hebt Azure Kubernetes Service (AKS) gekozen als uw cloudeigen ontwikkelplatform. Nadat het cluster is geconfigureerd, kunt u een van de onderdelen in uw videorenderingstoepassing implementeren. U besluit om een statische versie van uw bedrijfswebsite te implementeren om het Kubernetes-implementatieproces te verkennen.
Voordat we de implementatiemethode van Kubernetes bespreken, bekijken we een aantal stappen die u moet uitvoeren om een vergelijkbare toepassing naar een niet-Kubernetes-omgeving te implementeren.
Stel dat u een virtuele Azure-machine (VM) als uw doelplatform gebruikt. De eerste stap bestaat uit het voorbereiden van de serversoftware om de toepassing te hosten. U voert de volgende taken uit:
- Het besturingssysteem installeren.
- Zorg ervoor dat u het besturingssysteem bijwerkt met de nieuwste beveiligings- en softwarepatches.
- Software voor de webserver installeren en configureren.
- De webtoepassing implementeren.
Herhaal dit proces voor elke nieuwe VIRTUELE machine wanneer u besluit om de website uit te schalen om een toename van de vraag van klanten af te handelen.
Een alternatieve methode is het uitvoeren van de website in een op een container gebaseerd platform zoals Azure Container Instances. U hoeft zich geen zorgen te maken over de onderliggende servertechnologie, maar u moet verschillende containers configureren en beheren om deze strategie handmatig te kunnen gebruiken.
Kubernetes en AKS helpen u met de indeling van containers. Met de Kubernetes-functies voor containerindeling is het eenvoudig om werkbelastingen op het cluster te beheren. U implementeert werkbelastingen met behulp van containers die zijn gebouwd op basis van containerinstallatiekopieën om uw toepassingen in een AKS-cluster uit te voeren.
Wat is een containerregister?
In een containerregister kunt u veilig containerinstallatiekopieën opslaan in de cloud voor latere implementatie. U kunt het containerregister zien als een archief waarin meerdere versies van uw containerinstallatiekopie worden opgeslagen. Aan elke opgeslagen afbeelding is een tag toegewezen voor identificatie.
Misschien hebt u bijvoorbeeld de afbeelding contoso-website:latest, die een andere versie is dan de afbeelding met de tag contoso-website:v1.0.0.
Containerregisters kunnen openbaar of privé zijn. Voor privéregisters zijn referenties vereist voor toegang tot installatiekopieën en het downloaden van installatiekopieën. Dit is de strategie die u volgt wanneer u containerinstallatiekopieën opslaat.
Kubernetes staat je alleen toe om afbeeldingen uit te rollen die in een containerregister worden gehost. Het maken van een privécontainerregister maakt normaal gesproken deel uit van uw standaard-AKS-implementatiestrategie.
Wat is een Kubernetes-pod?
Een Kubernetes-pod groepeert containers en toepassingen in een logische structuur. Deze pods hebben geen intelligentie en bestaan uit een of meer toepassingscontainers. Elke pod heeft een IP-adres, netwerkregels en openstaande poorten.
Als u bijvoorbeeld alle werkbelastingen met betrekking tot de contoso-website wilt doorzoeken, zoekt u in het cluster naar pods met het label app en de waarde contoso-website.
Wat is Kubernetes-implementatie?
Een Kubernetes-implementatie is een evolutie van pods. Een deployment verpakt de pods in een intelligent object waarmee ze kunnen opschalen. U kunt uw toepassing eenvoudig dupliceren en schalen om meer belasting te ondersteunen zonder dat u complexe netwerkregels hoeft te configureren.
Deployments stellen gebruikers in staat om toepassingen bij te werken door alleen de afbeeldingstag te wijzigen, zonder enige uitvaltijd. Wanneer u een implementatie bijwerkt in plaats van alle apps te verwijderen, worden de online-apps één voor één uitgeschakeld door de implementatie. Vervolgens worden ze vervangen door de nieuwste versie. Dit aspect betekent dat elke implementatie de mogelijkheid heeft om de pods erin bij te werken, zonder zichtbare gevolgen voor de beschikbaarheid.
Kubernetes-manifestbestanden
Met een Kubernetes-manifestbestand kunt u uw werkbelastingen declaratief in de YAML-indeling beschrijven en het beheer van Kubernetes-objecten vereenvoudigen.
Stel je voor dat je een workload met de hand moet implementeren. U moet dan rekening houden met verschillende aspecten, en deze beheren. U moet een container maken, een specifiek knooppunt selecteren, deze inpakken in een pod, de pod uitvoeren, de uitvoering bewaken, enzovoort.
Manifestbestanden bevatten alle informatie die u nodig hebt om de beschreven workload te maken en te beheren.
Wat is een Kubernetes-label?
Met een Kubernetes-label kunt u Kubernetes-objecten logisch groeperen. Met behulp van deze labels kan het systeem een query uitvoeren op het cluster voor objecten die overeenkomen met een label met een specifieke naam.
De structuur van een manifestbestand
De structuur van manifestbestanden is anders op basis van het type resource dat u maakt. Manifestbestanden delen echter algemene instructies. Met deze instructies worden verschillende aspecten gedefinieerd, zoals de API's die moeten worden gebruikt en het type werkbelasting dat moet worden gemaakt.
De eerste twee vermeldingen in alle manifestbestanden bevatten twee belangrijke sleutels, apiVersion en kind. Hier ziet u een voorbeeld van een implementatiebestand.
apiVersion: apps/v1 # Where in the API it resides
kind: Deployment # The kind of workload we're creating
De apiVersion sleutel definieert het API-servereindpunt dat het object beheert dat u implementeert.
De kind sleutel definieert de workload die door deze implementatie wordt gemaakt.
Andere algemene sleutels voor alle bestanden zijn de metadata- en name-sleutels. Alle Kubernetes-resources moeten een naam hebben. Deze naam wordt onderdeel van de metadata-sleutel.
apiVersion: apps/v1
kind: Deployment
metadata:
name: contoso-website # This will be the name of the deployment
Objecten in een implementatie groeperen
Voor implementaties wordt gebruikgemaakt van een label om pods te zoeken en te groeperen. U definieert het label als onderdeel van uw implementatiemanifestbestand.
Dit is een voorbeeld. Let op de matchLabels-waarde die is gedefinieerd in de selector-definitie die aan de spec-definitie is toegevoegd.
# deployment.yaml
# ...
spec:
selector:
matchLabels:
app: contoso-website
# ...
Vanaf dit punt hebben alle bestanden verschillende structuren op basis van het type resource dat u wilt maken.
Een implementatiebestand toepassen
U implementeert een Kubernetes-implementatiemanifestbestand met behulp van kubectl. Hier volgt een voorbeeld van de opdracht .
kubectl apply -f ./deployment.yaml
Kennis testen
Feedback
Is deze pagina nuttig?
No
Hulp nodig bij dit onderwerp?
Wilt u Ask Learn gebruiken om iets te verduidelijken of u door dit onderwerp te leiden?