ABC ee Amniga Kubernetes: Xaqiijinta, Oggolaanshaha, Hantidhawrka
Si degdeg ah ama hadhow, nidaamka kasta oo uu shaqeeyo, arrinta amniga ayaa soo ifbaxa: hubinta xaqiijinta, kala-soocidda xuquuqda, xisaabinta iyo hawlo kale. Horaa loo sameeyay Kubernetes xalal badan, kaas oo kuu ogolaanaya inaad ku guulaysato u hoggaansanaanta heerarka xitaa jawiga aadka u baahan Ugu horreyntii, waxay faa'iido u yeelan doontaa kuwa bilaabaya inay bartaan Kubernetes - oo ah barta bilawga ah ee barashada arrimaha la xiriira amniga.
Xaqiijinta
Waxaa jira laba nooc oo isticmaalayaasha Kubernetes:
Xisaabaadka Adeegga - xisaabaadka ay maamusho Kubernetes API;
Users - Isticmaalayaasha "caadiga ah" ee ay maamulaan dibadda, adeegyo madaxbannaan.
Farqiga ugu weyn ee u dhexeeya noocyadan ayaa ah in xisaabaadka Adeegga ay ku jiraan walxo gaar ah Kubernetes API (waxaa loo yaqaannaa - ServiceAccounts), kuwaas oo ku xidhan meel magaceed iyo xog oggolaansho ah oo lagu kaydiyay kooxda oo ah walxaha sirta ah. Isticmaalayaasha noocaan ah (Akoonka Adeegga) ayaa ugu horayn loogu talagalay in lagu maareeyo xuquuqaha gelitaanka API Kubernetes ee hababka ka socda kooxda Kubernetes.
Isticmaalayaasha caadiga ah kuma laha gelinta Kubernetes API: waa in lagu maamulaa habab dibadda ah. Waxaa loogu talagalay dadka ama hababka ku nool meel ka baxsan kooxda.
Codsi kasta oo API ah waxa uu la xidhiidha Koontada Adeegga, Isticmaalaha, ama waxa loo arkaa qarsoodi.
Xogta aqoonsiga isticmaalaha waxaa ka mid ah:
username - username (kiis xasaasi ah!);
UID - xadhig aqoonsiga isticmaale-mashiin-akhrisan kara oo "ka sii joogto ah oo ka gaar ah magaca isticmaalaha";
Kooxaha - liiska kooxaha uu isticmaaluhu ka tirsan yahay;
dheeraad ah - meelo dheeraad ah oo loo isticmaali karo habka oggolaanshaha.
Waxaa intaa dheer, waxaa suurtagal ah in la isticmaalo dhowr qorshe oo oggolaansho isku mar ah. Sida caadiga ah, kooxdu waxay isticmaashaa:
Calaamadaha xisaabaadka adeegga - ee Xisaabaadka Adeegga;
X509 - loogu talagalay Isticmaalayaasha.
Su'aasha ku saabsan maaraynta ServiceAccounts way ka baxsan tahay xadka maqaalkan, laakiin kuwa doonaya inay si faahfaahsan u bartaan arrintan, waxaan ku talinayaa in la bilaabo boggaga dukumeentiyada rasmiga ah. Waxaan si dhow u eegi doonaa arrinta ku saabsan sida shahaadooyinka X509 u shaqeeyaan.
Shahaadooyinka isticmaalayaasha (X.509)
Habka caadiga ah ee loogu shaqeeyo shahaadooyinka waxaa ku jira:
ka baaraandegidda codsiga shahaadada iyadoo la adeegsanayo furayaasha kooxda Kubernetes CA, helitaanka shahaadada isticmaale (si aad u hesho shahaado, waa inaad isticmaashaa koontada marin u leh furaha Kubernetes cluster CA, kaas oo asal ahaan ku yaal /etc/kubernetes/pki/ca.key):
Si loo fududeeyo wareejinta isku xirka xisaabaadka iyo server-yada, waxaa faa'iido leh in la tafatiro qiyamka furayaasha soo socda:
certificate-authority
client-certificate
client-key
Si tan loo sameeyo, waxaad ku dhejin kartaa faylasha lagu cayimay iyaga adoo isticmaalaya base64 oo ku diiwaan geli config, adoo ku daraya lifaaqa magaca furayaasha -data, i.e. isagoo helay certificate-authority-data iyo wixii la mid ah.
Shahaadooyin leh kubeadm
Iyadoo la sii daayay Kubernetes 1.15 la shaqaynta shahaadooyinka ayaa noqotay mid aad u fudud iyada oo ay ugu wacan tahay nooca alfa ee taageeradeeda kubeadm utility. Tusaale ahaan, tani waa waxa soo saarida faylka qaabeynta ee leh furayaasha isticmaalaha hadda u ekaan karo:
kubeadm alpha kubeconfig user --client-name=mynewuser --apiserver-advertise-address 192.168.100.200
NB: loo baahan yahay ciwaanka xayaysii waxaa laga heli karaa api-server config, kaas oo sida caadiga ah ku yaal /etc/kubernetes/manifests/kube-apiserver.yaml.
Qaabaynta natiijada ayaa loo soo saari doonaa stdout. Waxay u baahan tahay in lagu badbaadiyo ~/.kube/config akoonka isticmaalaha ama fayl ku qeexan doorsoomaha deegaanka KUBECONFIG.
Qoto dheer
Kuwa doonaya inay fahmaan arrimaha si qoto dheer loo sharraxay:
maqaal gaar ah la shaqeynta shahaadooyinka dukumeentiga rasmiga ah ee Kubernetes;
Koontada la oggolaaday ee caadiga ah ma laha xuquuq ay ku shaqeyso kooxda. Si loo bixiyo oggolaanshaha, Kubernetes waxay fulisaa habka oggolaanshaha.
Kahor nooca 1.6, Kubernetes waxay adeegsatay nooc oggolaansho oo la yiraahdo ABAC ( xakamaynta gelitaanka sifada ku salaysan). Faahfaahinta waxa laga heli karaa dukumeenti rasmi ah. Habkan hadda waxaa loo tixgeliyaa dhaxal, laakiin waxaad weli u isticmaali kartaa noocyada kale ee aqoonsiga.
Habka hadda (iyo rogrogmi kara) ee loo qaybiyo xuquuqaha gelitaanka kooxdu waxa la yidhaahdaa RBAC (Xakamaynta gelitaanka doorka ku salaysan). Waxaa lagu dhawaaqay inay xasilloon tahay tan iyo nuqulkii Kubernetes 1.8. RBAC waxay fulisaa qaabka xuquuqaha kaas oo wax kasta oo aan si cad loo ogolayn laga mamnuucay. Si aad awood ugu siiso RBAC, waxaad u baahan tahay inaad kubernetes api-server ku bilawdo cabirka --authorization-mode=RBAC. Halbeegyada waxa lagu dejiyay muujinta leh habaynta api-server, kaas oo sida caadiga ah ku yaal jidka agtiisa /etc/kubernetes/manifests/kube-apiserver.yaml, qaybta command. Si kastaba ha noqotee, RBAC mar horeba si toos ah ayaa loo dajiyay, markaa waxay u badan tahay inaadan ka welwelin: tan waxaad ku xaqiijin kartaa qiimaha authorization-mode (ee hore loo sheegay kube-apiserver.yaml). Dhanka kale, macnaheeda ka mid ah waxaa jiri kara noocyo kale oo oggolaansho ah (node, webhook, always allow), laakiin waxaan uga tagi doonaa tixgelintooda meel ka baxsan baaxadda walxaha.
By habka, waxaan horay u daabacnay maqaal iyadoo si faahfaahsan loo sharraxay mabaadi'da iyo astaamaha la shaqeynta RBAC, si dheeraad ah waxaan naftayda ugu koobayaa liis kooban oo aasaaska iyo tusaalooyin ah.
Hay'adaha API ee soo socda ayaa loo isticmaalaa in lagu xakameeyo gelitaanka Kubernetes iyada oo loo marayo RBAC:
Role ΠΈ ClusterRole - doorarka u adeega si ay u qeexaan xuquuqaha gelitaanka:
Role waxay kuu ogolaanaysaa inaad ku qeexdo xuquuqaha gudaha magaca;
ClusterRole - Kutlada dhexdeeda, oo ay ku jiraan walxaha gaarka ah sida qanjidhada, URL-yada aan kheyraadka ahayn (ie, aan la xiriirin ilaha Kubernetes - tusaale ahaan, /version, /logs, /api*);
RoleBinding ΠΈ ClusterRoleBinding - loo isticmaalo in lagu xidho Role ΠΈ ClusterRole isticmaalaha, kooxda isticmaalaha ama ServiceAccount.
Doorka iyo hay'adaha RoleBinding waxay ku xaddidan yihiin meelaynta magaca, i.e. waa in ay ku dhex jiraan meel isku mid ah. Si kastaba ha ahaatee, RoleBinding waxay tixraaci kartaa ClusterRole, kaas oo kuu ogolaanaya inaad abuurto rukhsad guud oo aad maamusho isticmaalka iyaga.
Doorarku waxay qeexayaan xuquuqaha iyagoo isticmaalaya xeerar ka kooban:
Kooxaha API - eeg dukumeenti rasmi ah by apiGroups iyo wax soo saarka kubectl api-resources;
kheyraadka (Khayraadka: pod, namespace, deployment iyo wixii la mid ah.);
Falal (ficil: set, update iyo wixi la mida.).
Magacyada kheyraadka (resourceNames) - kiiska marka aad u baahan tahay inaad bixiso marin u helka kheyraad gaar ah, oo aan la siin dhammaan agabyada noocaan ah.
Falanqaynta faahfaahsan ee oggolaanshaha Kubernetes ayaa laga heli karaa bogga dukumeenti rasmi ah. Halkii (ama halkii, marka lagu daro tan), waxaan ku siin doonaa tusaalayaal muujinaya shaqadeeda.
Tusaalooyinka hay'adaha RBAC
Fudud Role, kaas oo kuu ogolaanaya inaad hesho liiska iyo heerka pods oo aad la socoto iyaga in magaca target-namespace:
Nidaam ahaan, qaab dhismeedka Kubernetes waxaa lagu matali karaa sida soo socota:
Qaybta muhiimka ah ee Kubernetes ee ka masuulka ah socodsiinta codsiyada waa api-server. Dhammaan hawlgallada kooxdu way maraan. Waxaad wax badan oo ku saabsan hababkan gudaha ka akhrisan kartaa maqaalka "Maxaa ka dhacaya Kubernetes marka aad ordo kubectl run?".
Hantidhawrka nidaamku waa muuqaal xiiso leh gudaha Kubernetes, kaas oo si caadi ah u naafo ah. Waxay kuu ogolaanaysaa inaad gasho dhammaan wicitaannada Kubernetes API. Sida aad qiyaasi karto, dhammaan falalka la xidhiidha la socodka iyo beddelka xaaladda kooxda waxa lagu sameeyaa API-gan. Sharaxaad wanaagsan oo ku saabsan awoodaheeda ayaa laga heli karaa (sida caadiga ah). dukumeenti rasmi ah K8s Marka xigta, waxaan isku dayi doonaa inaan mowduuca ku soo bandhigo luqad fudud.
Sidaas si loo suurtageliyo hanti-dhawrka, waxaan u baahanahay in aan u gudubno saddex cabbir oo loo baahan yahay weelka ku jira api-server, kuwaas oo si faahfaahsan hoos loogu qeexay:
Marka lagu daro saddexdan cabbir ee lagama maarmaanka ah, waxaa jira goobo badan oo dheeraad ah oo la xiriira xisaabinta: laga bilaabo wareegtada log ilaa sharaxaadda webhook. Tusaalaha cabbiraadaha wareegtada log:
--audit-log-maxbackup=10
--audit-log-maxsize=100
--audit-log-maxage=7
Laakiin si faahfaahsan uga hadli mayno iyaga - waxaad ka heli kartaa dhammaan faahfaahinta gudaha dukumentiyada kube-apiserver.
Sidii aan horeyba u soo sheegnay, dhammaan xuduudaha ayaa lagu dejiyay muujinta leh qaabeynta api-server (sida caadiga ah /etc/kubernetes/manifests/kube-apiserver.yaml), qaybta command. Aan ku soo laabano 3-dabeeg ee loo baahnaa oo aan falanqeynno:
audit-policy-file - dariiqa loo maro faylka YAML ee qeexaya siyaasadda hantidhawrka. Waxaan dib ugu soo laaban doonaa waxa ku jira, laakiin hadda waxaan ogaan doonaa in faylka ay tahay in la akhriyo habka api-server. Sidaa darteed, waa lagama maarmaan in lagu dhejiyo gudaha weelka, kaas oo aad ku dari karto koodhka soo socda qaybaha ku habboon ee qaabeynta:
audit-log-path - jidka loo maro faylka log. Waddadu waa inay sidoo kale ahaataa mid la geli karo habka api-server, markaa waxaanu ku sifeyneynaa si la mid ah:
audit-log-format - qaabka xisaab hubinta. Dabeecaddu waa json, laakiin qaabka qoraalka dhaxalka ah sidoo kale waa la heli karaa (legacy).
Siyaasadda Hanti-dhawrka
Hadda oo ku saabsan faylka la sheegay ee qeexaya siyaasadda gaynta. Fikradda koowaad ee siyaasadda hanti-dhawrku waa level, heerka goynta. Waxayna kala yihiin sidan.
RequestResponse - gal xogta badan, codsiga jidhka iyo jawaabta jidhka.
Labada heer ee ugu dambeeya (Request ΠΈ RequestResponse) ha qorin codsiyada aan marin ilaha (helitaanka waxa loogu yeero urls-ka aan kheyraadka ahayn).
Sidoo kale dhammaan codsiyada waa la maraa dhowr marxaladood:
RequestReceived - marxaladda marka codsiga uu helo processor-ku oo aan weli lagu sii gudbin silsiladda processor-yada;
ResponseStarted - madaxa jawaabaha ayaa la soo diraa, laakiin ka hor inta aan la dirin jidhka jawaabta. Loo sameeyay su'aalaha muddada dheer socda (tusaale ahaan, watch);
ResponseComplete - Hay'adda jawaabta waa la diray, macluumaad dheeraad ah lama diri doono;
Panic - dhacdooyinka waxay abuurmaan marka xaalad aan caadi ahayn la ogaado.
Si aad uga gudubto tallaabo kasta oo aad isticmaali karto omitStages.
Faylka siyaasadda, waxaan ku qeexi karnaa dhowr qaybood oo leh heerar shaqo oo kala duwan. Xeerka u horeeya ee u dhigma ee laga helay sharaxaadda siyaasadda ayaa lagu dabaqi doonaa.
Kubelet daemon wuxuu la socdaa isbeddelada ku yimaadda muujinta qaabeynta api-server-ka oo, haddii mid la ogaado, wuxuu dib ugu bilaabaa weelka isagoo wata api-server. Laakiin waxaa jira faahfaahin muhiim ah: isbedelada faylka siyaasadda waa la iska indhatiraa iyada. Ka dib markaad isbeddel ku samayso faylka siyaasadda, waxaad u baahan doontaa inaad dib u bilowdo api-serverka gacanta. Maadaama api-server loo bilaabay sidii baal taagan, kooxda kubectl delete ma keeni doonto inay dib u bilowdo. Waa inaad gacanta ku samaysaa docker stop Kube-masters, halkaas oo siyaasadda hanti dhawrka la bedelay:
Feejignow! Khayraadka iyo kooxaha kheyraadka (kooxaha API, i.e. apiGroups), iyo sidoo kale noocyadooda lagu rakibay kutlada, waxaa lagu heli karaa iyadoo la adeegsanayo amarada:
kubectl api-resources
kubectl api-versions
Siyaasadda hanti-dhawrka ee soo socota ayaa la bixiyaa si ay u muujiso hababka ugu wanaagsan Dukumentiyada Alibaba Cloud:
Si degdeg ah looga jawaabo dhacdooyinka hantidhawrka, waa suurtogal sharax webhook. Arintan ayaa lagu soo koobay dukumeenti rasmi ah, Waxaan kaga baxayaa meel ka baxsan baaxadda maqaalkan.
Natiijooyinka
Maqaalku wuxuu bixiyaa dulmar guud oo ku saabsan hababka amniga aasaasiga ah ee Kubernetes clusters, kaas oo kuu ogolaanaya inaad abuurto xisaabaadka isticmaalaha shakhsi ahaaneed, kala saar xuquuqdooda, oo aad duubto falalkooda. Waxaan rajeynayaa inay waxtar u yeelan doonto kuwa ay la kulmaan arrimahan oo kale aragti ahaan ama ficil ahaan. Waxaan sidoo kale kugula talinayaa inaad akhrido liiska agabyada kale ee mawduuca amniga ee Kubernetes, kaas oo lagu bixiyo "PS" - laga yaabee in iyaga ka mid ah aad ka heli doonto faahfaahinta lagama maarmaanka ah ee dhibaatooyinka adiga kugu habboon.