EKS API-ni VPN-in arxasına qoyun: əməliyyatların sırası
Şəxsi endpoint-i aktivləşdirin, kubectl-in ona çatdığını sübut edin, sonra ictimai olanı bağlayın. Hər addım arasındakı əmrlər və yoxlamalarla mərhələli runbook.
Bu dəyişikliyin təhlükəli versiyası endpoint-i çevirən və bütün administratorları eyni vaxtda kilidləyən bir əmrdir. Təhlükəsiz versiya hər iki yolu açıq saxlayır, şəxsi yolun VPN-dən işlədiyini sübut edir və yalnız bundan sonra ictimai endpoint-i təqaüdə çıxarır. Mövcud klaster, onun VPC-sinə təsdiqlənmiş tunnel və artıq işləyən kubeconfig fərz edilir; vəzifə Kubernetes API-yə şəxsi girişdir, şəxsi node-lar və yeni icazə modeli deyil. Aşağıdakı hər addımın təhlükəsiz şəkildə uğursuz ola biləcəyiniz yoxlaması var.
1. Endpoint-i inventarlaşdırın və geri qayıtma yolu saxlayın
Cari vəziyyəti dəyişməzdən əvvəl qeyd edin, o cümlədən ictimai CIDR icazə siyahısı və klaster təhlükəsizlik qrupu. Bir şey işləməyi dayandırdıqda müqayisə edəcəyiniz iki şey bunlardır və şəxsi marşrut səhv çıxarsa, icazə siyahısı həm də geri qayıtma yolunuzdur.
aws eks describe-cluster --region REGION --name CLUSTER \
--query 'cluster.{endpoint:endpoint,public:resourcesVpcConfig.endpointPublicAccess,private:resourcesVpcConfig.endpointPrivateAccess,cidrs:resourcesVpcConfig.publicAccessCidrs}'
REGION və CLUSTER burada yer tutucudur. Şəxsi bayrağın indi nə oxuduğuna diqqət yetirin, çünki şəxsi girişi artıq aktivləşdirilmiş klaster heç vaxt malik olmayan klasterdən fərqli ilk addım tələb edir. Keçid zamanı ən azı bir təsdiqlənmiş idarəetmə yolunu açıq saxlayın; eyni klasterin əlçatan olmasından asılı olan VPN bərpa yolu deyil.
2. Şəbəkə yolu mövcud ikən şəxsi girişi aktivləşdirin
Bayrağı yandırmaq asan yarıdır. Tunnel endpoint-in şəxsi ünvanlarına marşrut tələb edir və klaster təhlükəsizlik qrupu VPN-in həqiqətən təqdim etdiyi mənbədən TCP 443 tələb edir. Client VPN assosiasiyası, sayt-sayt şlüz və peer VPC hamısı fərqli mənbə ünvanları təqdim edə bilər, buna görə ümumi şəxsi diapazon əvəzinə yerləşdirdiyiniz modeli istifadə edin.
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
Yeniləmə asinxrondur. Sabit sayda saniyə gözləyib fərz etmək əvəzinə, yeniləmə id-si uğur bildirənə qədər yoxlayın. Bunu edərkən node və idarəetmə müstəvisi trafikini tək qoyun: klasterin bütün təhlükəsizlik qrupunu noutbukunuz üçün bir qayda ilə əvəz etmək işlək data müstəvisini ikinci insidentə çevirməyin yoludur.
EKS endpoint sənədləşməsi bir dəfə tam oxumağa dəyər, çünki yalnız-şəxsi girişin VPC-dən və ya qoşulmuş şəbəkədən gələ biləcəyini deyir. Bu cümlə bu miqrasiyanın mümkün olmasının bütün səbəbidir və növbəti addımın da mövcud olma səbəbidir.
3. İş stansiyasının şəxsi yoldan istifadə etdiyini sübut edin
Hər iki endpoint aktiv olduqda, uğurlu kubectl get ns hansının cavab verdiyini sübut etmir. Endpoint host adını həll edin və aldığınız ünvanın şəxsi diapazona və ya ictimai birinə aid olub-olmadığını yoxlayın. Əgər qoşulmuş şəbəkəniz DNS vasitəsilə şəxsi görünüşü almırsa, əmr ictimai endpoint üzərindən uğur qazanacaq və siz ictimai yolu yanlış dəlillərə əsaslanaraq təqaüdə çıxaracaqsınız. Bu, bu miqrasiyanın səhv getməsinin ən çox yayılmış yoludur və uğura tam bənzəyir.
nslookup HASH.gr7.REGION.eks.amazonaws.com
kubectl cluster-info
kubectl get ns --request-timeout=10s
Host adını və sertifikat yoxlamasını olduğu kimi saxlayın. kubeconfig-də şəxsi IP qoymaq və TLS yoxlamasını atlamaq dəyişiklik qeydində təsvir etdiyiniz miqrasiya deyil və endpoint döndüyü anda yenidən uğursuz olacaq.
4. İctimai girişi qəsdən təqaüdə çıxarın
Şəxsi yol nümayiş etdirildikdən və bərpa iş axını təsdiqləndikdən sonra ictimai endpoint-i bağlayın. Bu, önizləmə deyil, real dəyişiklikdir, buna görə onu həqiqətən nəzərdə tutduğunuz hesab və parametrlər üzərində icra edin.
aws eks update-cluster-config --region REGION --name CLUSTER \
--resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true
Yalnız-şəxsi rejimdə ictimai DNS adı VPC daxilindən endpoint-in şəxsi ünvanlarına həll olunur, buna görə həll və əlçatanlıq eyni şey olmaqdan çıxır. İctimai ünvana güvənən hər şey, o cümlədən CI runner-ləri və ya fərqli şəbəkədəki noutbuk, indi öz giriş yoluna ehtiyac duyur.
5. Şəbəkə siyasətini və şəxsiyyət siyasətini ayrı saxlayın
İctimai giriş CIDR siyahısı yalnız ictimai endpoint-i idarə edir. O, şəxsi endpoint-i məhdudlaşdırmır; şəxsi endpoint bunun əvəzinə klaster təhlükəsizlik qrupu və qoşulmuş şəbəkə siyasəti ilə məhdudlaşır. İctimai endpoint-i saxlayırsınızsa, onun icazə siyahısı API müştərilərinizin və node-ların həqiqətən istifadə etdiyi ictimai çıxışa uyğun olmalıdır; VPN hovuz ünvanı nadir hallarda bu mənbədir.
Bunların heç biri IAM və ya Kubernetes RBAC-ı dəyişmir. Endpoint parametrləri inzibati əməliyyatdır və adi istifadəçilər yalnız API-yə çatmaq üçün sərhədi yumşaltmaq icazəsi almamalıdır. Son vəziyyəti, tarixi və bərpa yolunu runbook-a yazın, sonra bərpa yolunu hələ asan ikən bir dəfə sınaqdan keçirin.