Със свой собствен стек от планиращи програми и контролери, Kubernetes може да се възстанови от незначителни повреди, неуспешни възли или приложения, които се сриват вътре в техните подсистеми. Ако обаче се случат много сривове, това може да няма нищо общо с инфраструктурата, а всичко свързано с вашето приложение, което Kubernetes може да се опита да рестартира отново и отново, но тъй като кодът е виновен, грешката ще продължи и може дори да остане незабелязана.
Видовете грешки, които остават незабелязани в повечето случаи, са тези, при които приложенията не се сриват, а в крайна сметка използват системни ресурси и нараняват клъстерите за цялата производителност. Това са особено неприятните случаи и Kubernetes Metrics Server може да бъде полезен инструмент за наблюдение върху тях.
Проектът официално е част от проекта Kubernetes, но не е предварително активиран в повечето дистрибуции, сертифицирани от Kubernetes. Той има две важни части, които си струва да обсъдите Metrics API и самия Metrics Server. Но първо нека го предоставим на нашия клъстер Kubernetes (K8).
Експериментална настройка на Kubernetes
От юли 2018 г. Docker за Mac и Windows идват със сертифицирана от Kubernetes реализация на самия K8. Улеснявайки го като инсталиране на K8 на дистрибуция на Linux. Можете да отворите настройките на Docker и ако екземплярът на Docker е актуален, ще намерите раздел Kubernetes в менюто. Просто активирайте Kubernetes вместо Docker Swarm и ще имате готов и работещ клъстер от един възел, готов за експерименти.
След това се нуждаем от няколко прости приложения, работещи за нашия случай на употреба. Създайте папка, наречена Deployments, и вътре в нея нека създадем nginx-разполагане.ямъл файлове, които биха разположили Nginx подсистеми без гражданство.
apiVersion: apps / v1 # за версии преди 1.9.0 използвайте apps / v1beta2вид: Разгръщане
метаданни:
име: nginx-разполагане
спецификация:
селектор:
matchLabels:
приложение: nginx
реплики: 2 # казва на разполагането да стартира 2 шушулки, съответстващи на шаблона
шаблон:
метаданни:
етикети:
приложение: nginx
спецификация:
контейнери:
- име: nginx
изображение: nginx: 1.7.9
портове:
- containerPort: 80
Запазете файла и в същата директория, където е този файл, изпълнете командата:
$ kubectl create -f nginx-deployment.ямълМоже да се наложи да изчакаме няколко минути, за да позволим на Kubernetes да изтегли изображенията на контейнерите, да осигури контейнерите и да извърши малко счетоводство. След като приключите, можете да видите списъка с шушулки като:
$ kubectl вземете шушулки
Както можете да видите, имаме два екземпляра на шушулката, като .yaml файл беше предписал.
Сега, когато има какво да наблюдаваме, трябва да активираме Metrics Server. Първо проверете версията на Kubernetes, която използвате. Ако версията е 1.8 или по-висока, тогава бихме изпълнили различно внедряване и ако е 1.7 след това прибягваме до наследствения:
$ kubectl версияМожете да получите официалното изображение и да започнете, като клонирате това GitHub репо и след това в корена на хранилището стартирате kubectl създаване -f със съответния .yaml в зависимост от версията K8, която използвате.
$ git clone https: // github.com / kubernetes-incubator / metrics-server.git$ cd метрика-сървър
# Ако използвате Kubernetes версия 1.8 или по-висока
$ kubectl create -f deploy / 1.8 + /
# Ако версията е 1.7, тогава
$ kubectl create -f deploy / 1.7 /
Дайте на kubernetes известно време, за да изтеглите изображенията и да завъртите сървъра за метрики. Може да отнеме няколко минути. След като приключите, вече сте готови да стартирате метричния сървър. Основната команда е вдъхновена от Горна част команда, която често се изпълнява за наблюдение на Linux система. Но има два варианта, един за проверка на използване на ресурсите на изчислението възли и второ за измерване на изразходван ресурс от разположените подс и. Ето как да видите тези две подробности:
$ kubectl горен възел$ kubectl горна шушулка
Можете да видите колко модул облага вашата система по отношение на паметта или времето на процесора и като използвате API за метрики, можете да настроите и предупреждения според.
Къде ще отиде от тук?
Възникващите случаи на употреба от метричния сървър ще бъдат решаващи в бъдещето на Kubernetes. Този проект все още е във версия 0.2.x, след като узрее и се интегрира в основната архитектура на Kubernetes, той ще събира важни данни за планировчика, като му помага ефективно да разпределя шушулките към възлите по много по-ефективен начин.
По същия начин, Horizontal Pod Autoscaler ще спечели значително от проекта и ще ви помогне да увеличите или намалите, така че ресурсите да се използват оптимално от приложенията.
Препратки
- Внедряване на Nginx
- Сървър за метрики Kubernetes
- Документи за проектиране на API за метрики можете да намерите тук, а подобни можете да намерите информация за сървъра за метрики тук.