Amazon EKS Windows nan GA gen pinèz, men se pi rapid la

Amazon EKS Windows nan GA gen pinèz, men se pi rapid la

Bon apremidi, mwen vle pataje avèk ou eksperyans mwen nan konfigirasyon ak itilizasyon sèvis AWS EKS (Elastic Kubernetes Service) pou resipyan Windows, oswa pito sou enposib pou sèvi ak li, ak ensèk yo jwenn nan veso sistèm AWS la, pou moun sa yo. ki enterese nan sèvis sa a pou resipyan Windows, tanpri anba chat.

Mwen konnen ke resipyan Windows yo pa yon sijè popilè, ak kèk moun ki sèvi ak yo, men mwen toujou deside ekri atik sa a, depi te gen yon koup nan atik sou Habré sou kubernetes ak Windows epi toujou gen moun sa yo.

Kòmanse

Tout bagay te kòmanse lè li te deside imigre sèvis yo nan konpayi nou an nan kubernetes, ki se 70% Windows ak 30% Linux. Pou rezon sa a, yo te konsidere sèvis nwaj AWS EKS la kòm youn nan opsyon posib yo. Jiska Oktòb 8, 2019, AWS EKS Windows te nan Preview Piblik, mwen te kòmanse avèk li, ansyen vèsyon 1.11 nan kubernetes yo te itilize la, men mwen deside tcheke li kanmenm epi wè nan ki etap sèvis nwaj sa a te, si li te travay. nan tout, kòm li te tounen soti, non, li te gen yon ensèk ak adisyon a nan retire gous, pandan y ap sa yo fin vye granmoun sispann reponn via IP entèn soti nan subnet la menm jan ak Windows travayè ne.

Se poutèt sa, li te deside abandone itilizasyon AWS EKS an favè pwòp gwoup nou an sou kubernetes sou menm EC2 a, sèlman nou ta dwe dekri tout balans lan ak HA tèt nou atravè CloudFormation.

Sipò pou veso Amazon EKS Windows kounye a disponib jeneralman

pa Martin Beeby | sou 08 OCT 2019

Anvan mwen te gen tan ajoute yon modèl nan CloudFormation pou pwòp gwoup mwen an, mwen te wè nouvèl sa a Sipò pou veso Amazon EKS Windows kounye a disponib jeneralman

Natirèlman, mwen te mete tout travay mwen sou kote epi mwen te kòmanse etidye sa yo te fè pou GA, ak ki jan tout bagay te chanje ak Public Preview. Wi, AWS, byen fè, mete ajou imaj yo pou Windows Worker node nan vèsyon 1.14, osi byen ke gwoup la li menm, vèsyon 1.14 nan EKS, kounye a sipòte Windows nœuds. Pwojè pa Preview Piblik nan github Yo kouvri li epi yo di kounye a sèvi ak dokiman ofisyèl la isit la: Sipò pou Windows EKS

Entegre yon gwoup EKS nan VPC ak subnet aktyèl yo

Nan tout sous, nan lyen ki pi wo a sou anons la ak nan dokiman an, li te pwopoze pou deplwaye gwoup la swa atravè sèvis piblik eksctl propriétaire oswa atravè CloudFormation + kubectl apre, sèlman lè l sèvi avèk subnet piblik nan Amazon, osi byen ke kreye yon separe VPC pou yon nouvo gwoup.

Opsyon sa a pa apwopriye pou anpil moun; premyèman, yon VPC separe vle di depans adisyonèl pou pri li + trafik peering nan VPC ou ye kounye a. Kisa moun ki deja gen yon enfrastrikti pare-fè nan AWS ak pwòp kont miltip AWS yo, VPC, sous-rezo, tab wout, pòtay transpò piblik ak sou sa yo ta dwe fè? Natirèlman, ou pa vle kraze oswa refè tout bagay sa yo, epi ou bezwen entegre nouvo gwoup EKS la nan enfrastrikti rezo aktyèl la, lè l sèvi avèk VPC ki deja egziste a epi, pou separasyon, nan pi plis kreye nouvo subnet pou gwoup la.

Nan ka mwen an, yo te chwazi chemen sa a, mwen te itilize VPC ki deja egziste a, mwen te ajoute sèlman 2 subnets piblik ak 2 subnets prive pou nouvo gwoup la, nan kou, tout règ yo te pran an kont dapre dokiman an. Kreye VPC Amazon EKS Cluster ou a.

Te gen yon kondisyon tou: pa gen okenn nœuds travayè nan sous-rezo piblik lè l sèvi avèk EIP.

eksctl vs CloudFormation

