Skip to content

Instantly share code, notes, and snippets.

@fl64
Last active August 29, 2024 15:20
Show Gist options
  • Save fl64/eb5d8593dbd7ae3dbecc8d2d9604668b to your computer and use it in GitHub Desktop.
Save fl64/eb5d8593dbd7ae3dbecc8d2d9604668b to your computer and use it in GitHub Desktop.
books

Kubernetes

Books / Links

Operators framework:

Videos

Containers

OS / Linux

Books

  • Внутреннее устройство Linux, 2-изд., Кетов Дмитрий Владимирович Ru
  • Systems Performance, 2nd Edition, Brendan Gregg En, Ru
  • Операционные системы. Ru

Videos

Networks

Books / Links

Справочники:

  • Компьютерные сети. Принципы, технологии, протоколы, Олифер В. Г., Олифер Н. А. Ru
  • Компьютерные сети, Таненбаум Э. С. , Фимстер Н. , Уэзеролл Д. Ru

SRE

Videos

Books

  • Site Reliability Engineering En, Ru
  • The Site Reliability Workbook En, Ru

Go

Задания рекомендованные для самостоятельной проработки.

Задание #1

С использованием contoller-runtime, либо фреймворка kubebuilder или operator-sdk продумать дизайн и реализовать оператор.

Задача оператора

  1. Отслеживать секреты с лейблом "copy-me: true" (далее - основные секреты).
  2. Копировать эти секреты в заданные namespace'ы (необходимо определить способы конфигурирования этого поведения).
  3. При изменении основного секрета обновлять все его копии.
  4. В случае непредвиденного изменения копий секрета восстанавливать их из оригинала.
  5. При удалении основного секрета удалять его копии.
  6. Возможно наличие нескольких секретов с лейблом "copy-me: true".

Важно учесть следующие моменты:

  1. Обеспечить обработку ошибок и исключительных ситуаций в операторе.
  2. Сделать код оператора чистым, структурированным и поддерживаемым.

Дополнительные задачи:

  1. Написать тесты для покрытия контроллера.
  2. Добавить подробные комментарии в код для объяснения его логики.
  3. Написать helm-чарт, позволяющий установить контроллер.
  4. Разместить код в репозитории на github.com
  5. Добавить понятный README

Задание #2

  1. Развернуть кластер k8s (любой, любым удобным способом)
  2. Развернуть kubevirt
  3. Создать VM
  4. С использованием cloud-init установить nginx, так чтобы на странице по умолчанию отображал имя хоста.
  5. Настроить сервисы таким образом, чтобы можно было получить доступ к nginx VM из-вне кластера.
  6. Разместить код в репозитории на github.com
  7. Добавить понятный README
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment