Ny Amazon EKS Windows amin'ny GA dia manana bibikely, fa izy no haingana indrindra

Ny Amazon EKS Windows amin'ny GA dia manana bibikely, fa izy no haingana indrindra

Tsara tolakandro, tiako ny hizara aminareo ny traikefako amin'ny fametrahana sy fampiasana ny serivisy AWS EKS (Elastic Kubernetes Service) ho an'ny kaontenera Windows, na ny momba ny tsy fahafahana mampiasa azy io, ary ny bug hita ao amin'ny container system AWS, ho an'ireo. izay liana amin'ity serivisy ity ho an'ny kaontenera Windows, azafady amin'ny cat.

Fantatro fa tsy lohahevitra malaza ny container Windows, ary vitsy ny olona mampiasa azy ireo, saingy mbola nanapa-kevitra ny hanoratra ity lahatsoratra ity aho, satria nisy lahatsoratra roa momba ny Habré tao amin'ny kubernetes sy Windows ary mbola misy olona toy izany.

Ny fiandohana

Nanomboka izany rehetra izany rehefa nanapa-kevitra ny hamindra ny serivisy ao amin'ny orinasanay amin'ny kubernetes, izany hoe 70% Windows ary 30% Linux. Ho an'ity tanjona ity, ny serivisy rahona AWS EKS dia noheverina ho iray amin'ireo safidy azo atao. Hatramin'ny 8 Oktobra 2019, AWS EKS Windows dia tao amin'ny Public Preview, nanomboka tamin'izany aho, nampiasaina tao ny version 1.11 taloha an'ny kubernetes, saingy nanapa-kevitra ny hanamarina izany aho ary hijery hoe amin'ny inona io serivisy rahona io, na miasa izy io. raha ny zava-drehetra, araka ny hita, tsia, dia nisy bug miaraka amin'ny fanampin'ny fanesorana pods, fa ireo taloha dia nijanona tsy namaly tamin'ny alàlan'ny ip anatiny avy amin'ny subnet mitovy amin'ny node mpiasa windows.

Noho izany, nanapa-kevitra ny handao ny fampiasana AWS EKS ho an'ny cluster manokana amin'ny kubernetes amin'ny EC2 mitovy, fa tsy maintsy mamaritra ny fifandanjana rehetra sy ny HA amin'ny alàlan'ny CloudFormation izahay.

Amazon EKS Windows Container Support dia azo ampiasaina amin'ny ankapobeny

by Martin Beeby | tamin'ny 08 Oktobra 2019

Talohan'ny nanam-potoana hanampiana môdely amin'ny CloudFormation ho an'ny cluster manokana dia hitako ity vaovao ity Amazon EKS Windows Container Support dia azo ampiasaina amin'ny ankapobeny

Mazava ho azy fa nametrahako ny asako rehetra ary nanomboka nandinika ny zavatra nataon'izy ireo ho an'ny GA aho, sy ny fiovan'ny zava-drehetra tamin'ny Preview Public. Eny, AWS, vita tsara, nanavao ny sary ho an'ny windows worker node amin'ny version 1.14, ary koa ny cluster mihitsy, version 1.14 amin'ny EKS, dia manohana windows nodes. Tetikasa nataon'ny Preview Public at github Nosaronan'izy ireo izany ary nilaza izy ireo fa ampiasao ny antontan-taratasy ofisialy eto: EKS Windows Support

Fampidirana cluster EKS amin'ny VPC sy zana-tsipìka ankehitriny

Amin'ny loharano rehetra, ao amin'ny rohy etsy ambony momba ny fanambarana ary koa ao amin'ny antontan-taratasy, dia natolotra ny hametraka ny cluster na amin'ny alàlan'ny fampitaovana eksctl proprietary na amin'ny alàlan'ny CloudFormation + kubectl aorian'izany, amin'ny fampiasana subnets ho an'ny daholobe ao amin'ny Amazon, ary koa ny famoronana VPC misaraka ho an'ny cluster vaovao.

Ity safidy ity dia tsy mety amin'ny maro; voalohany, ny VPC misaraka dia midika hoe sara fanampiny ho an'ny sarany + ny fifamoivoizana mijery amin'ny VPC anao ankehitriny. Inona no tokony hataon'ireo izay efa manana fotodrafitrasa efa vita ao amin'ny AWS miaraka amin'ny kaontiny AWS marobe, VPC, subnets, tabilao zotra, vavahadin-tseranana sy ny sisa? Mazava ho azy fa tsy te hanapaka na hamerina izany rehetra izany ianao, ary mila mampiditra ny cluster EKS vaovao amin'ny fotodrafitrasa tambajotra amin'izao fotoana izao, amin'ny fampiasana ny VPC efa misy ary, amin'ny fisarahana, amin'ny ankapobeny dia mamorona subnets vaovao ho an'ny cluster.

