Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Kubernetes үздік тәжірибелері. Шағын контейнерлерді жасау

Барған сайын көбірек Kubernetes қызметтерін жасай бастағанда, бастапқыда қарапайым тапсырмалар күрделі бола бастайды. Мысалы, әзірлеу топтары бірдей атпен қызметтерді немесе орналастыруларды жасай алмайды. Егер сізде мыңдаған түйіршіктер болса, оларды жай ғана тізімдеу оларды дұрыс басқару былай тұрсын, көп уақытты алады. Ал бұл айсбергтің бір ұшы ғана.

Атау кеңістігі Kubernetes ресурстарын басқаруды қалай жеңілдететінін қарастырайық. Сонымен, аттар кеңістігі дегеніміз не? Атау кеңістігін Kubernetes кластеріндегі виртуалды кластер ретінде қарастыруға болады. Бір Kubernetes кластері ішінде бір-бірінен оқшауланған бірнеше аттар кеңістігі болуы мүмкін. Олар сізге және сіздің командаларыңызға ұйымдастыру, қауіпсіздік және тіпті жүйе өнімділігі бойынша шынымен көмектесе алады.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Kubernetes дистрибутивтерінің көпшілігінде кластер "әдепкі" деп аталатын аттар кеңістігі бар қораптан шығады. Кубернетес жұмыс істейтін үш аттар кеңістігі бар: әдепкі, kube-жүйе және kube-public. Қазіргі уақытта Kube-public өте жиі қолданылмайды.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Kube аттар кеңістігін жалғыз қалдыру жақсы идея, әсіресе Google Kubernetes Engine сияқты басқарылатын жүйеде. Ол сіздің қызметтеріңіз бен қолданбаларыңыз жасалған орын ретінде «әдепкі» аттар кеңістігін пайдаланады. Бұл туралы ерекше ештеңе жоқ, тек Kubernetes оны пайдалану үшін қораптан тыс конфигурацияланған және оны жою мүмкін емес. Бұл іске қосу және өнімділігі төмен жүйелер үшін тамаша, бірақ мен үлкен өнім жүйелерінде әдепкі аттар кеңістігін пайдалануды ұсынбаймын. Соңғы жағдайда бір әзірлеу тобы басқа біреудің кодын оңай қайта жаза алады және басқа команданың жұмысын тіпті түсінбей бұзады.

Сондықтан сіз бірнеше аттар кеңістігін жасап, оларды қызметтеріңізді басқарылатын бірліктерге бөлу үшін пайдалануыңыз керек. Атау кеңістігін бір пәрменмен жасауға болады. Егер сіз сынақ деп аталатын аттар кеңістігін жасағыңыз келсе, $ kubectl аттар кеңістігінің сынағын жасау пәрменін пайдаланыңыз немесе жай YAML файлын жасаңыз және оны кез келген басқа Kubernetes ресурсы сияқты пайдаланыңыз.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

$ kubectl get namespace пәрмені арқылы барлық аттар кеңістігін көруге болады.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Аяқтағаннан кейін сіз үш кірістірілген аттар кеңістігін және «сынау» деп аталатын жаңа аттар кеңістігін көресіз. Қондырғы жасау үшін қарапайым YAML файлын қарастырайық. Сіз аттар кеңістігі туралы айтылмағанын байқайсыз.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Осы файлды іске қосу үшін kubectl пайдалансаңыз, ол қазіргі белсенді аттар кеңістігінде mypod модулін жасайды. Сіз оны өзгерткенше бұл әдепкі аттар кеңістігі болады. Kubernetes ресурсыңызды қандай аттар кеңістігінде жасағыңыз келетінін айтудың 2 жолы бар. Бірінші әдіс - ресурс жасау кезінде аттар кеңістігінің жалауын пайдалану.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Екінші әдіс - YAML декларациясында аттар кеңістігін көрсету.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

