Ẹ̀yà tí ó léwu ti ìyípadà yìí ni àṣẹ kan ṣoṣo tí ó yí endpoint padà tí ó sì ti gbogbo alábòójútó pa mọ́ ní àkókò kan náà. Ẹ̀yà tí ó ní ààbò ń jẹ́ kí ọ̀nà méjèèjì wà ní ṣíṣí, ó fi hàn pé èyí àdáni ń ṣiṣẹ́ láti VPN, àti nígbà náà péré ni ó yọ endpoint gbangba kúrò. Ronú pé cluster kan wà tẹ́lẹ̀, tunnel tí a fọwọ́ sí sínú VPC rẹ̀ àti kubeconfig tí ó ti ń ṣiṣẹ́; iṣẹ́ náà ni ààbò àdáni sí API Kubernetes, kì í ṣe àwọn node àdáni àti kì í ṣe àwòrán àṣẹ tuntun. Ìgbésẹ̀ kọ̀ọ̀kan nísàlẹ̀ ní àyẹ̀wò kan tí o lè kùnà ní ààbò.

1. Ṣe àkọsílẹ̀ endpoint kí o sì pa ọ̀nà àpadà mọ́

Kọ ipò ìsinsìnyí sílẹ̀ kí o tó yí i padà, pẹ̀lú àkọsílẹ̀ CIDR gbangba tí a gbà àti ẹgbẹ́ ààbò cluster. Àwọn méjèèjì ni wàá fi wé nígbà tí nǹkan kan bá dá ṣiṣẹ́, àti àkọsílẹ̀ ìgbà náà ni ọ̀nà àpadà rẹ pẹ̀lú bí ọ̀nà àdáni bá já sí èèṣe.

aws eks describe-cluster --region REGION --name CLUSTER \
  --query 'cluster.{endpoint:endpoint,public:resourcesVpcConfig.endpointPublicAccess,private:resourcesVpcConfig.endpointPrivateAccess,cidrs:resourcesVpcConfig.publicAccessCidrs}'

REGION àti CLUSTER jẹ́ àwòrán ibi níbí. Ṣàkíyèsí ohun tí àsíá àdáni ń kà nísisìnyí, nítorí cluster tí a dá pẹ̀lú ààbò àdáni tí ó ti ṣiṣẹ́ nílò ìgbésẹ̀ àkọ́kọ́ tí ó yàtọ̀ sí èyí tí kò tíì ní rẹ̀ rí. Pa ọ̀nà ìṣàkóso tí a fọwọ́ sí kí ó ṣí ní àkókò ìyípadà; VPN tí ó gbára lé pé cluster kan náà lè dé kì í ṣe ọ̀nà ìmúpadà.

2. Mú ààbò àdáni ṣiṣẹ́ nígbà tí ọ̀nà nẹ́tíwọ́kì ti wà

Fífi àsíá ṣiṣẹ́ ni ìdajì tí ó rọrùn. Tunnel nílò ọ̀nà sí àwọn àdírẹ́sì àdáni endpoint, ẹgbẹ́ ààbò cluster sì nílò TCP 443 láti orísun tí VPN ń fi hàn ní ti gidi. Àjọṣepọ̀ Client VPN, ẹnubodè site-to-site àti VPC tí a so pọ̀ lè fi orísun àdírẹ́sì ọ̀tọ̀ọ̀tọ̀ hàn, nítorí náà lo àwòrán tí o ti gbé kalẹ̀ dípò ìwọ̀n àdáni gbogbogbò.

aws eks update-cluster-config --region REGION --name CLUSTER \
  --resources-vpc-config endpointPublicAccess=true,endpointPrivateAccess=true

aws eks describe-update --region REGION --name CLUSTER --update-id UPDATE_ID

Ìmúdójúìwọ̀n jẹ́ aláìsí àfojúsùn. Béèrè id ìmúdójúìwọ̀n títí tí yóò fi sọ àṣeyọrí dípò dídúró iye àìpẹ́ sẹ́kọ̀ọ́ndì kan kí o sì rò. Fi ìrìnàjò àwọn node àti pátákó ìṣàkóso sílẹ̀ ní àlàáfíà nígbà tí o ń ṣe èyí: rípo ẹgbẹ́ ààbò cluster pátápátá pẹ̀lú òfin fún kọ̀mpútà rẹ ni ọ̀nà tí pátákó dátà tí ń ṣiṣẹ́ fi di ìṣẹ̀lẹ̀ kejì.

