Как да използвам API на Kubernetes Ingress

Kubernetes вижда внедряване в технологичната индустрия и е на път да се превърне в де факто платформа за оркестрация за модерно предоставяне на облачни услуги. Kubernetes не само предоставя примитиви за внедряване на микроуслуги в облака, но отива още една стъпка напред, помагайки на разработчиците да дефинират взаимодействия и да управляват жизнения цикъл на своите API. 

API на Ingress в Kubernetes ви позволява да изложите вашата микрослужба на външния свят и да дефинирате политики за маршрутизация за вашия трафик север-юг, т.е. трафика, идващ във вашия виртуален център за данни. 

Ползите от управлението на жизнения цикъл на API с помощта на непрекъсната интеграция и непрекъсната доставка (CI / CD) с тръбопроводи с Ingress са много, но преди да разгледаме това, нека започнем с някои основни познания.

Дизайнът и предназначението на ресурса Ingress

Най-простото описание на клъстер Kubernetes ще бъде набор от управлявани възли, които изпълняват приложения в контейнери. В повечето случаи възлите в клъстер Kubernetes не са директно изложени на обществения интернет. Това има смисъл, тъй като излагането на всички услуги на възел би създало невероятен риск. За да осигури публичен достъп до избрани услуги, Kubernetes предоставя ресурса Ingress.

Ресурсът Ingress излага HTTP и HTTPS маршрути извън клъстера до избрани услуги в рамките на. Ресурсът Ingress също предоставя правила за контрол на трафика. Това прави ресурса Ingress чудесно решение за работа с различните API, предоставени от голямо количество индивидуални услуги. Това се прави чрез предоставяне на една входна точка за всички клиенти и след това обработка на заявките към back-end услуги. Това е общоизвестно като конфигурация за раздуване.

Конг

Ресурсът Ingress може да бъде настроен и за виртуален хостинг, базиран на имена, където ще насочва заявки въз основа на заглавката на хоста:

Конг

За да работи ресурсът Ingress, трябва да бъде инсталиран контролер Ingress на клъстера Kubernetes. Контролерът създава моста между клъстера Kubernetes и различните съществуващи публични интерфейси. Например, повечето доставчици на облак, хостващи Kubernetes, предоставят уникален контролер Ingress за взаимодействие с предписаните от тях методи за публично изправяне. Различните контролери работят различно един от друг и могат да осигурят различно количество допълнителна функционалност.

Ползите от използването на Ingress за управление на жизнения цикъл на API с помощта на CI / CD тръбопроводи

Ресурсът Ingress се дефинира чрез декларативен конфигурационен файл, който обикновено се описва в YAML. Това е в съответствие с всички ресурси на Kubernetes и позволява директна интеграция в съвременните модели за внедряване, като комбинираната практика на CI / CD. Това се свежда до възможността за внедряване на Ingress промени бързо, често и безопасно. По този начин ресурсът Ingress може да бъде включен в същия тип модели на жизнения цикъл на разработка на софтуер като самите приложения.

Как разработчиците могат да постигнат Ingress, използвайки Kong за Kubernetes

Популярен контролер на Ingress с отворен код и облачен агностик е Kong for Kubernetes . Контролерът на Kong за Kubernetes Ingress е изграден като персонализирани дефиниции на ресурси (CRD) в Kubernetes. Това създава Kubernetes-роден опит за тези, които вече са свикнали да определят ресурси в тази платформа.

Подобно на вашите приложения и услуги, Kong за Kubernetes може да бъде инсталиран чрез Manifest, Helm или Kustomize.

Контролерът на Kong за Kubernetes Ingress разширява възможностите на ресурса Ingress, като предоставя обширен набор от приставки, които обхващат широк спектър от възможности, включително удостоверяване, анализ, наблюдение и трансформации на заявки и отговори, само за да назовем само няколко. Предоставяйки тези общи (а понякога и не толкова често срещани) изисквания към контролера Ingress, Kong for Kubernetes позволява на разработчиците да се съсредоточат повече върху основните изисквания на услугите. Стойността на това става особено очевидна, когато една организация преминава от шепа монолитни приложения към стотици, ако не и хиляди, микроуслуги.

За списък с често срещани приставки вижте //docs.konghq.com/hub/.

