Docker kan installeras på de mest använda OS-plattformarna. CoreOS har Docker förinstallerat och är designat speciellt för att köra Docker-containrar. Docker för AWS tillhandahåller ett färdigt Docker-svärmläge där ett kluster av noder, kallat en svärm, tillhandahåller en distribuerad plattform för att köra Docker-containerapplikationer.
Problem: Alla de tidigare nämnda Docker-plattformarna är bara olika typer av Docker-installationer och kräver att Docker-behållare körs och hanteras på kommandoraden.
Lösning: Amazon ECS (Elastic Container Service ) är en hanterad tjänst för Docker-containrar med inbyggt stöd för skalning, lastbalansering, nätverk, lagring, loggning och andra Docker-containerhanteringsuppgifter. Amazon ECS stöder två lanseringstyper:EC2 och Fargate.
Med EC2-starttypen startas EC2-instanser för att köra Docker-behållare. Fargate-lanseringstypen, som introducerades nyligen (november 2017), är värd för uppgifter som kapslar in Docker-containrar. Uppgifterna görs direkt tillgängliga för användaren via ett elastiskt nätverksgränssnitt (ENI ). EC2-instanserna där Fargate tillhandahålls exponeras inte för användaren och är inte direkt tillgängliga.
I det här kapitlet kommer vi att lära oss om följande:Vad Amazon Fargate är
- Fördelar med Fargate Amazon ECS-objekt
- Beräkningsresurser i Amazon ECS Fargate
- Vad är nytt i Amazon Fargates lanseringsläge?
Vad är Amazon Fargate
Amazon Fargate är en ny lanseringstyp för Amazon ECS och Amazon EKS (Elastic Kubernetes Service )-hanterade orkestreringstjänster för Docker-containrar på AWS. Med Fargate lanseringstyp tillhandahålls infrastrukturen fullt ut av Fargate. Det är serverlöst och inga EC2-instanser exponeras för användaren. Dockercontainrar definieras som containerdefinitioner inom en uppgiftsdefinition. En tjänst implementerar uppgiftsdefinitionen för att köra en eller flera uppgifter. Varje uppgift är associerad med en ENI. Om automatisk tilldelning av den offentliga IP-adressen på uppgiftsnivån är aktiverad, tilldelas en offentlig IP-adress på vilken en extern klient kan komma åt en uppgift automatiskt till en uppgift. Uppgifter kommunicerar med varandra över en privat IP.
Fördelar med Fargate
Fördelarna med ECS är följande:
- En hanterad tjänst för behållarapplikationer som inte kräver mycket användarinput för att köra Docker-applikationer
- Mikrotjänster som består av flera applikationer som körs i isolerade behållare Skalar automatiskt uppgifter baserat på applikationsbelastning
- Integreras med andra AWS-tjänster inklusive IAM, CloudWatch-loggar, Elastic Load Balancing, CloudFormation-mallar, EBS-volymer, Batch-, ECR- och CloudTrail-loggar
- Ett virtuellt privat moln (VPC ) utan resurser som delas med andra användare Ger stöd för att köra en CodePipeline med ECS som distributionsplattform
- Stöder den senaste Docker-versionen 17.0
Fargate ger följande ytterligare fördelar:
- Med en Fargate-starttyp skapar eller hanterar inte en användare några EC2-instanser, eftersom ingen är exponerad i klustret.
- Uppgifterna exponeras direkt för användaren via en ENI.
- Den underliggande infrastrukturen tillhandahålls av Fargate. EC2-instanser ska inte hanteras med Fargate-starttypen.
- CodePipeline stöder Fargate som en distributionsplattform.
- Mikrotjänster baserade på containerdefinitioner inkapslade i en uppgiftsdefinition är explicit länkade och får inte länkas till några ytterligare alternativ, såsom länkar.
- CloudWatch-loggar kan konfigureras automatiskt.
Amazon ECS-objekt
Amazon ECS-objekt med Fargate är desamma som för EC2-starttypen. Ett ECS-kluster är den yttersta inkapslingen och den består av en eller flera tjänster. Ett kluster skulle kunna fördelas över flera tillgänglighetszoner. En tjänst är en implementering av en uppgiftsdefinition och kör en eller flera uppgifter. En uppgiftsdefinition kan ha en eller flera uppgiftsrevisioner. En uppgiftsrevision är en distinkt uppgiftsdefinition med en uppsättning uppgifter och en tjänst kopplad till den. En Fargate-instans är associerad med en uppsättning uppgifter i en tjänst. En uppgiftsdefinition består av noll eller fler behållardefinitioner. Vanligtvis skulle en uppgiftsdefinition vara associerad med en eller flera behållardefinitioner, och en uppgiftsdefinition som inte består av någon behållardefinition skulle inte köra några uppgiftsbehållare. Ett diagram över ECS-objekt visas enligt följande:
En uppgiftsdefinition är en ansökningsmall och beskriver en eller flera behållare. Medan vissa attribut eller inställningar konfigureras på aktivitetsnivå, är de flesta av dem konfigurerade på behållarnivå. Flera revisioner kan vara associerade med en uppgiftsdefinition.
En tjänst implementerar en uppgiftsdefinition och definierar ett önskat antal för uppgifter som ska köras för en uppgiftsdefinition. Valfria funktioner som automatisk skalning och lastbalansering konfigureras i tjänsten.
Ett kluster i en ECS-tjänst är en gruppering av en eller flera containertjänster. Ett klusternamn måste vara unikt inom ett konto. Ett kluster som kallas standard tillhandahålls som standard.
Beräkningsresurser i Amazon ECS Fargate
Uppgiftsstorlek består av uppgiftsminne (GB) och Task CPU (vCPU) . Även om det är valfritt i EC2-starttypen, krävs uppgiftsstorlek med Fargate-starttypen. Docker container nivå minne och CPU inställningar kan valfritt definieras, men åsidosätts av uppgift definition nivå inställningar. Endast specifika kombinationer av uppgiftsminne och uppgifts-CPU stöds, och ECS-guiden indikerar med ett meddelande vilket värde (eller värdeintervall) som stöds för ett valt värde. Som ett exempel är det giltiga CPU-intervallet för 1 GB minne 0,25 vCPU till 0,5 vCPU. De totala resurserna (minne eller CPU) som konfigurerats på behållarnivå får inte överstiga resursinställningarna på aktivitetsnivån. Som ett exempel, om en uppgiftsdefinition består av två behållare (MySQL och WordPress) med en minnesgräns på 128 MB för varje behållare, måste minnet på uppgiftsnivån vara minst 256 MB. Dessutom får det totala minnet på behållarnivå inte överstiga 256 MB. Likadant för CPU. Två minnesgränser kan definieras på behållarnivå:Mjuk gräns och Hård gräns . Den mjuka gränsen motsvarar memoryReservation attributet på uppgiftsnivån, och hårdgränsen motsvarar minnet attribut på uppgiftsnivå. Summan av behållarens minnesreservationer (mjuka gränser) får inte överstiga uppgiftsminnet. Hårdgränsen för varje behållare får inte överstiga det minne som konfigurerats på aktivitetsnivån. Minst 4 GB måste anges som standard för en behållare.
Ett exempel på uppgiftsstorlek visas i följande skärmdump, där uppgiftsminnet (minne attribut) är inställd på 0,5 GB (512 GB) och Task CPU är inställd på 0,25 vCPU . På behållarnivå, som konfigurerats i de två behållardefinitionerna, är minnesreservationen 128 MB för varje behållare, vilket gör den totala minnesreservationen på 256 MB väl inom 512 GB tilldelas på uppgiftsnivå. Uppgiftsstorleken tilldelas en uppgift, oavsett om den används eller inte. På samma sätt, antalet CPU-enheter konfigurerad för varje behållare är 10 , vilket gör de totala CPU-enheterna 20 för behållare inom CPU-enheterna, 25 tilldelas på uppgiftsnivån. Se följande skärmdump:
Konfiguration och tilldelning av uppgiftsstorlek för behållare
Vad är nytt i Amazon Fargates lanseringsläge?
Utöver och samtidigt med Fargate-fördelarna som diskuterats tidigare, stöder Fargate följande nya funktioner:
- Nätverksläge, awsvpc , är det enda läget som stöds
- Mappningar av värdportar är inte giltiga med nätverksläget för Fargate-starttyp (awsvpc ), och värdportar där ett program exponeras är samma som containerportarna
- ecsTaskExecutionRole läggs till för Fargate-starttypen för att göra det möjligt att dra Docker-bilder och skicka loggar till CloudWatch-loggar
- Endast awsloggarna loggkonfiguration och awslogs loggdrivrutiner stöds med CloudWatch-loggar
- Uppgiftsplacering stöds inte, eftersom inga ECS-instanser tillhandahålls för att definiera placeringsbegränsningar för
- Endast Docker-bilder på Docker Hub och Amazon ECR stöds Privilegerade Windows-behållare stöds inte för Fargate-starttypen. Värdenheter kan inte exponeras för en behållare
- värden och sourcePath parametrar för volymer stöds inte med Fargate-starttypen
Sammanfattning
I det här inledande kapitlet diskuterade vi fördelarna med att använda Fargate-starttypen, hur beräkningsresurser distribueras och konfigureras med Fargate-lanseringstypen, hur ECS-objekten med Fargate är desamma som för EC2-lanseringstypen och de nya funktionerna i Fargate. I nästa kapitel kommer vi att diskutera nätverk som används med Fargate.
Det föregående materialet är ett utdrag från Amazon Fargate Quick Start Guide , av Deepak Vohra, publicerad av Pact Publishing. |
Denna artikel har bidragit. ©Developer.com. Alla rättigheter reserverade