Raha ny ahy dia io lalana io no nofidiana, nampiasa ny VPC efa misy aho, nampiana subnet public 2 sy subnets privé 2 ho an'ny cluster vaovao, mazava ho azy, ny fitsipika rehetra dia noraisina araka ny antontan-taratasy. Mamorona ny Amazon EKS Cluster VPC anao.

Nisy fepetra iray ihany koa: tsy misy node mpiasa amin'ny subnets ho an'ny daholobe mampiasa EIP.

eksctl vs CloudFormation

Hanao famandrihana avy hatrany aho fa nanandrana fomba roa amin'ny fametrahana cluster aho, amin'ireo tranga roa ireo dia mitovy ny sary.

Haneho ohatra fotsiny aho amin'ny fampiasana eksctl satria ho fohy kokoa ny code eto. Ampiasao ny eksctl, apetraho amin'ny dingana 3 ny cluster:

1. Mamorona ny cluster mihitsy izahay + node mpiasa Linux, izay hampiantrano ireo fitoeran'ny rafitra sy ilay vpc-controller ratsy fanahy.

eksctl create cluster 
--name yyy 
--region www 
--version 1.14 
--vpc-private-subnets=subnet-xxxxx,subnet-xxxxx 
--vpc-public-subnets=subnet-xxxxx,subnet-xxxxx 
--asg-access 
--nodegroup-name linux-workers 
--node-type t3.small 
--node-volume-size 20 
--ssh-public-key wwwwwwww 
--nodes 1 
--nodes-min 1 
--nodes-max 2 
--node-ami auto 
--node-private-networking

Mba hametrahana amin'ny VPC efa misy dia ambarao fotsiny ny id-n'ny zana-tseraseranao, ary ny eksctl no hamaritra ny VPC.

Mba hahazoana antoka fa ny node mpiasanao dia alefa any amin'ny subnet manokana fotsiny dia mila mamaritra --node-private-networking ho an'ny nodegroup ianao.

2. Mametraka vpc-controller ao amin'ny cluster izahay, izay handamina ny node mpiasanay, manisa ny isan'ny adiresy IP maimaim-poana, ary koa ny isan'ny ENI amin'ny ohatra, manampy sy manala azy ireo.

eksctl utils install-vpc-controllers --name yyy --approve

3.Rehefa natomboka tamin'ny node mpiasan'ny Linux anao ny fitoeran'ny rafitrao, anisan'izany ny vpc-controller, ny hany sisa tavela dia ny mamorona nodegroup hafa miaraka amin'ny mpiasa windows.

eksctl create nodegroup 
--region www 
--cluster yyy 
--version 1.14 
--name windows-workers 
--node-type t3.small 
--ssh-public-key wwwwwwwwww 
--nodes 1 
--nodes-min 1 
--nodes-max 2 
--node-ami-family WindowsServer2019CoreContainer 
--node-ami ami-0573336fc96252d05 
--node-private-networking

Rehefa avy nifandray soa aman-tsara tamin'ny cluster ny node-nao ary toa tsara daholo ny zava-drehetra, dia ao amin'ny sata Vonona izy io, fa tsia.

Error amin'ny vpc-controller

Raha manandrana mihazakazaka pods amin'ny node mpiasa windows isika dia hahazo ny fahadisoana:

NetworkPlugin cni failed to teardown pod "windows-server-iis-7dcfc7c79b-4z4v7_default" network: failed to parse Kubernetes args: pod does not have label vpc.amazonaws.com/PrivateIPv4Address]

Raha mijery lalindalina kokoa isika dia hitantsika fa toy izao ny tranga misy antsika ao amin'ny AWS:

Ny Amazon EKS Windows amin'ny GA dia manana bibikely, fa izy no haingana indrindra

Ary tokony ho toy izao izany:

Ny Amazon EKS Windows amin'ny GA dia manana bibikely, fa izy no haingana indrindra

Avy amin'izany dia mazava fa ny vpc-controller dia tsy nahavita ny anjarany noho ny antony iray ary tsy afaka nanampy adiresy IP vaovao amin'ny ohatra mba ahafahan'ny pods mampiasa azy ireo.

Andeha hojerentsika ny diarin'ny vpc-controller pod ary izao no hitantsika:

kubectl log -n kube-system