YAML ішінде аттар кеңістігін көрсетсеңіз, ресурс әрқашан сол аттар кеңістігінде жасалады. Егер аттар кеңістігінің жалауын пайдалану кезінде басқа аттар кеңістігін пайдалануға әрекет жасасаңыз, пәрмен орындалмайды. Енді сіз өзіңіздің бағаныңызды табуға тырыссаңыз, оны таба алмайсыз.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Бұл барлық пәрмендер ағымдағы белсенді аттар кеңістігінен тыс орындалатындықтан орын алады. Қондырғыны табу үшін аттар кеңістігінің жалаушасын пайдалану керек, бірақ бұл тез жалықтырады, әсіресе егер сіз өз аттар кеңістігін пайдаланатын топтағы әзірлеуші ​​болсаңыз және бұл жалауды әрбір команда үшін пайдаланғыңыз келмейтін болса. Мұны қалай түзетуге болатынын көрейік.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Белсенді аттар кеңістігіңіз әдепкі деп аталады. YAML ресурсында аттар кеңістігін көрсетпесеңіз, барлық Kubernetes пәрмендері осы белсенді әдепкі аттар кеңістігін пайдаланады. Өкінішке орай, kubectl көмегімен белсенді аттар кеңістігін басқару әрекеті сәтсіз болуы мүмкін. Дегенмен, бұл процесті айтарлықтай жеңілдететін Kubens деп аталатын өте жақсы құрал бар. Kubens пәрменін іске қосқан кезде белсенді аттар кеңістігі бөлектелген барлық аттар кеңістігін көресіз.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Белсенді аттар кеңістігін сынақ аттар кеңістігіне ауыстыру үшін жай ғана $kubens сынақ пәрменін іске қосыңыз. Содан кейін $kubens пәрменін қайта іске қоссаңыз, жаңа белсенді аттар кеңістігі бөлінгенін көресіз - сынақ.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Бұл сынақ аттар кеңістігіндегі подкастты көру үшін аттар кеңістігінің жалауы қажет емес дегенді білдіреді.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Осылайша аттар кеңістігі бір-бірінен жасырылады, бірақ бір-бірінен оқшауланбайды. Бір аттар кеңістігіндегі қызмет басқа аттар кеңістігіндегі қызметпен оңай байланыса алады, бұл жиі өте пайдалы. Әртүрлі аттар кеңістігінде байланысу мүмкіндігі әзірлеушілер қызметі басқа аттар кеңістігіндегі басқа әзірлеушілер тобының қызметімен байланыса алатынын білдіреді.

Әдетте, қолданбаңыз Kubernetes қызметіне қол жеткізгісі келгенде, кірістірілген DNS табу қызметін пайдаланасыз және жай ғана қолданбаңызға қызмет атауын бересіз. Дегенмен, осылай жасау арқылы бірнеше аттар кеңістігінде бірдей атпен қызметті жасауға болады, бұл қабылданбайды.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Бақытымызға орай, бұл DNS мекенжайының кеңейтілген пішінін пайдалану арқылы оңай өтуге болады. Kubernetes қызметтері жалпы DNS үлгісін пайдаланып соңғы нүктелерін көрсетеді. Бұл келесідей көрінеді:

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Әдетте сізге тек қызмет атауы қажет және DNS толық мекенжайды автоматты түрде анықтайды.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Дегенмен, басқа аттар кеңістігіндегі қызметке кіру қажет болса, жай ғана қызмет атауын және аттар кеңістігінің атауын пайдаланыңыз:

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Мысалы, сынақ аттар кеңістігіндегі қызмет дерекқорына қосылғыңыз келсе, мекенжай дерекқоры database.test пайдалана аласыз.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Өнім аттар кеңістігіндегі қызмет дерекқорына қосылғыңыз келсе, database.prod пайдаланасыз.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Егер сіз шынымен аттар кеңістігіне кіруді оқшаулағыңыз және шектегіңіз келсе, Kubernetes мұны Kubernetes желілік саясаттары арқылы жасауға мүмкіндік береді. Бұл туралы келесі бөлімде айтатын боламын.

Маған жиі сұрақ қояды, қанша атау кеңістігін жасауым керек және қандай мақсаттар үшін? Басқарылатын деректер бөлігі дегеніміз не?

Егер сіз тым көп аттар кеңістігін жасасаңыз, олар жай ғана жолыңызға түседі. Егер олардың саны тым аз болса, мұндай шешімнің барлық артықшылықтарын жоғалтасыз. Менің ойымша, әрбір компания өзінің ұйымдық құрылымын құруда төрт негізгі кезеңнен өтеді. Жобаңыздың немесе компанияңыздың даму кезеңіне байланысты сәйкес атау кеңістігі стратегиясын қабылдағыңыз келуі мүмкін.

Сіз 5-10 микросервистерді әзірлеумен айналысатын шағын топтың бір бөлігі екеніңізді елестетіп көріңіз және сіз бір бөлмеде барлық әзірлеушілерді оңай жинай аласыз. Бұл жағдайда әдепкі аттар кеңістігінде барлық өнім қызметтерін іске қосу мағынасы бар. Әрине, икемділік үшін 2 атау кеңістігін пайдалануға болады - өнім және әзірлеу үшін бөлек. Мүмкін, сіз Minikube сияқты нәрсені пайдаланып жергілікті компьютерде дамуыңызды тексересіз.