Приставките Kong се определят като ресурс на Kubernetes, където раздел за конфигуриране предоставя настройките на отделните приставки.

По-долу е даден пример за приставка за ограничаване на скоростта, която ще ограничи трафика до пет заявки в минута:

Конг

Добавянето на приставка Kong към ресурс Kubernetes се извършва чрез проста анотация в раздела с метаданни на ресурса. Това позволява приставките да се прилагат към различни нива. Например, можете да приложите плъгин към целия ресурс на Ingress или да приложите такъв по-фино към отделен ресурс на услугата.

Ето пример за горния плъгин, приложен към ресурс на Ingress:

Конг

Kong for Kubernetes може също да бъде интегриран в пълния набор от продукти на Kong Enterprise, включително Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain и Kong Immunity. Това позволява още по-усъвършенствани приставки Kong, както и пълно решение за жизнения цикъл на API. Този набор от продукти обхваща създаването и публикуването на спецификации на API, както и управлението на вашите ресурси в Kong и дори анализ на трафика.

Можете да предприемете „спец-първи“ подход към разработването на вашите API, използвайки Kong Studio, където ще намерите инструменти за писане на документация в стандартната спецификация на OpenAPI заедно с инструменти за тестване за незабавна обратна връзка. Kong Studio предлага и инструменти за работа с GraphQL. Kong Studio се синхронизира директно с Git, което позволява вашите спецификационни файлове да бъдат интегрирани в работен процес на CI / CD, който може да автоматизира актуализациите на Kong Dev Portal.

Kong Dev Portal е домакин на вашата документация за API (която може да бъде частна или публична). Той е изключително персонализиран, като ви позволява да го съобразите със стила и марката на вашата организация. Наличието на добре документиран API е важно за производителността и наличието на добре управляван поток между Kong Studio и Dev Portal може да помогне да се гарантира, че документацията е възможно най-актуална.

Kong Manager предоставя графичен интерфейс за наблюдение и управление на пакета от продукти на Kong като цяло. Оттук можете да наблюдавате връзките между вашите маршрути, услуги и приставки. Можете да наблюдавате трафика в реално време и да проследявате потребителите си.

Kong Brain анализира трафика, идващ през Ingress, и създава визуална карта на услугите на зависимостите между услугите. Той също така има способността да генерира автоматично спецификационни документи на OpenAPI въз основа на картите, които генерира. Това е ценна характеристика, тъй като дори и с най-добри намерения, внедрените услуги може да не бъдат документирани правилно. 

Kong Immunity анализира целия трафик, идващ през Ingress, и научава модели за идентифициране на аномалии. Това често са фини заявки, които не се открояват, но биха могли да представляват интерес, като неизвестен параметър, който продължава да се опитва да премине. Това също е много ценна характеристика, тъй като забелязването на тези игли в купата сено на стотици хиляди записи в дневника не е лесно.

Конг

Възползвайте се максимално от Ingress

Ресурсът на Kubernetes Ingress предоставя една входна точка отвън извън Kubernetes до вътрешни услуги. Чрез използване на декларативни файлове с дефиниции, ресурсът Ingress може да се третира като всички други форми на код и да бъде интегриран в обичайните цикли на разработка на софтуер.

За да се свърже комуникацията извън Kubernetes, се изисква контролер Ingress. Kong for Kubernetes е контролер на Ingress, който използва персонализирани дефиниции на ресурси, за да разшири значително възможностите на ресурса Ingress, като предоставя голям брой приставки, позволяващи на разработчиците да се съсредоточат върху основната бизнес стойност. Kong разполага с набор от корпоративни инструменти, които могат значително да подобрят производителността и сигурността по време на целия ви жизнен цикъл на API.

Марко Паладино, изобретател, разработчик на софтуер и интернет предприемач със седалище в Сан Франциско, е технически директор и съосновател на Kong Inc.

-

Форумът New Tech предоставя място за изследване и обсъждане на нововъзникващите корпоративни технологии в безпрецедентна дълбочина и широчина. Изборът е субективен, базиран на нашия избор на технологиите, които смятаме, че са важни и представляват най-голям интерес за читателите. не приема маркетингово обезпечение за публикуване и си запазва правото да редактира цялото съдържание. Изпращайте всички запитвания на [email protected]