SlideShare a Scribd company logo
Designing bare metal
Kubernetes clusters
April 2018
• Email: Vasyl_Samoilov@epam.com
• GitHub: VasylSamoilov
VASYL SAMOILOV
Lead DevOps engineer, Cloud Unit
2
AGENDA
3
Agenda
• Kubernetes и bare metal
• Typhoon (CoreOS, Matchbox, Terraform)
• Планирование, развертывание и
масштабирование
• Хранение данных и доступ к сервисам
• Демо
4
KUBERNETES И BARE METAL
5
Kubernetes и bare metal
• Что такое Kubernets?
• Hyper-converged infrastructure
• On-Premise Private Cloud
• Hybrid cloud
6
Kubernetes и bare metal
Benefits:
• Все преимущества облачных решений
• Любая аппаратная конфигурация
• Поддержка нескольких архитектур
• Меньше сетевые задержки
• Защита данных
• Нет гипервизора VM
• Улучшенная производительность
• Меньше накладные расходы
Challenges:
• Cluster lifecycle management
• Развертывание
• Масштабирование
• Отказустойчивость
• Disaster recovery
• Официальная документация содержит более 40
способов установки Kubernetes
https://kubernetes.io/docs/setup/pick-right-solution/
7
TYPHOON
8
Typhoon
• Container Linux by CoreOS
• CoreOS Matchbox
• Bootkube
• Минимальный и стабильный дистрибутив
• Декларативное описание инфрастуктуры
• $ terraform apply
https://typhoon.psdn.io/bare-metal/
9
ПЛАНИРОВАНИЕ, РАЗВЕРТЫВАНИЕ И
МАСШТАБИРОВАНИЕ
10
Планирование
• К Л АС Т Е Р E T C D
11
• Ограничения по сетевым задержкам
• Ограничения по I/O latency
• Cluster runtime (re)configuration
• Восстановление после сбоя
• Контроль доступа
• Masters, workers и сетевая топология
• Подготовка инфраструктуры
• IPMI
• IP адреса, подсети
• DHCP и PXE
• DNS записи
• Control machine
• Хранилище секретов
• Управление и инструменты
https://stripe.com/blog/operating-kubernetes
Learning to operate Kubernetes reliably
Подготовка инфраструктуры
12
Подготовка инфраструктуры
13
Конфигурация кластера
• Terraform
• Модуль terraform-provider-matchbox от Typhoon
• использует kubernetes-incubator/bootkube для
генерации необходимых элементов конфигурации
• Matchbox - рендеринг темплейтов для iPXE и CoreOS Ignition
• удаленное управление тепмлейтами по gRPC
• Вся необходимая конфигурация по ссылке
• Достаточно создать terraform.tfvars
• IaaC
14
https://github.com/coreos/matchbox/tree/master/examples/terraform/bootkube-install
Развертывание
• $ cd ~/infra/clusters
• $ terraform init
• $ terraform plan
• $ terraform apply
#!/bin/bash
ipmitool -H ipmi.node1 -U demo -P pass -I lanplus chassis bootdev pxe
ipmitool -H ipmi.node1 -U demo -P pass -I lanplus power cycle
…
• terrafrom apply complete
• cp ~/.secrets/clusters/k8sdemo/auth/kubeconfig ~/.kube/config
• kubectl get pods --all-namespaces
15
Масштабирование
• IP, DNS, terraform.tfvars
• $ terraform apply
• $ ipmitool
High availability
• Etcd proxy
• Lease endpoint reconciler
• Node problem detector
• Cluster persistent storage
• Networking
https://kubernetes.io/docs/admin/high-availability/building/
ХРАНЕНИЕ ДАННЫХ И ДОСТУП К
СЕРВИСАМ
18
Хранение данных
• PV, PVC
• Stateless?
• SDS
• Встроенные плагины
• CSI и FlexVolume
• Готовые решения
• Ceph (rook)
• GlusterFS (heketi)
• …..
https://kubernetes.io/docs/concepts/storage/volumes/
helm install --namespace rook-system --name rook rook-alpha/rook --set
"agent.flexVolumeDirPath=/var/lib/kubelet/volumeplugins"
https://github.com/rook/rook
Доступ к сервисам
• Что такое сервис?
• NodePort
• LoadBalancer
• MetalLB
• Балансировка и управление потоками трафика
• Стандартные протоколы маршрутизации
• Интеграция с существующую сетевую инфраструктуру
https://github.com/google/metallb
21
Део
Demo
THANK YOU!
22

More Related Content

What's hot

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
Andrey Markelov
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDAndrew Pantyukhin
 