Барлығы өзгерді делік және сізде бір уақытта 10-нан астам микросервисте жұмыс істейтін жылдам өсіп келе жатқан топ бар. Бірнеше кластерлерді немесе аттар кеңістігін өнім мен әзірлеу үшін бөлек пайдалану қажет болатын уақыт келеді. Сіз топты бірнеше қосалқы топтарға бөлуге болады, осылайша олардың әрқайсысының жеке микросервистері болады және осы командалардың әрқайсысы бағдарламалық жасақтаманы әзірлеу мен шығаруды басқару процесін жеңілдету үшін өз аттар кеңістігін таңдай алады.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Әрбір топ мүшесі жүйенің тұтастай қалай жұмыс істейтінін түсінген сайын, әрбір өзгерісті барлық басқа әзірлеушілермен үйлестіру қиындай түседі. Жергілікті құрылғыңызда толық стекті айналдыру әрекеті күн сайын қиындап барады.

Ірі компанияларда әзірлеушілер әдетте кімнің немен жұмыс істеп жатқанын білмейді. Командалар қызмет көрсету келісім-шарттары арқылы байланысады немесе Istio конфигурациялау құралы сияқты желі арқылы абстракциялық қабатты қосатын қызмет тор технологиясын пайдаланады. Толық стекті жергілікті түрде іске қосу мүмкін емес. Мен Kubernetes-тегі Spinnaker сияқты үздіксіз жеткізу (CD) платформасын пайдалануды ұсынамын. Сонымен, әрбір пәрменге міндетті түрде өз аттар кеңістігі қажет болатын сәт келеді. Әр команда тіпті әзірлеу ортасы мен өнім ортасы үшін бірнеше аттар кеңістігін таңдай алады.

Ақырында, әзірлеушілердің бір тобы басқа топтардың бар екендігі туралы тіпті білмейтін ірі кәсіпкерлік компаниялар бар. Мұндай компания әдетте жақсы құжатталған API арқылы өзара әрекеттесетін үшінші тарап әзірлеушілерін жалдай алады. Әрбір осындай топта бірнеше командалар және бірнеше микросервистер бар. Бұл жағдайда мен бұрын айтқан барлық құралдарды пайдалану керек.

Kubernetes үздік тәжірибелері. Атау кеңістігі бар Кубернеттерді ұйымдастыру

Бағдарламашылар қызметтерді қолмен орналастырмауы керек және оларға қатысы жоқ аттар кеңістігіне қол жеткізе алмауы керек. Бұл кезеңде нашар конфигурацияланған қолданбалардың «жарылыс радиусын» азайту, есеп айырысу процестерін және ресурстарды басқаруды жеңілдету үшін бірнеше кластерлер болған жөн.

Осылайша, ұйымыңыздың аттар кеңістігін дұрыс пайдалануы Кубернеттерді басқарылатын, басқарылатын, қауіпсіз және икемді етуге мүмкіндік береді.

Kubernetes үздік тәжірибелері. Дайындық пен жандылық сынақтарымен Кубернетес жандылығын тексеру

Кейбір жарнамалар 🙂

Бізбен бірге болғандарыңызға рахмет. Сізге біздің мақалалар ұнайды ма? Қызықты мазмұнды көргіңіз келе ме? Тапсырыс беру немесе достарыңызға ұсыну арқылы бізге қолдау көрсетіңіз, әзірлеушілерге арналған бұлтты VPS $4.99, Сіз үшін біз ойлап тапқан бастапқы деңгейдегі серверлердің бірегей аналогы: VPS (KVM) E5-2697 v3 (6 ядросы) 10 ГБ DDR4 480 ГБ SSD 1 Гбит/с 19 доллардан немесе серверді қалай бөлісуге болатыны туралы барлық шындық? (RAID1 және RAID10, 24 ядроға дейін және 40 ГБ DDR4 дейін қол жетімді).

Dell R730xd Амстердамдағы Equinix Tier IV деректер орталығында 2 есе арзан ба? Тек осында 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6 ГГц 14C 64 ГБ DDR4 4x960 ГБ SSD 1 Гбит/с 100 теледидар 199 доллардан бастап Нидерландыда! Dell R420 - 2x E5-2430 2.2 ГГц 6C 128 ГБ DDR3 2x960 ГБ SSD 1 Гбит/с 100 ТБ - 99 доллардан бастап! туралы оқыңыз Инфрақұрылымдық корпорацияны қалай құруға болады. бір тиынға 730 еуро тұратын Dell R5xd E2650-4 v9000 серверлерін қолданатын класс?

Ақпарат көзі: www.habr.com

пікір қалдыру