Tha biastagan aig Amazon EKS Windows ann an GA, ach is e am fear as luaithe

Tha biastagan aig Amazon EKS Windows ann an GA, ach is e am fear as luaithe

Feasgar math, tha mi airson an t-eòlas agam a cho-roinn riut ann a bhith a’ stèidheachadh agus a’ cleachdadh seirbheis AWS EKS (Seirbheis Elastic Kubernetes) airson soithichean Windows, no an àite a bhith neo-chomasach a bhith ga chleachdadh, agus am biast a lorgar ann an inneal siostam AWS, dhaibhsan aig a bheil ùidh san t-seirbheis seo airson soithichean Windows, feuch an cuir thu fo cat.

Tha fios agam nach e cuspair mòr-chòrdte a th’ ann an soithichean Windows, agus chan eil mòran dhaoine gan cleachdadh, ach chuir mi romham an artaigil seo a sgrìobhadh fhathast, leis gu robh artaigil no dhà air Habré air kubernetes agus Windows agus tha daoine mar sin ann fhathast.

An toiseach

Thòisich e uile nuair a chaidh co-dhùnadh na seirbheisean sa chompanaidh againn a ghluasad gu kubernetes, is e sin 70% Windows agus 30% Linux. Airson an adhbhair seo, chaidh seirbheis sgòthan AWS EKS a mheas mar aon de na roghainnean a dh’ fhaodadh a bhith ann. Gu ruige 8 Dàmhair, 2019, bha AWS EKS Windows ann an Ro-shealladh Poblach, thòisich mi leis, chaidh an seann dreach 1.11 de kubernetes a chleachdadh an sin, ach chuir mi romham sgrùdadh a dhèanamh air co-dhiù agus faicinn dè an ìre aig an robh an t-seirbheis sgòthan seo, an robh e ag obair co-dhiù, mar a thionndaidh e a-mach, chan e, bha bug ann le bhith a’ toirt air falbh pods, fhad ‘s a sguir na seann fheadhainn a bhith a’ freagairt tro ip a-staigh bhon aon subnet ri nód neach-obrach na h-uinneige.

Mar sin, chaidh co-dhùnadh cleachdadh AWS EKS a leigeil seachad airson ar cruinneachadh fhèin air kubernetes air an aon EC2, cha bhiodh againn ach cunntas a thoirt air a h-uile cothromachadh agus HA sinn fhìn tro CloudFormation.

Taic Amazon EKS Windows Container a-nis ri fhaighinn sa chumantas

le Màrtainn Beeby | air 08 Dàmhair 2019

Mus robh tìde agam teamplaid a chuir ri CloudFormation airson a’ bhuidheann agam fhìn, chunnaic mi an naidheachd seo Taic Amazon EKS Windows Container a-nis ri fhaighinn sa chumantas

Gu dearbh, chuir mi m’ obair gu lèir gu aon taobh agus thòisich mi a’ sgrùdadh na rinn iad airson GA, agus mar a dh’ atharraich a h-uile càil le Public Preview. Tha, rinn AWS, gu math, ùrachadh air na h-ìomhaighean airson nód neach-obrach uinneagan gu dreach 1.14, a bharrachd air a’ bhuidheann fhèin, dreach 1.14 ann an EKS, a-nis a ’toirt taic do nodan uinneagan. Pròiseact le Ro-shealladh Poblach aig github Chòmhdaich iad e agus thuirt iad a-nis cleachd na sgrìobhainnean oifigeil an seo: Taic EKS Windows

Ag amalachadh cruinneachadh EKS a-steach don VPC gnàthach agus subnets

Anns a h-uile stòr, anns a ’cheangal gu h-àrd air an fhoillseachadh a bharrachd air anns na sgrìobhainnean, chaidh a mholadh an cruinneachadh a chuir a-steach an dàrna cuid tro ghoireas eksctl seilbh no tro CloudFormation + kubectl às deidh sin, dìreach a’ cleachdadh subnets poblach ann an Amazon, a bharrachd air a bhith a ’cruthachadh a VPC air leth airson buidheann ùr.