Using Sentry for error collection and analysis in a distributed system - Yevg...
Using Sentry for error collection and analysis in a distributed system - Yevg...Using Sentry for error collection and analysis in a distributed system - Yevg...
Using Sentry for error collection and analysis in a distributed system - Yevg...
Kuberton
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Badoo Development
 
Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на Kubernetes
Mad Devs
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
Levon Avakyan
 
Платформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QAПлатформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QA
Slava Kuznetsov
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
Andrey Markelov
 
Сложности и специфика построения систем раздачи адалт видео контента
Сложности и специфика построения систем раздачи адалт видео контентаСложности и специфика построения систем раздачи адалт видео контента
Сложности и специфика построения систем раздачи адалт видео контента
UP2IT
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Tanya Denisyuk
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
CodeFest
 
Управление контейнерами в облаках
 Управление контейнерами в облаках Управление контейнерами в облаках
Управление контейнерами в облаках
Aleksey Zalesov
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Ontico
 
Тернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисовТернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисов
Ivan Kruglov
 
Построение ГИС: Стратегии проектирования системной архитектуры.
Построение ГИС: Стратегии проектирования системной архитектуры.Построение ГИС: Стратегии проектирования системной архитектуры.
Построение ГИС: Стратегии проектирования системной архитектуры.
Vitaly Zagorovskiy
 
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
Anton Turetsky
 
Gevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиGevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиm0use
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
Fwdays
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Ontico
 

What's hot (20)

OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
В облаке AWS
В облаке AWSВ облаке AWS
В облаке AWS
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSD
 
Using Sentry for error collection and analysis in a distributed system - Yevg...
Using Sentry for error collection and analysis in a distributed system - Yevg...Using Sentry for error collection and analysis in a distributed system - Yevg...
Using Sentry for error collection and analysis in a distributed system - Yevg...
 
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps MeetupДоклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
Доклад "Docker в Badoo: от восторгов к внедрению" на DevOps Meetup
 
Triggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на KubernetesTriggermesh - FaaS платформа на Kubernetes
Triggermesh - FaaS платформа на Kubernetes
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
 
Платформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QAПлатформа для поставки счастья в команду QA
Платформа для поставки счастья в команду QA
 
RHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и DockerRHEL 7. Контейнеры и Docker
RHEL 7. Контейнеры и Docker
 
Сложности и специфика построения систем раздачи адалт видео контента
Сложности и специфика построения систем раздачи адалт видео контентаСложности и специфика построения систем раздачи адалт видео контента
Сложности и специфика построения систем раздачи адалт видео контента
 
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
Дмитрий Лазаренко-«Живая миграция и отказоустойчивость контейнеров в гибридно...
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Управление контейнерами в облаках
 Управление контейнерами в облаках Управление контейнерами в облаках
Управление контейнерами в облаках
 
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
Legacy в коробочке. Dev-среда на базе Kubernetes / Илья Сауленко (Avito)
 
Тернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисовТернии контейнеризованных приложений и микросервисов
Тернии контейнеризованных приложений и микросервисов
 
Построение ГИС: Стратегии проектирования системной архитектуры.
Построение ГИС: Стратегии проектирования системной архитектуры.Построение ГИС: Стратегии проектирования системной архитектуры.
Построение ГИС: Стратегии проектирования системной архитектуры.
 
Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?Docker & Puppet: как их скрестить и надо ли вам это?
Docker & Puppet: как их скрестить и надо ли вам это?
 
Gevent для эмуляции нагрузки
Gevent для эмуляции нагрузкиGevent для эмуляции нагрузки
Gevent для эмуляции нагрузки
 
Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков" Михаил Боднарчук "Docker для PHP разработчиков"
Михаил Боднарчук "Docker для PHP разработчиков"
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 

Similar to EPAM DevOps community meetup: Designing bare metal Kubernetes clusters

Клуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps EveningКлуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps Evening
Artjoker
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
Alex Chistyakov
 
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
Nadzeya Pus
 
VMware on IBM Cloud - Webinar (russian)
VMware on IBM Cloud - Webinar (russian)VMware on IBM Cloud - Webinar (russian)
VMware on IBM Cloud - Webinar (russian)
Artem Medvedev
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
Provectus
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
Андрей Новиков
 
Kubernetes and docker
Kubernetes and dockerKubernetes and docker
Kubernetes and docker
Andrey Sinitsyn
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
CodeFest
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
Vad Tymoshyk
 
Software Defined Storage
Software Defined StorageSoftware Defined Storage
Software Defined Storage
Cisco Russia
 
Kubernetes
KubernetesKubernetes
Kubernetes
SQALab
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
OpenVZ
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
Yandex
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
Pavel Tsukanov
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
Igor Kurochkin
 
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
Denis Vasilyev
 
Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...
Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...
Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...
Dinar Garipov
 
