Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Kubernetes мыкты тажрыйбалары. Чакан контейнерлерди түзүү
Kubernetes мыкты тажрыйбалары. Ат мейкиндиги менен Kubernetes уюштуруу

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Бөлүштүрүлгөн системаларды башкаруу кыйын болушу мүмкүн, анткени аларда системанын иштеши үчүн туура иштеши керек болгон кыймылдуу, өзгөрүүчү элементтер көп. Эгер элементтердин бири иштебей калса, система аны таап, аны айланып өтүп, оңдоого тийиш жана мунун баары автоматтык түрдө аткарылышы керек. Бул Kubernetes Best Practices сериясында биз Kubernetes кластеринин ден соолугун текшерүү үчүн Даярдык жана Жашоо тесттерин кантип орнотууну үйрөнөбүз.

Ден соолукту текшерүү - бул сиздин колдонмоңуздун үлгүсү иштеп же иштебей жатканын системага билүүнүн жөнөкөй жолу. Эгер колдонмоңуз иштебей калса, башка кызматтар ага кирбеши же ага суроо-талаптарды жөнөтпөшү керек. Анын ордуна, сурам мурунтан эле иштеп жаткан же кийинчерээк ишке киргизиле турган колдонмонун башка нускасына жөнөтүлүшү керек. Мындан тышкары, система сиздин колдонмоңуздун жоголгон функцияларын калыбына келтириши керек.

Демейки боюнча, Кубернетес поддондордогу баардык контейнерлер иштеп турганда трафикти поддонго жөнөтүп баштайт жана контейнерлер бузулганда кайра жүктөлөт. Бул демейки системанын жүрүм-туруму баштоо үчүн жетиштүү болушу мүмкүн, бирок сиз ыңгайлаштырылган акыл-эсти текшерүүлөрдү колдонуу менен продуктуңуздун жайылтуусунун ишенимдүүлүгүн жогорулата аласыз.

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Бактыга жараша, Kubernetes муну оңой кылат, андыктан бул текшерүүлөрдү этибарга албай коюуга эч кандай шылтоо жок. Kubernetes Ден соолукту текшерүүнүн эки түрүн камсыз кылат жана алардын ар бири кандайча колдонулаарындагы айырмачылыктарды түшүнүү маанилүү.

Даярдык тести Kubernetesке колдонмоңуз трафикти башкарууга даяр экенин айтуу үчүн иштелип чыккан. Кызматка трафикти подкага жөнөтүүгө уруксат берүүдөн мурун, Kubernetes даярдыгын текшерүү ийгиликтүү болгонун текшериши керек. Даярдык сынагынан өтпөй калса, Кубернетес тесттен өткөнгө чейин трафикти подкага жөнөтүүнү токтотот.

Liveness тести Kubernetesке колдонмоңуз тирүү же өлүк экенин айтат. Биринчи учурда, Кубернетес аны жалгыз калтырат, экинчисинде өлүк капчыгайды жок кылып, жаңысына алмаштырат.

Колдонмоңузду жылытуу жана ишке киргизүү үчүн 1 мүнөт талап кылынган сценарийди элестетип көрөлү. Колдонмо толук жүктөлмөйүнчө жана иштөө процесси башталганына карабастан, кызматыңыз иштей баштабайт. Бул жайгаштырууну бир нече нускага чейин кеңейтүүнү кааласаңыз, сизде да көйгөйлөр пайда болот, анткени ал көчүрмөлөр толугу менен даяр болмоюнча трафикти кабыл албашы керек. Бирок, демейки боюнча, Кубернетес контейнер ичиндеги процесстер башталганда эле трафикти жөнөтө баштайт.

Даярдык сынагын колдонуп жатканда, Kubernetes кызматка жаңы көчүрмөгө трафик жөнөтүүгө уруксат берүүдөн мурун, колдонмо толугу менен иштегенге чейин күтөт.

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Келгиле, башка сценарийди элестетип көрөлү, анда тиркеме узак убакытка токтоп, суроо-талаптарды тейлөөнү токтотот. Процесс уланып жаткандыктан, демейки боюнча Kubernetes баары жакшы деп эсептейт жана иштебеген подкокко суроо-талаптарды жөнөтүүнү улантат. Бирок Livenessти колдонуп жатканда, Kubernetes тиркеме мындан ары суроо-талаптарды аткарбай калганын аныктайт жана демейки боюнча өлүк поддонду өчүрүп күйгүзөт.

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Даярдык жана жашоого жөндөмдүүлүк кантип текшерилерин карап көрөлү. Үч сыноо ыкмалары бар - HTTP, Command жана TCP. Сиз текшерүү үчүн алардын каалаганын колдоно аласыз. Колдонуучуну сынап көрүүнүн эң кеңири таралган жолу бул HTTP иликтөөсү.

