Top Banner
Kubernetes in Avito. The Sky’s the Limit.
23

Kubernetes в Avito - Евгений Ольков

Apr 05, 2017

Download

Internet

AvitoTech
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kubernetes в Avito - Евгений Ольков

Kubernetes in Avito.The Sky’s the Limit.

Page 2: Kubernetes в Avito - Евгений Ольков

Системы управления конфигурацией(puppet/chef/ansible/etc)

2

Page 3: Kubernetes в Avito - Евгений Ольков

Системы управления конфигурацией(puppet/chef/ansible/etc)

+• Декларативное описание

• Повторяемость

• Описание инфраструктуры

3

Page 4: Kubernetes в Avito - Евгений Ольков

Системы управления конфигурацией(puppet/chef/ansible/etc)

+• Декларативное описание

• Повторяемость

• Описание инфраструктуры

-• Неидентичность

• Неповторяемость

• Усложнение

• Отсутствует “динамичность”, “событийность”

4

Page 5: Kubernetes в Avito - Евгений Ольков

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

Page 6: Kubernetes в Avito - Евгений Ольков

6

Page 7: Kubernetes в Avito - Евгений Ольков

Что можно сделать

• рефакторинг

• переписать с нуля

• еще варианты?

7

Page 8: Kubernetes в Avito - Евгений Ольков

8

Page 9: Kubernetes в Avito - Евгений Ольков

docker+

• Иммутабельность

• Декларативность

• Версионирование образов

• …

9

Page 10: Kubernetes в Avito - Евгений Ольков

docker+

• Иммутабельность

• Декларативность

• Версионирование образов

• …

-• Оркестрация

• Сложность перехода с текущей конфигурации

• Неоднозначность преимуществ перед сложностью изменений

• Отсутствует “динамичность”, “событийность”

10

Page 11: Kubernetes в Avito - Евгений Ольков

Архитектура Kubernetes

11

Page 12: Kubernetes в Avito - Евгений Ольков

TLS authentication

12

Page 13: Kubernetes в Avito - Евгений Ольков

Authentication

• tls

• token, basic auth

• Openid

• webhook

13

Page 14: Kubernetes в Avito - Евгений Ольков

Authorization

• ABAC

{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user": "ivanov", "namespace": "test", "resource": "pods", "readonly": true}}

• RBAC

• Webhook

14

Page 15: Kubernetes в Avito - Евгений Ольков

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

Page 16: Kubernetes в Avito - Евгений Ольков

• namespaces

• swap

• demons, crons, job

• secret

vault:

https://github.com/kelseyhightower/vault-controller

https://github.com/Boostport/kubernetes-vault

• helm16

Page 17: Kubernetes в Avito - Евгений Ольков

17

Page 18: Kubernetes в Avito - Евгений Ольков

18

Page 19: Kubernetes в Avito - Евгений Ольков

Calico

19

Page 20: Kubernetes в Avito - Евгений Ольков

Примеры использования

20

Page 21: Kubernetes в Avito - Евгений Ольков

Текущее состояние k8s

21

• два кластера, несколько десятков серверов

• запущено порядка 20 production сервисов

• большое количество служебных сервисов

• множество демонов, немного кронов)

• почти: QA окружения для монолита и сервисов

Page 22: Kubernetes в Avito - Евгений Ольков

Результат

• получили разделение и делегирование полномочий

• ускорили разработку

• избавляемся от chef

• упрощение конфиграции puppet

22

Page 23: Kubernetes в Avito - Евгений Ольков

Спасибо! Вопросы?

23