Chan eil an roghainn seo freagarrach dha mòran; an toiseach, tha VPC air leth a’ ciallachadh cosgaisean a bharrachd airson a chosgais + a’ coimhead air trafaic chun VPC gnàthach agad. Dè bu chòir dhaibhsan aig a bheil bun-structar deiseil mar-thà ann an AWS leis na cunntasan Ioma AWS aca fhèin, VPC, subnets, clàran slighe, geata gluasaid agus mar sin air adhart a dhèanamh? Gu dearbh, chan eil thu airson seo a bhriseadh no ath-dhèanamh, agus feumaidh tu an cruinneachadh ùr EKS fhilleadh a-steach don bhun-structar lìonra gnàthach, a ’cleachdadh an VPC a th’ ann agus, airson dealachadh, aig a ’char as motha cruthaich subnets ùra airson a’ bhuidheann.

Anns a ’chùis agam, chaidh an t-slighe seo a thaghadh, chleachd mi an VPC a th’ ann, cha do chuir mi ach 2 subnets poblach agus 2 subnets prìobhaideach airson a ’bhuidheann ùr, gu dearbh, chaidh aire a thoirt do na riaghailtean uile a rèir na sgrìobhainnean Cruthaich do Amazon EKS Cluster VPC.

Bha aon chumha ann cuideachd: gun nodan neach-obrach ann am fo-lìn poblach a’ cleachdadh EIP.

eksctl vs CloudFormation

Nì mi glèidheadh ​​​​sa bhad gun do dh’ fheuch mi an dà dhòigh air cruinneachadh a chleachdadh, anns gach cùis bha an dealbh mar a bha e.

Seallaidh mi eisimpleir a-mhàin a’ cleachdadh eksctl oir bidh an còd an seo nas giorra. A’ cleachdadh eksctl, cuir a’ bhuidheann an sàs ann an 3 ceumannan:

1. Bidh sinn a’ cruthachadh a’ bhraisle fhèin + nód neach-obrach Linux, a bheir aoigheachd do shoithichean an t-siostaim nas fhaide air adhart agus an aon rianadair vpc nach eil cho math sin.

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

Gus a chuir gu VPC a th’ ann mar-thà, dìreach sònraich id na subnets agad, agus suidhichidh eksctl an VPC fhèin.

Gus dèanamh cinnteach gu bheil na nodan neach-obrach agad air an cleachdadh gu subnet prìobhaideach a-mhàin, feumaidh tu --node-private-networking a shònrachadh airson nodegroup.

2. Bidh sinn a 'stàladh vpc-controller anns a' bhuidheann againn, a bhios an uairsin a 'pròiseasadh ar nodan luchd-obrach, a' cunntadh an àireamh de sheòlaidhean IP an-asgaidh, a bharrachd air an àireamh de ENI air an eisimpleir, gan cur ris agus gan toirt air falbh.

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

3. Às deidh do shoithichean siostam a chuir air bhog gu soirbheachail air an nód neach-obrach Linux agad, a’ toirt a-steach vpc-controller, chan eil air fhàgail ach nodegroup eile a chruthachadh le luchd-obrach uinneagan.

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

Às deidh do nód a bhith ceangailte gu soirbheachail ris a’ bhuidheann agad agus tha coltas gu bheil a h-uile dad gu math, tha e ann an inbhe Deiseil, ach chan eil.

Mearachd ann an vpc-controller

Ma dh’ fheuchas sinn ri pods a ruith air nód neach-obrach windows, gheibh sinn a’ mhearachd:

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]

Ma choimheadas sinn nas doimhne, chì sinn gu bheil an eisimpleir againn ann an AWS a’ coimhead mar seo:

Tha biastagan aig Amazon EKS Windows ann an GA, ach is e am fear as luaithe

Agus bu chòir dha a bhith mar seo:

Tha biastagan aig Amazon EKS Windows ann an GA, ach is e am fear as luaithe

Bhon seo tha e soilleir nach do choilean an vpc-controller a phàirt airson adhbhar air choireigin agus nach b’ urrainn dhaibh seòlaidhean IP ùra a chur ris an eisimpleir gus am b’ urrainn dha na pods an cleachdadh.

Bheir sinn sùil air logaichean a’ pod vpc-controller agus seo a chì sinn:

clàr kubectl -n cube-siostam

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.