I1011 06:32:03.910140       1 watcher.go:178] Node watcher processing node ip-10-xxx.ap-xxx.compute.internal.
I1011 06:32:03.910162       1 manager.go:109] Node manager adding node ip-10-xxx.ap-xxx.compute.internal with instanceID i-088xxxxx.
I1011 06:32:03.915238       1 watcher.go:238] Node watcher processing update on node ip-10-xxx.ap-xxx.compute.internal.
E1011 06:32:08.200423       1 manager.go:126] Node manager failed to get resource vpc.amazonaws.com/CIDRBlock  pool on node ip-10-xxx.ap-xxx.compute.internal: failed to find the route table for subnet subnet-0xxxx
E1011 06:32:08.201211       1 watcher.go:183] Node watcher failed to add node ip-10-xxx.ap-xxx.compute.internal: failed to find the route table for subnet subnet-0xxx
I1011 06:32:08.201229       1 watcher.go:259] Node watcher adding key ip-10-xxx.ap-xxx.compute.internal (0): failed to find the route table for subnet subnet-0xxxx
I1011 06:32:08.201302       1 manager.go:173] Node manager updating node ip-10-xxx.ap-xxx.compute.internal.
E1011 06:32:08.201313       1 watcher.go:242] Node watcher failed to update node ip-10-xxx.ap-xxx.compute.internal: node manager: failed to find node ip-10-xxx.ap-xxx.compute.internal.

Ny fikarohana ao amin'ny Google dia tsy nitarika na inona na inona, satria toa mbola tsy nisy olona tratran'ny bibikely toy izany, na mbola tsy nandefa olana momba izany, dia tsy maintsy nieritreritra safidy aho aloha. Ny zavatra voalohany tonga tao an-tsaina dia ny hoe angamba ny vpc-controller dia tsy afaka mamaha ny ip-10-xxx.ap-xxx.compute.internal ka mahatratra azy ary noho izany dia misy ny fahadisoana.

Eny tokoa, mampiasa mpizara DNS mahazatra ao amin'ny VPC izahay ary, raha ny fitsipika, dia tsy mampiasa ny Amazon, ka na ny fandefasana aza dia tsy namboarina ho an'ity sehatra ap-xxx.compute.internal ity. Nanandrana ity safidy ity aho, ary tsy nitondra valiny, angamba tsy madio ny fitsapana, ary noho izany, rehefa nifandray tamin'ny fanohanana ara-teknika, dia nanaiky ny hevitr'izy ireo aho.

Satria tsy nisy hevitra mihitsy, ny vondrona fiarovana rehetra dia noforonin'ny eksctl mihitsy, noho izany dia tsy misy isalasalana ny fahafahan'izy ireo miasa, ny tabilaon'ny lalana dia marina ihany koa, nat, dns, fidirana Internet miaraka amin'ny node mpiasa.

Ankoatra izany, raha mametraka node mpiasa amin'ny subnet ho an'ny daholobe ianao nefa tsy mampiasa -node-private-networking, dia nohavaozin'ny vpc-controller avy hatrany io node io ary niasa toy ny famantaranandro ny zava-drehetra.

Nisy safidy roa:

  1. Avelao ary andraso mandra-pahatongan'ny olona mamaritra ity bug ity ao amin'ny AWS ary amboary izany, ary avy eo dia azonao atao ny mampiasa AWS EKS Windows, satria vao navoaka tao amin'ny GA izy ireo (8 andro no lasa tamin'ny fotoana nanoratana ity lahatsoratra ity), maro no mety ho araho ny lalana mitovy amiko .
  2. Manorata amin'ny AWS Support ary lazao amin'izy ireo ny fototry ny olana miaraka amin'ny andian-drakitra maromaro avy amin'ny toerana rehetra ary porofoy amin'izy ireo fa tsy mandeha ny serivisy rehefa mampiasa ny VPC sy ny subnets anao, tsy maninona ny nahazoanay fanohanana Business, tokony hampiasainao. izany farafaharatsiny indray mandeha :)

Fifandraisana amin'ny injeniera AWS

Rehefa namorona tapakila teo amin'ny vavahadin-tserasera aho, dia nisafidy ny hamaly ahy amin'ny alàlan'ny Internet - mailaka na foibe fanohanana aho, amin'ny alàlan'ity safidy ity dia afaka mamaly anao izy ireo rehefa afaka andro vitsivitsy, na dia eo aza ny zava-misy fa ny tapakilako dia nanana Fahasarotam-pahefana - Rafitra, izay dia midika valiny ao anatin'ny <12 ora, ary satria ny drafitra fanohanana Business dia manana fanohanana 24/7, nanantena ny tsara indrindra aho, saingy nipoitra toy ny mahazatra.

Navela tsy nomena ny tapakilako nanomboka ny zoma ka hatramin'ny alatsinainy, dia nanapa-kevitra ny hanoratra amin'izy ireo indray aho ary nisafidy ny safidy valin'ny Chat. Rehefa niandry fotoana fohy dia voatendry hihaona amiko i Harshad Madhav, ary avy eo dia nanomboka...

