kubernetes в avito - Евгений Ольков
TRANSCRIPT
Kubernetes in Avito.The Sky’s the Limit.
Системы управления конфигурацией(puppet/chef/ansible/etc)
2
Системы управления конфигурацией(puppet/chef/ansible/etc)
+• Декларативное описание
• Повторяемость
• Описание инфраструктуры
3
Системы управления конфигурацией(puppet/chef/ansible/etc)
+• Декларативное описание
• Повторяемость
• Описание инфраструктуры
-• Неидентичность
• Неповторяемость
• Усложнение
• Отсутствует “динамичность”, “событийность”
4
Source Lines of Code — SLOC
$ sloccount ./puppetrepos … Total Physical Source Lines of Code (SLOC) = 126,888 … Total Estimated Cost to Develop = $ 4,367,503
5
6
Что можно сделать
• рефакторинг
• переписать с нуля
• еще варианты?
7
8
docker+
• Иммутабельность
• Декларативность
• Версионирование образов
• …
9
docker+
• Иммутабельность
• Декларативность
• Версионирование образов
• …
-• Оркестрация
• Сложность перехода с текущей конфигурации
• Неоднозначность преимуществ перед сложностью изменений
• Отсутствует “динамичность”, “событийность”
10
Архитектура Kubernetes
11
TLS authentication
12
Authentication
• tls
• token, basic auth
• Openid
• webhook
13
Authorization
• ABAC
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "ivanov", "namespace": "test", "resource": "pods", "readonly": true}}
• RBAC
• Webhook
14
Service account ls /var/run/secrets/kubernetes.io/serviceaccount/ca.crt namespace token———
controller-manager--service-account-private-key-file
apiserver--service-account-key-file(--tls-private-key-file)
15
• namespaces
• swap
• demons, crons, job
• secret
vault:
https://github.com/kelseyhightower/vault-controller
https://github.com/Boostport/kubernetes-vault
• helm16
17
18
Calico
19
Примеры использования
20
Текущее состояние k8s
21
• два кластера, несколько десятков серверов
• запущено порядка 20 production сервисов
• большое количество служебных сервисов
• множество демонов, немного кронов)
• почти: QA окружения для монолита и сервисов
Результат
• получили разделение и делегирование полномочий
• ускорили разработку
• избавляемся от chef
• упрощение конфиграции puppet
22
Спасибо! Вопросы?
23