Mwen pral fè yon rezèvasyon touswit ke mwen te eseye tou de metòd pou deplwaye yon gwoup, nan tou de ka foto a te menm.

Mwen pral montre yon egzanp sèlman lè l sèvi avèk eksctl depi kòd la isit la pral pi kout. Sèvi ak eksctl, deplwaye gwoup la nan 3 etap:

1. Nou kreye gwoup la tèt li + Linux travayè ne, ki pral pita òganize resipyan sistèm ak sa a menm maladi vpc-kontwolè.

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

Pou deplwaye nan yon VPC ki deja egziste, jis presize id subnet ou yo, epi eksctl pral detèmine VPC nan tèt li.

Pou asire ke nœuds travayè ou yo deplwaye sèlman nan yon subnet prive, ou bezwen presize --node-private-networking pou nodegroup.

2. Nou enstale vpc-controller nan gwoup nou an, ki pral Lè sa a, trete nœuds travayè nou an, konte kantite adrès IP gratis, osi byen ke kantite ENI sou egzanp lan, ajoute ak retire yo.

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

3.Apre kontenè sistèm ou yo te lanse avèk siksè sou ne travayè Linux ou a, ki gen ladan vpc-kontwolè, tout sa ki rete se kreye yon lòt nodegroup ak travayè fenèt yo.

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

Apre ne ou fin konekte ak gwoup ou a ak tout bagay sanble ap anfòm, li nan estati Ready, men non.

Erè nan vpc-controller

Si nou eseye kouri gous sou yon ne travayè Windows, nou pral jwenn erè a:

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]

Si nou gade pi fon, nou wè ke egzanp nou an nan AWS sanble sa a:

Amazon EKS Windows nan GA gen pinèz, men se pi rapid la

Epi li ta dwe tankou sa a:

Amazon EKS Windows nan GA gen pinèz, men se pi rapid la

Soti nan sa a li klè ke vpc-kontwolè a pa t 'ranpli pati li yo pou kèk rezon epi li pa t' kapab ajoute nouvo adrès IP nan egzanp lan pou gous yo te kapab itilize yo.

Ann gade mòso bwa yo nan gous vpc-controller la ak sa a se sa nou wè:

kubectl boutèy demi lit -n kube-sistèm

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.

Rechèch sou Google pa t 'mennen nan anyen, paske aparamman pa gen moun ki te kenbe yon ensèk sa yo ankò, oswa pa te afiche yon pwoblèm sou li, mwen te oblije panse a opsyon tèt mwen an premye. Premye bagay ki te vin nan tèt ou se ke petèt vpc-controller la pa ka rezoud ip-10-xxx.ap-xxx.compute.internal epi rive jwenn li epi kidonk erè rive.

Wi, tout bon, nou itilize sèvè DNS koutim nan VPC a epi, an prensip, nou pa sèvi ak Amazon yo, kidonk menm transmisyon pa te configuré pou domèn ap-xxx.compute.internal sa a. Mwen teste opsyon sa a, epi li pa te pote rezilta, petèt tès la pa t pwòp, ak Se poutèt sa, pi lwen, lè yo kominike ak sipò teknik, mwen sikonbe nan lide yo.

Depi pa te gen okenn lide reyèlman, tout gwoup sekirite yo te kreye pa eksctl tèt li, kidonk pa te gen okenn dout sou sèvis yo, tab wout yo te tou kòrèk, nat, dns, aksè entènèt ak nœuds travayè te tou la.

Anplis, si ou deplwaye yon ne travayè nan yon sous-rezo piblik san w pa itilize —node-private-networking, vpc-controller la te mete ajou node sa a imedyatman epi tout bagay te travay tankou yon revèy.

Te gen de opsyon:

  1. Bay li epi tann jiskaske yon moun dekri ensèk sa a nan AWS epi yo ranje li, epi Lè sa a, ou ka san danje itilize AWS EKS Windows, paske yo jis lage nan GA (8 jou te pase nan moman ekri atik sa a), anpil pral pwobableman. swiv menm chemen ak mwen.
  2. Ekri bay AWS Support epi di yo sans pwoblèm nan ak yon pakèt mòso bwa tout kote epi pwouve yo ke sèvis yo pa travay lè w ap itilize VPC ou ak subnets, se pa pou anyen nou te gen sipò biznis, ou ta dwe itilize. li omwen yon fwa :)

Kominikasyon ak enjenyè AWS yo