Колдонмоңуз HTTP сервери болбосо да, Liveness тести менен иштешүү үчүн колдонмоңуздун ичинде жеңил HTTP серверин түзө аласыз. Ушундан кийин, Kubernetes подкастка пинг жасай баштайт жана эгер HTTP жообу 200 же 300 мс диапазонунда болсо, анда ал поддондун дени сак экенин көрсөтөт. Болбосо, модул "соолукка зыян" деп белгиленет.

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Буйрук сыноолору үчүн Kubernetes контейнериңиздин ичиндеги буйрукту иштетет. Эгерде команда нөлдүк чыгуу коду менен кайтып келсе, анда контейнер соо деп белгиленет, антпесе 1ден 255ке чейинки чыгуу статусунун номерин алгандан кийин, контейнер "оорулуу" деп белгиленет. Бул тестирлөө ыкмасы эгер сиз HTTP серверин иштете албасаңыз же иштегиңиз келбесе, бирок колдонмоңуздун ден соолугун текшере турган буйрукту иштете алсаңыз пайдалуу.

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Акыркы текшерүү механизми TCP тести болуп саналат. Kubernetes көрсөтүлгөн портто TCP байланышын орнотууга аракет кылат. Эгер бул мүмкүн болсо, идиш дени сак болуп саналат, ал эми жок болсо, ал жараксыз деп эсептелет. Бул ыкма сиз HTTP сурамы же буйруктун аткарылышы менен тестирлөө жакшы иштебеген сценарийди колдонуп жатсаңыз, пайдалуу болушу мүмкүн. Мисалы, TCP аркылуу текшерүү үчүн негизги кызматтар gRPC же FTP болмок.

Kubernetes мыкты тажрыйбалары. Даярдык жана жандуу тесттер менен Кубернеттин жандуулугун текшерүү

Тесттер ар кандай параметрлер менен бир нече жол менен конфигурацияланышы мүмкүн. Сиз аларды канчалык тез-тез аткаруу керектигин, ийгилик жана ийгиликсиздик босоголору кандай экендигин жана жоопторду канча убакыт күтүү керектигин белгилей аласыз. Көбүрөөк маалымат алуу үчүн Даярдык жана Жашоо сыноолорунун документтерин караңыз. Бирок, Liveness тестин орнотууда бир маанилүү жагдай бар - тестирлөөнүн кечиктирилишинин баштапкы орнотуусу initialDelaySeconds. Мен белгилегендей, бул тесттин аткарылбай калышы модулдун кайра иштетилишине алып келет. Ошентип, сиз колдонмо даяр болмоюнча тестирлөө башталбашы үчүн ынанышыңыз керек, антпесе ал кайра күйгүзүү аркылуу циклди баштайт. Мен P99 ишке киргизүү убактысын же буферден колдонмонун орточо ишке киргизүү убактысын колдонууну сунуштайм. Бул маанини тууралоону унутпаңыз, анткени колдонмоңуздун баштоо убактысы тезирээк же жайыраак.

Көпчүлүк эксперттер Ден соолук текшерүүлөрү кандайдыр бир бөлүштүрүлгөн тутум үчүн милдеттүү текшерүү экенин ырасташат жана Kubernetes да четте калбайт. Кызматтын ден соолугун текшерүүнү колдонуу Kubernetesтин ишенимдүү, көйгөйсүз иштешин камсыз кылат жана колдонуучулар үчүн оңой эмес.

Уландысы жакында...

Play Video

Кээ бир жарнамалар 🙂

Биз менен болгонуңуз үчүн рахмат. Биздин макалалар сизге жагабы? Көбүрөөк кызыктуу мазмунду көргүңүз келеби? Буйрутма берүү же досторуңузга сунуштоо менен бизди колдоңуз, иштеп чыгуучулар үчүн булут 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.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ 199 доллардан баштап Нидерландыда! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - 99 доллардан! Жөнүндө окуу Инфраструктураны кантип куруу керек. бир тыйынга 730 евро турган Dell R5xd E2650-4 v9000 серверлерин колдонуу менен класс?

Source: www.habr.com

DDoS коргоосу, VPS VDS серверлери бар сайттар үчүн ишенимдүү хостинг сатып алыңыз 🔥 DDoS коргоосу, VPS VDS серверлери бар ишенимдүү веб-сайт хостингин сатып алыңыз | ProHoster