Cha do lean rannsachaidhean air Google gu dad, oir a rèir coltais cha robh duine air a leithid de bhiast a ghlacadh fhathast, no nach robh iad air cùis a phostadh air, bha agam ri smaoineachadh air roghainnean mi-fhìn an toiseach. B ’e a’ chiad rud a thàinig gu inntinn gur dòcha nach urrainn don vpc-controller fuasgladh ip-10-xxx.ap-xxx.compute.internal agus a ruighinn agus mar sin bidh mearachdan a ’tachairt.

Tha, gu dearbh, bidh sinn a’ cleachdadh frithealaichean DNS àbhaisteach anns an VPC agus, ann am prionnsapal, cha bhith sinn a’ cleachdadh feadhainn Amazon, agus mar sin cha deach eadhon gluasad air adhart a rèiteachadh airson an àrainn ap-xxx.compute.internal seo. Rinn mi deuchainn air an roghainn seo, agus cha tug e toraidhean, is dòcha nach robh an deuchainn glan, agus mar sin, nas fhaide air adhart, nuair a bha mi a’ conaltradh le taic theicnigeach, ghabh mi ris a ’bheachd aca.

Leis nach robh beachdan sam bith ann dha-rìribh, chaidh a h-uile buidheann tèarainteachd a chruthachadh le eksctl fhèin, agus mar sin cha robh teagamh sam bith mu cho feumail sa bha iad, bha na clàran slighe ceart cuideachd, nat, dns, bha ruigsinneachd eadar-lìn le nodan luchd-obrach ann cuideachd.

A bharrachd air an sin, ma chleachdas tu nód neach-obrach gu subnet poblach gun a bhith a’ cleachdadh —node-private-networking, chaidh an nód seo ùrachadh sa bhad leis an vpc-controller agus dh’ obraich a h-uile càil mar obair-cloc.

Bha dà roghainn ann:

  1. Thoir seachad e agus feitheamh gus an toir cuideigin cunntas air a’ bhiast seo ann an AWS agus gun socraich iad e, agus an uairsin faodaidh tu AWS EKS Windows a chleachdadh gu sàbhailte, leis gu bheil iad dìreach air an leigeil ma sgaoil ann an GA (tha 8 latha air a dhol seachad aig àm sgrìobhaidh an artaigil seo), is dòcha gum bi mòran ann. lean an aon slighe riumsa.
  2. Sgrìobh gu Taic AWS agus innis dhaibh brìgh na trioblaid le dòrlach de logaichean às a h-uile àite agus dearbhaich dhaibh nach obraich an t-seirbheis aca nuair a bhios tu a’ cleachdadh do VPC agus subnets, chan ann airson rud sam bith a bha taic gnìomhachais againn, bu chòir dhut a chleachdadh e co-dhiù aon turas :)

Conaltradh le innleadairean AWS

Às deidh dhomh tiogaid a chruthachadh air an portal, thagh mi le mearachd freagairt a thoirt dhomh tron ​​​​Lìon - post-d no ionad taic, tron ​​​​roghainn seo is urrainn dhaibh do fhreagairt às deidh beagan làithean idir, a dh’ aindeoin gu robh an tiogaid agam trom - le duilgheadas siostam, a tha a’ ciallachadh freagairt taobh a-staigh <12 uairean, agus leis gu bheil taic 24/7 aig a’ phlana taic gnìomhachais, bha mi an dòchas airson a’ chuid as fheàrr, ach thionndaidh e a-mach mar a bha e an-còmhnaidh.

Chaidh an tiogaid agam fhàgail gun ainm bho Dhihaoine gu Diluain, agus chuir mi romham sgrìobhadh thuca a-rithist agus thagh mi an roghainn freagairt Chat. Às deidh dha feitheamh airson ùine ghoirid, chaidh Harshad Madhav a chuir an dreuchd airson mo fhaicinn, agus an uairsin thòisich e ...

Rinn sinn dì-bhugachadh leis air-loidhne airson 3 uairean ann an sreath, a’ gluasad chlàran, a’ cleachdadh an aon bhuidheann ann an obair-lann AWS gus an duilgheadas ath-chruthachadh, ag ath-chruthachadh a’ bhuidheann air mo thaobh, agus mar sin air adhart, is e an aon rud a thàinig sinn thuige sin bho na logaichean bha e soilleir nach robh an resol ag obair AWS ainmean fearainn a-staigh, air an do sgrìobh mi mu dheidhinn gu h-àrd, agus dh’ iarr Harshad Madhav orm gluasad air adhart a chruthachadh, a rèir aithris bidh sinn a ’cleachdadh DNS àbhaisteach agus dh’ fhaodadh seo a bhith na dhuilgheadas.