Lè m te kreye yon tikè sou pòtal la, mwen te fè erè te chwazi reponn mwen via Entènèt - imel oswa sant sipò, atravè opsyon sa a yo ka reponn ou apre kèk jou nan tout, malgre lefèt ke tikè mwen an te gen Gravite - Sistèm andikape, ki te vle di yon repons nan <12 èdtan, epi depi plan sipò biznis la gen sipò 24/7, mwen te espere pi bon an, men li te tounen soti kòm toujou.

Yo te kite tikè mwen an san plase soti Vandredi jiska Lendi, Lè sa a, mwen deside ekri yo ankò epi mwen chwazi opsyon repons Chat la. Apre yo fin tann pou yon ti tan, Harshad Madhav te nonmen wè m ', epi Lè sa a, li te kòmanse ...

Nou debogaj ak li sou entènèt pou 3 èdtan nan yon ranje, transfere mòso bwa, deplwaye gwoup la menm nan laboratwa AWS pou imite pwoblèm nan, re-kreye gwoup la sou bò pa m, ak sou sa, sèl bagay nou te vin jwenn se ke soti nan mòso bwa yo li te klè ke rezo a pa t ap travay non domèn entèn AWS, ki mwen te ekri sou pi wo a, ak Harshad Madhav mande m 'yo kreye transmisyon, swadizan nou itilize dns koutim ak sa a ta ka yon pwoblèm.

Voye

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

Se sa ki te fèt, jou a te fini.Harshad Madhav te ekri tounen pou tcheke li e li ta dwe mache, men non, rezolisyon an pa t ede ditou.

Lè sa a, te gen kominikasyon ak 2 plis enjenyè, youn tou senpleman tonbe soti nan chat la, aparamman li te pè nan yon ka konplèks, dezyèm lan te pase jounen m 'ankò sou yon sik konplè nan debogaj, voye mòso bwa, kreye grap sou tou de bò, nan la. fen li jis di byen, li travay pou mwen, isit la mwen ye mwen fè tout bagay etap pa etap nan dokiman ofisyèl la epi ou menm ak ou pral reyisi.

Pou ki politès mwen te mande l 'kite ak bay yon lòt moun nan tikè mwen an si ou pa konnen ki kote yo gade pou pwoblèm nan.

Final

Sou twazyèm jou a, yon nouvo enjenyè Arun B. te asiyen m ', epi depi nan kòmansman an nan kominikasyon avè l' li te imedyatman klè ke sa a pa t '3 enjenyè yo anvan yo. Li te li tout istwa a epi imedyatman mande pou l kolekte mòso bwa yo lè l sèvi avèk pwòp script li sou ps1, ki te sou github l 'yo. Sa a te swiv ankò pa tout iterasyon yo nan kreye grap, pwodiksyon rezilta kòmand, kolekte mòso bwa, men Arun B. t ap deplase nan bon direksyon an jije pa kesyon yo te poze m '.

Ki lè nou te rive nan pwen nan pèmèt -stderrthreshold = debug nan vpc-controller yo, ak sa ki te pase apre? Natirèlman li pa travay) gous la tou senpleman pa kòmanse ak opsyon sa a, sèlman -stderrthreshold=info travay.

Nou te fini isit la ak Arun B. te di ke li ta eseye repwodui etap mwen yo jwenn menm erè a. Nan denmen mwen resevwa yon repons nan men Arun B. li pa t abandone ka sa a, men li te pran kòd revizyon vpc-kontwolè yo epi li te jwenn plas kote li ye a ak poukisa li pa travay:

Amazon EKS Windows nan GA gen pinèz, men se pi rapid la

Kidonk, si ou itilize tab wout prensipal la nan VPC ou a, Lè sa a, pa default li pa gen asosyasyon ak subnet ki nesesè yo, ki tèlman nesesè pou vpc-kontwolè a, nan ka a nan yon subnet piblik, li gen yon tab wout koutim. ki gen yon asosyasyon.

Lè w ajoute manyèlman asosyasyon pou tab wout prensipal la ak subnet ki nesesè yo, epi re-kreye gwoup node a, tout bagay ap travay parfe.

Mwen espere ke Arun B. pral vrèman rapòte ensèk sa a bay devlopè EKS yo epi nou pral wè yon nouvo vèsyon vpc-controller kote tout bagay pral travay soti nan bwat la. Kounye a dènye vèsyon an se: 602401143452.dkr.ecr.ap-southeast-1.amazonaws.com/eks/vpc-resource-controller:0.2.1
gen pwoblèm sa a.

Mèsi a tout moun ki li jiska lafen, teste tout sa ou pral itilize nan pwodiksyon anvan aplikasyon an.

Sous: www.habr.com

Add nouvo kòmantè