Àwọn ìwé ẹ̀kọ́ endpoint EKS yẹ kí a kà ní ẹ̀ẹ̀kan pátápátá, nítorí wọ́n sọ pé ààbò àdáni nìkan lè wá láti VPC tàbí nẹ́tíwọ́kì tí a so pọ̀. Gbólóhùn yẹn ni gbogbo ìdí tí ìṣíkiri yìí fi ṣeéṣe, ìdí tí ìgbésẹ̀ tó kàn sì wà pẹ̀lú.

3. Fi hàn pé ibùdó iṣẹ́ lo ọ̀nà àdáni

Pẹ̀lú àwọn endpoint méjèèjì tí ó ṣiṣẹ́, kubectl get ns tí ó ṣàṣeyọrí kò fi nǹkan kan hàn nípa èyí tí ó dáhùn. Yánjú orúkọ agbàlejò endpoint kí o sì yẹ̀wò bóyá àdírẹ́sì tí o rí wà nínú ìwọ̀n àdáni tàbí ti gbangba. Bí nẹ́tíwọ́kì tí a so pọ̀ rẹ kò bá gba ìwò àdáni nípasẹ̀ DNS, àṣẹ yóò ṣàṣeyọrí nípasẹ̀ endpoint gbangba, ìwọ yóò sì yọ ọ̀nà gbangba kúrò lórí ẹ̀rí èké. Èyí ni ọ̀nà tí ó wọ́pọ̀ jùlọ tí ìṣíkiri yìí fi ń lọ́nà èèṣe, ó sì dà bí àṣeyọrí gan-an.

nslookup HASH.gr7.REGION.eks.amazonaws.com
kubectl cluster-info
kubectl get ns --request-timeout=10s

Pa orúkọ agbàlejò àti ìjẹ́rìí ìwé-ẹ̀rí mọ́ bí wọ́n ti wà. Rípo pẹ̀lú IP àdáni nínú kubeconfig àti fífo ìjẹ́rìí TLS kì í ṣe ìṣíkiri tí o ṣàpèjúwe nínú àkọsílẹ̀ ìyípadà, yóò sì kùnà lẹ́ẹ̀kan sí i ní àkókò tí endpoint yóò yí.

4. Yọ ààbò gbangba kúrò pẹ̀lú ìmọ̀ọ́nú

Nígbà tí a bá ti fi ọ̀nà àdáni hàn tí a sì fọwọ́ sí ìlànà ìmúpadà, pa endpoint gbangba. Èyí jẹ́ ìyípadà gidi kì í ṣe àfihàn, nítorí náà ṣe é lórí àkọsílẹ̀ àti ètò tí o ní lọ́kàn gan-an.

aws eks update-cluster-config --region REGION --name CLUSTER \
  --resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true

Nínú ipò àdáni nìkan, orúkọ DNS gbangba ń yanjú sí àwọn àdírẹ́sì àdáni endpoint láti inú VPC, nítorí náà ìyanjú àti ìdé kò tún jẹ́ ohun kan. Ohunkóhun tí ó gbára lé àdírẹ́sì gbangba, pẹ̀lú àwọn olùṣe CI tàbí kọ̀mpútà ní nẹ́tíwọ́kì mìíràn, nílò ọ̀nà ìwọlé tirẹ̀ báyìí.

5. Pa ètò nẹ́tíwọ́kì àti ètò ìdánimọ̀ mọ́ lọ́tọ̀

Àkọsílẹ̀ CIDR ààbò gbangba ń ṣàkóso endpoint gbangba nìkan. Kò dín endpoint àdáni lẹ́kùn, èyí tí ẹgbẹ́ ààbò cluster àti ètò nẹ́tíwọ́kì tí a so pọ̀ ń dín lẹ́kùn. Bí o bá pa endpoint gbangba mọ́, àkọsílẹ̀ ìgbà rẹ̀ gbọdọ̀ bá ìjáde gbangba tí àwọn oníbàárà API àti node rẹ ń lò gan-an mu; àdírẹ́sì adágún VPN kì í sábà jẹ́ orísun yẹn.

Kò sí nínú èyí tí ó yí IAM tàbí Kubernetes RBAC padà. Ètò endpoint jẹ́ ìgbésẹ̀ ìṣàkóso, àwọn olùlò lasan kò sì yẹ kí wọ́n gba àṣẹ láti tú ààlà lọ́wọ́ kìkì láti dé API. Kọ ipò ìkẹyìn, ọjọ́ àti ọ̀nà ìmúpadà sínú runbook, kí o sì dán ọ̀nà ìmúpadà wò lẹ́ẹ̀kan nígbà tí ó ṣì rọrùn.

Àwọn àpilẹ̀kọ tó jọra