Интервью где-то в параллельной вселенной.
- Переходим к следующему вопросу. Что происходит, когда вы вводите команду
kubectl apply -f file.yaml?-
kubectl: command not found- А, ладно, допустим установлен. Попробуем снова.
-
error: the path "file.yaml" does not exist- (Раздражённо) Нет-нет, файл точно есть.
-
error: You must be logged in to the server (Unauthorized)- (Устало) Так, у нас есть все бинари, ямл и контекст
-
Unable to connect to the server: dial tcp 10.0.0.1:443: i/o timeout- (обречённо) Да что же вы мне всё путаете, ок, есть файлы и контекст и доступ по сетке с VPN и с RBAC проблем нет
- Хорошо,
kubectl apply по умолчанию использует Server-Side Apply, если не ошибаюсь с Kubernetes 1.23, где сервер разрешает конфликты полей через field managers. На клиенте YAML конвертируется в JSON для отправки на API-сервер. В случае client-side apply добавляется аннотация last-applied-configuration для 3-way merge. После получения запроса API-сервером объект проходит через mutating admission controllers и затем validating admission controllers, прежде чем сохраняется в etcd. В etcd данные хранятся в protobuf, а каждый write увеличивает resourceVersion - счётчик версий, который контроллеры используют для optimistic concurrency control, избегая race conditions. Затем...
- (удивлённо прерывая) Стоп-стоп, эээ... я вообще думал про шедулер и поды с кублетом..
- До этого мы ещё даже не дошли. Могу предложить перейти сразу к продакшн-кейсам по вашей вакансии для ведущего инженера, а не к тесту на внимательность и глубокое ныряние в омут, в котором, порой, можно потонуть всем и сразу?
- Да-да, пожалуй вы правы, мне стоит пересмотреть точность и корректность вопросов практикующим инженерам..