Namboarina tamin'ny Internet nandritra ny adiny 3 nifanesy izahay, namindra ny logs, nametraka ny cluster mitovy tao amin'ny laboratoara AWS mba haka tahaka ny olana, mamorona indray ny cluster amin'ny anjarako, sy ny sisa, ny hany tonga dia avy amin'ny Ny logs dia nazava fa ny resol dia tsy miasa amin'ny anaran'ny sehatra anatiny AWS, izay nosoratako etsy ambony, ary i Harshad Madhav dia nangataka ahy hamorona fandefasana, lazaina fa mampiasa DNS mahazatra izahay ary mety ho olana izany.

nanatitra

ap-xxx.compute.internal  -> 10.x.x.2 (VPC CIDRBlock)
amazonaws.com -> 10.x.x.2 (VPC CIDRBlock)

Izay no vita, tapitra ny andro. Nanoratra indray i Harshad Madhav mba hanamarina izany ary tokony hiasa izany, saingy tsia, tsy nanampy mihitsy ilay fanapahan-kevitra.

Avy eo dia nisy ny fifandraisana tamin'ny injeniera 2 hafa, ny iray dia niala tamin'ny chat, toa natahotra tranga sarotra izy, ny faharoa nandany ny androko indray tamin'ny fihodinana feno amin'ny debugging, mandefa logs, mamorona cluster amin'ny andaniny roa, amin'ny farany hoy izy tsara, mety amiko izany, indro aho manao ny zava-drehetra tsikelikely ao amin'ny antontan-taratasy ofisialy dia hahomby ianao sy ianao.

Nangataka azy tamim-panajana aho mba handeha ary hanendry olon-kafa amin'ny tapakilako raha tsy fantatrao hoe aiza no hijerena ilay olana.

hitranga amin'ny farany

Tamin'ny andro fahatelo dia nisy injeniera vaovao Arun B. voatendry ho ahy, ary hatramin'ny niandohan'ny fifandraisana taminy dia nazava avy hatrany fa tsy ireo injeniera 3 teo aloha. Namaky ny tantara manontolo izy ary nangataka avy hatrany mba hanangona ny logs amin'ny alàlan'ny script-ny manokana ao amin'ny ps1, izay ao amin'ny github-ny. Narahina izany indray ny famerimberenana rehetra amin'ny famoronana cluster, famoahana valim-baiko, fanangonana logs, fa i Arun B. kosa dia nizotra tamin'ny lalana marina raha nitsara ireo fanontaniana napetraka tamiko.

Oviana isika no tonga amin'ny fampandehanana -stderrthreshold=debug ao amin'ny vpc-controller, ary inona no nitranga taorian'izay? mazava ho azy fa tsy mandeha izany) ny pod dia tsy manomboka amin'ity safidy ity, fa -stderrthreshold=info ihany no miasa.

Nifarana teto izahay ary nilaza i Arun B. fa hiezaka hamerina ny diako izy mba hahazoana ny fahadisoana mitovy. Ny ampitson'iny dia nahazo valiny avy amin'i Arun B. tsy nandao ity raharaha ity izy, fa naka ny kaody famerenana ny vpc-controller-ny ary nahita ny toerana misy azy sy ny antony tsy mandeha:

Ny Amazon EKS Windows amin'ny GA dia manana bibikely, fa izy no haingana indrindra

Noho izany, raha mampiasa ny tabilao zotra lehibe ao amin'ny VPC-nao ianao, dia tsy misy fikambanana miaraka amin'ireo subnets ilaina, izay tena ilaina ho an'ny vpc-controller, raha misy subnet ho an'ny daholobe, dia manana latabatra zotra mahazatra izy. izay manana fikambanana.

Amin'ny alàlan'ny fampidirana an-tànana ny fikambanan'ny tabilao zotra lehibe miaraka amin'ireo zana-tsipìka ilaina, ary ny famoronana indray ny nodegroup, dia mandeha tsara ny zava-drehetra.

Manantena aho fa i Arun B. dia tena hitatitra an'io bug io amin'ny mpamorona EKS ary hahita dikan-vpc-controller vaovao izay handehanan'ny zava-drehetra ao anaty boaty. Ny dikan-teny farany amin'izao fotoana izao dia: 602401143452.dkr.ecr.ap-southeast-1.amazonaws.com/eks/vpc-resource-controller:0.2.1
manana io olana io.

Misaotra an'izay rehetra mamaky hatramin'ny farany, andramo izay rehetra hampiasainao amin'ny famokarana alohan'ny fampiharana azy.

Source: www.habr.com

Add a comment