
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
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 Chòmhdaich iad e agus thuirt iad a-nis cleachd na sgrĂŹobhainnean oifigeil an seo:
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 .
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-networkingGus 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 --approve3. Ă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:

Agus bu chòir dha a bhith mar seo:

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:
- 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.
- 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:

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
