Как стать автором
Обновить

Комментарии 11

Какие-то отрывочные факты, которые скоро забудутся. Сделайте лучше текстовую расшифровку курса по k8s, который был совместно с mail.ru. Ну или разберите каждый продукт в CNCF landscape.

Как легко пройти собеседование по Kubernetes в 2023 году - изучить все материалы по программе экзамена CERTIFIED KUBERNETES ADMINISTRATOR (CKA).

Я сам сейчас подробно изучаю Kubernetes, чтобы найти работу и там столько нюансов, что без подробного изучения каждого элемента с практическим решением различных задач не изучить Kubernetes.

И найти работу DevOps зная только Kubernetes невозможно. Мой горький опыт. Нужно еще знать Linux, Ansible, Docker, Gitlab, Jenkins, PostgreSQL, bash, git, Nginx, Prometheus, Grafana, и желательно Python. И все это на достаточно хорошем уровне. Вот тогда можно пройти собеседование.

я бы сказал скорее так:

обязательные - Linux(выше среднего + понимание сетей), Ansible(средний уровень + уметь читать и редактировать плейбуки), Docker, bash(средний уровень), git(начальный уровень), Nginx(начальный уровень), prometheus+grafana_alert_manager(начальный уровень + понимание работы prometheus operator)

дальше по формату работы - если ищем большую компанию - Jenkins, если бюрократия больших компаний претит - Gitlab

всегда удивляло требование знания БД... БД можно столько оптимизировать что для этого есть отдельная специальность - database administrator. а все остальное в виде установки(настройки pghab_conf в том числе) и кластера(к примеру coronasync, pacemaker) можно по гайду конечно изучить, но зачем?

Python вообще ни разу не пригодился за 4 года работы непосредственно devops...

Ну и на затравку список вопросов которые задавал на позицию ученика(junior). В формате быстрых вопросов-ответов, без углубления в тему:

Общие:
Что делает системный администратор?
Что делает devops?
Что такое GNU
Что такое линукс

Linux:

  1. чем отличается Unix и Linux

  2. как происходит загрузка ОС что такое grub

  3. что такое initd стадии initd

  4. чем отличается пространство ядра и пространство пользователя?

  5. демон systemd, команды systemctl, как создать сервис, как посмотреть журнал сервиса, что такое journalctl, как провести дебаг сервиса

  6. компоненты процесса что такое PID, PPID, UID, GID и как их получить

  7. команды top, htop что такое load average %Cpu(s): 7.3 us, 5.5 sy, 0.0 ni, 87.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st приоритет процесса, каким бывает, как установить, как узнать, oomkiller

  8. файловая система как устроена файловая система, что такое inode, стандартные дирректории linux: /bin /boot /dev /etc /home /lib /opt /proc /root /tmp /usr /var, что такое df и ncdu

  9. ACL как назначить права ,как сменить владельца, что такое cgroups

  10. что такое rpm и yum, как посмотреть список установленных пакетов, как найти доступные пакеты в репозиториях, как установить репозиторий

  11. GNU-Utils какими пользовались за последний год sed, awk, xargs, ls, find(и чем отличается от ls), grep, rm, move, tail, head, env, tee, curl, wget, tree

  12. TCP/IP, уровни модели osi, что такое ip адрес, что такое маска сети, чем отличается TCP от UDP, netfilter и его компоненты, iptables и conntrack, что такое порт и сколько их может быть, команды ping, traceroute, tcpdump, netstat, nmap, telnet, netcat, что такое DNS? что такое nslookup

Docker
Что такое Dockerfile
что такое docker build
Расскажите о CMD и ENTRYPOINT в Dockerfile, чем отличаются
для чего используется multi-stage в Dockerfile
Что такое контейнер Docker
Назовите наиболее важные команды Docker
Что такое пространства имен в Docker
Как определить состояние контейнера Docker
Опишите функции и случаи применения Docker
Какие сети доступны по умолчанию в Docker
Приведите необходимые шаги для развертывания докеризированного приложения, сохраненного в репозитории Git
Если вы остановите контейнер — потеряете данные?
Как выполняется мониторинг Docker в производственных окружениях
Расскажите о ключевом различии между виртуализацией и контейнеризацией
Где хранятся тома Docker

Kubernetes
Что такое Kubernetes?
Расскажите об основных компонентах kubernetes
Чем полезна оркестровка контейнеров?
Как связаны Kubernetes и Docker?
Что такое node в Kubernetes?
Что такое pod в Kubernetes?
Что такое Kubernetes deployment?
Опишите набор действий необходимых для запуска deployment?
Объясните разницу между pod и deployment
Что такое service?
что такое namespace
что такое controller-manager
какие типы controller-manager вы знаете?(endpoints controller, service accounts controller, namespace controller, node controller, token controller, and replication controller)
для чего etcd в kubernetes?
что такое clusterIP?
что такое NodePort?
что такое kubelet?
что такое kube-proxy?

Спасибо. На некоторые вопросы я не знаю ответы. Буду готовиться.

рекомендую Unix_и_Linux_Руководство_системного_администратора_5_e_издание_2020 - первые три главы. эксплуатация активно развивается и четвертая глава уже не так актуальна, а вот часть где рассказывают про linux все еще более-менее актуально т.к. его основы не меняются каждый год.

так же, для новичков в k8s, тот же открытый курс от Слёрм:
https://www.youtube.com/playlist?list=PL8D2P0ruohOA4Y9LQoTttfSgsRwUGWpu6

А есть требования для миддла и сеньора?

для мидла не описывал, но все то же самое с дополнительными вопросами вглубь и уточнениями завязанными на опыте. к примеру на вопрос "чем отличается tcp от udp" будет мало ответить "гарантией доставки" - необходимо так же упомянуть что tcp создает сессию.

а сеньоров нанимать не приходилось - сам еще не дорос до сеньора =)

Спасибо за ответы)

Насколько важны вопросы по Linux?

Никто их не спрашивает если позиция - DevOps - из моего опыта.

Спрашивают про архитектуры распределенных приложений, про обервабилити, про то как делать CI/CD. Всяческий скейлинг и миграции тоже народ интересует.

А вот все эти initd, sed и OSI ни разу не пригодились за последнее время, аж обидно.

для работы важны т.к. linux это основа, а docker + k8s обертка для всего этого.

"Спрашивают про архитектуры распределенных приложений, про обервабилити" - это уже SRE. Я такое спрашиваю только у профессионалов(а в статье обсуждается уровень ученика) и да - они обязаны знать линукс.

Картинки NodePort и LoadBalancer нужно поменять местами

Зарегистрируйтесь на Хабре, чтобы оставить комментарий