Open stack в 2ГИС
Open stack в 2ГИСOpen stack в 2ГИС
Open stack в 2ГИС
Denis Honig
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
OpenStackRussia
 
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
Igor Kurochkin
 

Similar to EPAM DevOps community meetup: Designing bare metal Kubernetes clusters (20)

Клуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps EveningКлуб Большого мозга - DevOps Evening
Клуб Большого мозга - DevOps Evening
 
My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019My slides from DevOps-40 meetup Dec 2019
My slides from DevOps-40 meetup Dec 2019
 
SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101SETCON'18 - Vitali Fokin - Kubernetes 101
SETCON'18 - Vitali Fokin - Kubernetes 101
 
VMware on IBM Cloud - Webinar (russian)
VMware on IBM Cloud - Webinar (russian)VMware on IBM Cloud - Webinar (russian)
VMware on IBM Cloud - Webinar (russian)
 
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs..."How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
"How to build powerful CI / CD based on GitLab and Docker", Aleksandr Matkovs...
 
Нюансы запуска приложений в Kubernetes
Нюансы запуска приложений в KubernetesНюансы запуска приложений в Kubernetes
Нюансы запуска приложений в Kubernetes
 
Kubernetes and docker
Kubernetes and dockerKubernetes and docker
Kubernetes and docker
 
Антон Турецкий
Антон ТурецкийАнтон Турецкий
Антон Турецкий
 
Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016Dev ops.events.v tymoshyk-20-oct-2016
Dev ops.events.v tymoshyk-20-oct-2016
 
Software Defined Storage
Software Defined StorageSoftware Defined Storage
Software Defined Storage
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
Контейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблемКонтейнеры в OpenStack: простое решение сложных проблем
Контейнеры в OpenStack: простое решение сложных проблем
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Workflows в Express 42
Workflows в Express 42Workflows в Express 42
Workflows в Express 42
 
Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++Seminar: Эффективное использование среды разработки и компилятора C++
Seminar: Эффективное использование среды разработки и компилятора C++
 
Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...
Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...
Инфраструктура от IBM Cloud: Как создать собственное частное облако на VMware...
 
Open stack в 2ГИС
Open stack в 2ГИСOpen stack в 2ГИС
Open stack в 2ГИС
 
OpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельностиOpenStack и Docker: вместе и по отдельности
OpenStack и Docker: вместе и по отдельности
 
Puppet development kit and best practices
Puppet development kit and best practicesPuppet development kit and best practices
Puppet development kit and best practices
 

More from Katherine Golovinova

Contract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift LefContract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift Lef
Katherine Golovinova
 
Speed up application testing with azure container instances
Speed up application testing with azure container instancesSpeed up application testing with azure container instances
Speed up application testing with azure container instances
Katherine Golovinova
 
Analyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and ElasticsearchAnalyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and Elasticsearch
Katherine Golovinova
 
Testing Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyTesting Big Data solutions fast and furiously
Testing Big Data solutions fast and furiously
Katherine Golovinova
 
"Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps""Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps"
Katherine Golovinova
 
Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?
Katherine Golovinova
 
COSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyoneCOSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyone
Katherine Golovinova
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
Katherine Golovinova
 
Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...
Katherine Golovinova
 
Gatling and Page Object: a way to performance testing
Gatling and Page Object: a way to performance testingGatling and Page Object: a way to performance testing
Gatling and Page Object: a way to performance testing
Katherine Golovinova
 
Automation of Security scanning easy or cheese
Automation of Security scanning easy or cheeseAutomation of Security scanning easy or cheese
Automation of Security scanning easy or cheese
Katherine Golovinova
 
Gradle plugins for Test Automation
Gradle plugins for Test AutomationGradle plugins for Test Automation
Gradle plugins for Test Automation
Katherine Golovinova
 
Automation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrellaAutomation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrella
Katherine Golovinova
 
"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha
Katherine Golovinova
 
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
Katherine Golovinova
 
"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi
Katherine Golovinova
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architecture
Katherine Golovinova
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft Azure
Katherine Golovinova
 
Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?
Katherine Golovinova
 
Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...
Katherine Golovinova
 

More from Katherine Golovinova (20)

Contract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift LefContract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift Lef
 
Speed up application testing with azure container instances
Speed up application testing with azure container instancesSpeed up application testing with azure container instances
Speed up application testing with azure container instances
 
Analyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and ElasticsearchAnalyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and Elasticsearch
 
Testing Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyTesting Big Data solutions fast and furiously
Testing Big Data solutions fast and furiously
 
"Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps""Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps"
 
Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?
 
COSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyoneCOSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyone
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...
 
Gatling and Page Object: a way to performance testing
Gatling and Page Object: a way to performance testingGatling and Page Object: a way to performance testing
Gatling and Page Object: a way to performance testing
 
Automation of Security scanning easy or cheese
Automation of Security scanning easy or cheeseAutomation of Security scanning easy or cheese
Automation of Security scanning easy or cheese
 
Gradle plugins for Test Automation
Gradle plugins for Test AutomationGradle plugins for Test Automation
Gradle plugins for Test Automation
 
Automation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrellaAutomation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrella
 
"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha
 
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
 
"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architecture
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft Azure
 
Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?
 
Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...
 

EPAM DevOps community meetup: Designing bare metal Kubernetes clusters

  • 1. Designing bare metal Kubernetes clusters April 2018
  • 2. • Email: Vasyl_Samoilov@epam.com • GitHub: VasylSamoilov VASYL SAMOILOV Lead DevOps engineer, Cloud Unit 2
  • 4. Agenda • Kubernetes и bare metal • Typhoon (CoreOS, Matchbox, Terraform) • Планирование, развертывание и масштабирование • Хранение данных и доступ к сервисам • Демо 4
  • 6. Kubernetes и bare metal • Что такое Kubernets? • Hyper-converged infrastructure • On-Premise Private Cloud • Hybrid cloud 6
  • 7. Kubernetes и bare metal Benefits: • Все преимущества облачных решений • Любая аппаратная конфигурация • Поддержка нескольких архитектур • Меньше сетевые задержки • Защита данных • Нет гипервизора VM • Улучшенная производительность • Меньше накладные расходы Challenges: • Cluster lifecycle management • Развертывание • Масштабирование • Отказустойчивость • Disaster recovery • Официальная документация содержит более 40 способов установки Kubernetes https://kubernetes.io/docs/setup/pick-right-solution/ 7
  • 9. Typhoon • Container Linux by CoreOS • CoreOS Matchbox • Bootkube • Минимальный и стабильный дистрибутив • Декларативное описание инфрастуктуры • $ terraform apply https://typhoon.psdn.io/bare-metal/ 9
  • 11. Планирование • К Л АС Т Е Р E T C D 11 • Ограничения по сетевым задержкам • Ограничения по I/O latency • Cluster runtime (re)configuration • Восстановление после сбоя • Контроль доступа • Masters, workers и сетевая топология • Подготовка инфраструктуры • IPMI • IP адреса, подсети • DHCP и PXE • DNS записи • Control machine • Хранилище секретов • Управление и инструменты https://stripe.com/blog/operating-kubernetes Learning to operate Kubernetes reliably
  • 14. Конфигурация кластера • Terraform • Модуль terraform-provider-matchbox от Typhoon • использует kubernetes-incubator/bootkube для генерации необходимых элементов конфигурации • Matchbox - рендеринг темплейтов для iPXE и CoreOS Ignition • удаленное управление тепмлейтами по gRPC • Вся необходимая конфигурация по ссылке • Достаточно создать terraform.tfvars • IaaC 14 https://github.com/coreos/matchbox/tree/master/examples/terraform/bootkube-install
  • 15. Развертывание • $ cd ~/infra/clusters • $ terraform init • $ terraform plan • $ terraform apply #!/bin/bash ipmitool -H ipmi.node1 -U demo -P pass -I lanplus chassis bootdev pxe ipmitool -H ipmi.node1 -U demo -P pass -I lanplus power cycle … • terrafrom apply complete • cp ~/.secrets/clusters/k8sdemo/auth/kubeconfig ~/.kube/config • kubectl get pods --all-namespaces 15
  • 16. Масштабирование • IP, DNS, terraform.tfvars • $ terraform apply • $ ipmitool
  • 17. High availability • Etcd proxy • Lease endpoint reconciler • Node problem detector • Cluster persistent storage • Networking https://kubernetes.io/docs/admin/high-availability/building/
  • 18. ХРАНЕНИЕ ДАННЫХ И ДОСТУП К СЕРВИСАМ 18
  • 19. Хранение данных • PV, PVC • Stateless? • SDS • Встроенные плагины • CSI и FlexVolume • Готовые решения • Ceph (rook) • GlusterFS (heketi) • ….. https://kubernetes.io/docs/concepts/storage/volumes/ helm install --namespace rook-system --name rook rook-alpha/rook --set "agent.flexVolumeDirPath=/var/lib/kubelet/volumeplugins" https://github.com/rook/rook
  • 20. Доступ к сервисам • Что такое сервис? • NodePort • LoadBalancer • MetalLB • Балансировка и управление потоками трафика • Стандартные протоколы маршрутизации • Интеграция с существующую сетевую инфраструктуру https://github.com/google/metallb