Amazon EKS Windows ni GA ni awọn idun, ṣugbọn o yara ju

Amazon EKS Windows ni GA ni awọn idun, ṣugbọn o yara ju

O dara ni ọsan, Mo fẹ lati pin pẹlu rẹ iriri mi ni ṣiṣeto ati lilo iṣẹ AWS EKS (Iṣẹ Kubernetes Elastic) fun awọn apoti Windows, tabi dipo nipa ailagbara lilo rẹ, ati kokoro ti a rii ninu apoti eto AWS, fun awọn yẹn ti o nifẹ si iṣẹ yii fun awọn apoti Windows, jọwọ labẹ ologbo.

Mo mọ pe awọn apoti Windows kii ṣe koko-ọrọ olokiki, ati pe awọn eniyan diẹ lo wọn, ṣugbọn Mo tun pinnu lati kọ nkan yii, nitori pe awọn nkan meji kan wa lori Habré lori kubernetes ati Windows ati pe iru eniyan tun wa.

Начало

Gbogbo rẹ bẹrẹ nigbati o pinnu lati jade awọn iṣẹ ni ile-iṣẹ wa si kubernetes, eyiti o jẹ 70% Windows ati 30% Linux. Fun idi eyi, iṣẹ awọsanma AWS EKS ni a gba bi ọkan ninu awọn aṣayan ti o ṣeeṣe. Titi di Oṣu Kẹwa Ọjọ 8, Ọdun 2019, AWS EKS Windows wa ni Awotẹlẹ gbangba, Mo bẹrẹ pẹlu rẹ, ẹya 1.11 atijọ ti kubernetes ti lo nibẹ, ṣugbọn Mo pinnu lati ṣayẹwo lọnakọna ki o rii ni ipele wo ni iṣẹ awọsanma yii jẹ, boya o n ṣiṣẹ ni gbogbo, bi o ti wa ni jade, ko si, o jẹ nibẹ a kokoro pẹlu awọn afikun ti yọ pods, nigba ti atijọ eyi duro fesi nipasẹ ti abẹnu ip lati kanna subnet bi awọn windows Osise ipade.

Nitorinaa, o pinnu lati kọ lilo AWS EKS ni ojurere ti iṣupọ tiwa lori kubernetes lori EC2 kanna, nikan a yoo ni lati ṣapejuwe gbogbo iwọntunwọnsi ati HA funrararẹ nipasẹ CloudFormation.

Amazon EKS Atilẹyin Apoti Windows ni Gbogbogbo Wa

nipa Martin Beeby | ni 08 Okt 2019

Ṣaaju ki Mo to ni akoko lati ṣafikun awoṣe kan si CloudFormation fun iṣupọ ti ara mi, Mo rii iroyin yii Amazon EKS Atilẹyin Apoti Windows ni Gbogbogbo Wa

Nitoribẹẹ, Mo fi gbogbo iṣẹ mi si apakan ati bẹrẹ lati kọ ẹkọ ohun ti wọn ṣe fun GA, ati bii ohun gbogbo ṣe yipada pẹlu Awotẹlẹ gbangba. Bẹẹni, AWS, ṣe daradara, ṣe imudojuiwọn awọn aworan fun oju ipade osise windows si ẹya 1.14, bakannaa iṣupọ funrararẹ, ẹya 1.14 ni EKS, ni bayi ṣe atilẹyin awọn apa windows. Project nipa Public Awotẹlẹ ni github Wọn bo o sọ pe ni bayi lo iwe aṣẹ osise nibi: EKS Windows Support

Ṣiṣẹpọ iṣupọ EKS sinu VPC lọwọlọwọ ati awọn subnets

Ni gbogbo awọn orisun, ni ọna asopọ ti o wa loke lori ikede ati ninu iwe, o ti dabaa lati mu iṣupọ boya nipasẹ ohun elo eksctl ohun-ini tabi nipasẹ CloudFormation + kubectl lẹhin, nikan ni lilo awọn subnets ti gbogbo eniyan ni Amazon, ati ṣiṣẹda kan lọtọ VPC fun titun kan iṣupọ.

Aṣayan yii ko dara fun ọpọlọpọ; ni akọkọ, VPC lọtọ tumọ si awọn idiyele afikun fun idiyele rẹ + ijabọ oju-ọna si VPC lọwọlọwọ rẹ. Kini o yẹ ki awọn ti o ti ni awọn amayederun ti a ti ṣetan ni AWS pẹlu awọn iroyin AWS Multiple tiwọn, VPC, awọn subnets, awọn tabili ipa ọna, ẹnu-ọna gbigbe ati bẹbẹ lọ ṣe? Nitoribẹẹ, iwọ ko fẹ lati fọ tabi tun ṣe gbogbo eyi, ati pe o nilo lati ṣafikun iṣupọ EKS tuntun sinu awọn amayederun nẹtiwọọki lọwọlọwọ, lilo VPC ti o wa ati, fun ipinya, ni pupọ julọ ṣẹda awọn subnets tuntun fun iṣupọ naa.

Ninu ọran mi, a yan ọna yii, Mo lo VPC ti o wa tẹlẹ, ṣafikun awọn subnets gbangba 2 nikan ati awọn subnets ikọkọ 2 fun iṣupọ tuntun, nitorinaa, gbogbo awọn ofin ni a gba sinu akọọlẹ ni ibamu si awọn iwe aṣẹ naa. Ṣẹda Amazon EKS Cluster VPC rẹ.

Ipo kan tun wa: ko si awọn apa osise ni awọn subnets ti gbogbo eniyan nipa lilo EIP.

eksctl vs CloudFormation

Emi yoo ṣe ifiṣura kan lẹsẹkẹsẹ pe Mo gbiyanju awọn ọna mejeeji ti gbigbe iṣupọ kan, ni awọn ọran mejeeji aworan naa jẹ kanna.

Emi yoo fi apẹẹrẹ han nikan ni lilo eksctl nitori koodu nibi yoo kuru. Lilo eksctl, mu iṣupọ naa ṣiṣẹ ni awọn igbesẹ mẹta:

1. A ṣẹda iṣupọ funrararẹ + Node oṣiṣẹ Linux, eyiti yoo gbalejo awọn apoti eto nigbamii ati alabojuto vpc-fated kanna.

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

Ni ibere lati ran awọn to wa tẹlẹ VPC, o kan pato awọn id ti rẹ subnets, ati eksctl yoo mọ awọn VPC ara.

Lati rii daju pe awọn apa osise rẹ ti wa ni ransogun nikan si subnet ikọkọ, o nilo lati pato --node-private-networking fun nodegroup.

2. A fi sori ẹrọ vpc-controller ninu iṣupọ wa, eyiti yoo ṣe ilana awọn apa oṣiṣẹ wa, kika nọmba awọn adirẹsi IP ọfẹ, ati nọmba awọn ENI lori apẹẹrẹ, fifi kun ati yọ wọn kuro.

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

3.After rẹ eto awọn apoti ti ni ifijišẹ se igbekale lori rẹ Linux Osise ipade, pẹlu vpc-iṣakoso, gbogbo awọn ti o ku ni lati ṣẹda miiran nodegroup pẹlu windows osise.

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

Lẹhin ti ipade rẹ ti sopọ ni aṣeyọri si iṣupọ rẹ ati pe ohun gbogbo dabi pe o dara, o wa ni ipo Ṣetan, ṣugbọn rara.

Aṣiṣe ni vpc-oludari

Ti a ba gbiyanju lati ṣiṣẹ awọn adarọ-ese lori oju-ọna oṣiṣẹ windows, a yoo gba aṣiṣe naa:

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]

Ti a ba wo jinle, a rii pe apẹẹrẹ wa ni AWS dabi eyi:

Amazon EKS Windows ni GA ni awọn idun, ṣugbọn o yara ju

Ati pe o yẹ ki o jẹ bi eyi:

Amazon EKS Windows ni GA ni awọn idun, ṣugbọn o yara ju

Lati eyi o han gbangba pe vpc-controller ko mu apakan rẹ ṣẹ fun idi kan ati pe ko le fi awọn adiresi IP titun kun si apẹẹrẹ ki awọn pods le lo wọn.

Jẹ ki a wo awọn akọọlẹ ti vpc-oludari adarí ati pe eyi ni ohun ti a rii:

kubectl wọle -n kube-eto

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.

Awọn iwadii lori Google ko yorisi ohunkohun, nitori o han gbangba pe ko si ẹnikan ti o ti mu iru kokoro kan sibẹsibẹ, tabi ti ko fi ọrọ kan ranṣẹ lori rẹ, Mo ni lati ronu awọn aṣayan funrararẹ ni akọkọ. Ohun akọkọ ti o wa si ọkan ni pe boya vpc-controller ko le yanju ip-10-xxx.ap-xxx.compute.internal ati ki o de ọdọ rẹ ati nitori naa awọn aṣiṣe waye.