A 'gluasad air adhart

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

Is e sin a chaidh a dhèanamh, bha an latha seachad. Sgrìobh Harshad Madhav air ais gus a sgrùdadh agus bu chòir dha obrachadh, ach chan e, cha do chuidich an rùn idir.

An uairsin bha conaltradh ann le 2 innleadairean eile, leig aon dhiubh a-mach às a ’chat, a rèir coltais bha eagal air mu chùis iom-fhillte, chuir an dàrna fear seachad mo latha a-rithist air làn chearcall debugging, a’ cur logaichean, a ’cruthachadh chlàran air gach taobh, anns an deireadh thuirt e gu math, tha e ag obair dhòmhsa, an seo tha mi a’ dèanamh a h-uile càil ceum air cheum anns na sgrìobhainnean oifigeil agus bidh thu fhèin agus thusa a’ soirbheachadh.

Dh’ iarr mi gu modhail air falbh agus cuideigin eile a shònrachadh don tiogaid agam mura h-eil fios agad càite an coimhead thu airson an duilgheadas.

Deireannach

Air an treas latha, chaidh innleadair ùr Arun B. a shònrachadh dhomh, agus bhon fhìor thoiseach conaltraidh leis bha e soilleir sa bhad nach b ’e seo na 3 innleadairean a bh’ ann roimhe. Leugh e an eachdraidh gu lèir agus dh 'iarr e sa bhad na logaichean a chruinneachadh a' cleachdadh an sgriobt aige fhèin air ps1, a bha air a github. Chaidh seo a leantainn a-rithist leis a h-uile tionndadh de bhith a’ cruthachadh chlàran, a’ cur a-mach toraidhean àithne, a’ cruinneachadh chlàran, ach bha Arun B. a’ gluasad san t-slighe cheart a’ breithneachadh leis na ceistean a chaidh fhaighneachd dhomh.

Cuin a ràinig sinn an ìre de chomasachadh -stderrthreshold=debug anns an vpc-controller aca, agus dè thachair a-nis? gu dearbh chan eil e ag obair) chan eil am pod dìreach a’ tòiseachadh leis an roghainn seo, dìreach -stderrthreshold = tha fiosrachadh ag obair.

Chrìochnaich sinn an seo agus thuirt Arun B. gum feuchadh e ri mo cheuman ath-chruthachadh gus an aon mhearachd fhaighinn. An ath latha gheibh mi freagairt bho Arun B. cha do thrèig e a’ chùis seo, ach ghabh e ri còd ath-bhreithneachaidh an vpc-controller aca agus lorg e an t-àite far a bheil e agus carson nach obraich e:

Tha biastagan aig Amazon EKS Windows ann an GA, ach is e am fear as luaithe

Mar sin, ma chleachdas tu am prìomh chlàr slighe anns an VPC agad, an uairsin gu bunaiteach chan eil ceanglaichean aige ris na subnets riatanach, a tha cho riatanach airson an vpc-controller, a thaobh subnet poblach, tha clàr slighe àbhaisteach aige aig a bheil ceangal.

Le bhith a’ cur comainn le làimh airson a’ phrìomh chlàr slighe leis na subnets riatanach, agus ag ath-chruthachadh an nódegroup, bidh a h-uile dad ag obair gu foirfe.

Tha mi an dòchas gun toir Arun B. aithris dha-rìribh air a’ bhiast seo do luchd-leasachaidh EKS agus chì sinn dreach ùr de vpc-controller far an obraich a h-uile càil a-mach às a’ bhogsa. Is e an dreach as ùire an-dràsta: 602401143452.dkr.ecr.ap-southeast-1.amazonaws.com/eks/vpc-resource-controller: 0.2.1
aig a bheil an duilgheadas seo.

Taing don a h-uile duine a leugh gu deireadh, dèan deuchainn air a h-uile dad a tha thu gu bhith a’ cleachdadh ann an cinneasachadh mus tèid a bhuileachadh.

Source: www.habr.com

Cuir beachd ann