Bẹẹni, nitootọ, a lo awọn olupin DNS aṣa ni VPC ati, ni ipilẹ, a ko lo awọn Amazon, nitorinaa paapaa firanšẹ siwaju ko tunto fun ap-xxx.compute.internal domain. Mo ṣe idanwo aṣayan yii, ati pe ko mu awọn abajade wa, boya idanwo naa ko mọ, ati nitorinaa, siwaju sii, nigbati o ba sọrọ pẹlu atilẹyin imọ-ẹrọ, Mo tẹriba si imọran wọn.

Niwọn igba ti ko si awọn imọran eyikeyi gaan, gbogbo awọn ẹgbẹ aabo ni a ṣẹda nipasẹ eksctl funrararẹ, nitorinaa ko si iyemeji nipa iṣẹ ṣiṣe wọn, awọn tabili ipa ọna tun jẹ deede, nat, dns, Wiwọle Intanẹẹti pẹlu awọn apa oṣiṣẹ tun wa nibẹ.

Pẹlupẹlu, ti o ba ran ipade oṣiṣẹ kan si subnet ti gbogbo eniyan laisi lilo — node-private-nẹtiwọọki, ipade yii jẹ imudojuiwọn lẹsẹkẹsẹ nipasẹ vpc-oludari ati pe ohun gbogbo ṣiṣẹ bi clockwork.

Awọn aṣayan meji wa:

  1. Fi silẹ ki o duro titi ẹnikan yoo fi ṣe apejuwe kokoro yii ni AWS ati pe wọn ṣe atunṣe, lẹhinna o le lo AWS EKS Windows lailewu, nitori wọn kan tu silẹ ni GA (ọjọ 8 ti kọja ni akoko kikọ nkan yii), ọpọlọpọ yoo ṣee ṣe. tẹle ọna kanna bi emi.
  2. Kọ si Atilẹyin AWS ki o sọ fun wọn ọrọ pataki ti iṣoro naa pẹlu gbogbo opo awọn akọọlẹ lati ibi gbogbo ki o jẹri fun wọn pe iṣẹ wọn ko ṣiṣẹ nigba lilo VPC ati awọn subnets rẹ, kii ṣe fun ohunkohun pe a ni atilẹyin Iṣowo, o yẹ ki o lo. o kere ju lẹẹkan :)

Ibaraẹnisọrọ pẹlu AWS Enginners

Lẹhin ti o ṣẹda tikẹti kan lori ọna abawọle, Mo ṣe aṣiṣe yan lati dahun si mi nipasẹ oju opo wẹẹbu - imeeli tabi ile-iṣẹ atilẹyin, nipasẹ aṣayan yii wọn le dahun fun ọ lẹhin awọn ọjọ diẹ rara, laibikita otitọ pe tikẹti mi ni Ibajẹ - Eto bajẹ, eyiti tumọ si esi laarin <12 wakati, ati pe niwon eto atilẹyin Iṣowo ni atilẹyin 24/7, Mo nireti fun ohun ti o dara julọ, ṣugbọn o wa ni bi nigbagbogbo.

Tiketi mi ko ni ipin lati ọjọ Jimọ titi di ọjọ Mọndee, lẹhinna Mo pinnu lati kọ si wọn lẹẹkansi ati yan aṣayan idahun Chat. Lẹhin ti nduro fun igba diẹ, Harshad Madhav ti yan lati ri mi, lẹhinna o bẹrẹ ...

A ṣe atunṣe pẹlu rẹ lori ayelujara fun awọn wakati 3 ni ọna kan, gbigbe awọn iwe-ipamọ, gbigbe iṣupọ kanna ni yàrá AWS lati farawe iṣoro naa, tun-ṣẹda iṣupọ ni apakan mi, ati bẹbẹ lọ, ohun kan ti a wa si ni pe lati ọdọ mi. awọn akọọlẹ o han gbangba pe resol ko ṣiṣẹ awọn orukọ agbegbe inu AWS, eyiti Mo kowe nipa loke, ati Harshad Madhav beere lọwọ mi lati ṣẹda ifiranšẹ siwaju, titẹnumọ a lo DNS aṣa ati eyi le jẹ iṣoro kan.

Ndari

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

Eyi ni ohun ti a ṣe, ọjọ naa ti pari Harshad Madhav kowe pada lati ṣayẹwo ati pe o yẹ ki o ṣiṣẹ, ṣugbọn rara, ipinnu naa ko ṣe iranlọwọ rara.

Lẹhinna ibaraẹnisọrọ wa pẹlu awọn onimọ-ẹrọ 2 diẹ sii, ọkan kan lọ silẹ ni iwiregbe, o han gbangba pe o bẹru ọran ti o nipọn, keji lo ọjọ mi lẹẹkansi lori iyipo kikun ti n ṣatunṣe aṣiṣe, fifiranṣẹ awọn akọọlẹ, ṣiṣẹda awọn iṣupọ ni ẹgbẹ mejeeji, ninu pari o kan sọ daradara, o ṣiṣẹ fun mi, nibi Emi ni MO ṣe ohun gbogbo ni igbese nipasẹ igbese ni iwe aṣẹ ati iwọ ati pe iwọ yoo ṣaṣeyọri.

Si eyi ti mo fi tọtitọ beere lọwọ rẹ lati lọ kuro ki o si fi ẹlomiran si tikẹti mi ti o ko ba mọ ibiti o ti wa iṣoro naa.

Ik

Ni ọjọ kẹta, a yan ẹlẹrọ tuntun Arun B. fun mi, ati lati ibẹrẹ ibaraẹnisọrọ pẹlu rẹ o han gbangba pe eyi kii ṣe awọn ẹlẹrọ mẹta tẹlẹ. O ka gbogbo itan-akọọlẹ ati lẹsẹkẹsẹ beere lati gba awọn akọọlẹ nipa lilo iwe afọwọkọ tirẹ lori ps3, eyiti o wa lori github rẹ. Eyi ni a tẹle lẹẹkansi nipasẹ gbogbo awọn iterations ti ṣiṣẹda awọn iṣupọ, awọn abajade pipaṣẹ ti njade, awọn akọọlẹ gbigba, ṣugbọn Arun B. n gbe ni itọsọna ti o tọ ni idajọ nipasẹ awọn ibeere ti a beere fun mi.

Nigbawo ni a de aaye ti mu ṣiṣẹ -stderrthreshold= ṣatunṣe aṣiṣe ninu vpc-controller wọn, ati kini o ṣẹlẹ lẹyin naa? dajudaju ko ṣiṣẹ) adarọ ese ko bẹrẹ pẹlu aṣayan yii, nikan -stderrthreshold=alaye n ṣiṣẹ.

A pari nibi ati Arun B. sọ pe oun yoo gbiyanju lati tun awọn igbesẹ mi ṣe lati gba aṣiṣe kanna. Ni ọjọ keji Mo gba esi lati ọdọ Arun B. ko kọ ọran yii silẹ, ṣugbọn o gba koodu atunyẹwo ti oludari vpc wọn ati rii aaye nibiti o wa ati idi ti ko ṣiṣẹ:

Amazon EKS Windows ni GA ni awọn idun, ṣugbọn o yara ju

Nitorinaa, ti o ba lo tabili ipa ọna akọkọ ninu VPC rẹ, lẹhinna nipasẹ aiyipada ko ni awọn ajọṣepọ pẹlu awọn subnets pataki, eyiti o jẹ pataki fun oluṣakoso vpc, ninu ọran ti subnet ti gbogbo eniyan, o ni tabili ipa ọna aṣa. ti o ni ajọṣepọ kan.

Nipa fifi awọn ẹgbẹ kun pẹlu ọwọ fun tabili ipa ọna akọkọ pẹlu awọn subnets pataki, ati tun-ṣiṣẹda nodegroup, ohun gbogbo n ṣiṣẹ ni pipe.

Mo nireti pe Arun B. yoo jabo kokoro yii gaan si awọn olupilẹṣẹ EKS ati pe a yoo rii ẹya tuntun ti vpc-controller nibiti ohun gbogbo yoo ṣiṣẹ jade ninu apoti. Lọwọlọwọ ẹya tuntun jẹ: 602401143452.dkr.ecr.ap-southeast-1.amazonaws.com/eks/vpc-resource-controller:0.2.1
ni iṣoro yii.

Ṣeun si gbogbo eniyan ti o ka si ipari, ṣe idanwo ohun gbogbo ti iwọ yoo lo ni iṣelọpọ ṣaaju imuse.

orisun: www.habr.com

Fi ọrọìwòye kun