Натан Йелин (Natan Yellin) из robusta.dev опросил участников Kubernetes-сообщества на Reddit, что больше всего их раздражает в Kubernetes. Тред собрал более 90 ответов и комментариев. Как выяснилось, CrashLoopBackOff — далеко не самый раздражающий фактор. Куда больше пользователям не нравится, например, сложность Kubernetes и необходимость его изучать. Ниже — самые возмутительные особенности K8s по мнению пользователей Reddit и разработчиков «Фланта». 1. «Некоторые поля у вновь созданных ресурсов неизменны. И нет простого способа понять, какие именно». (+113 на момент этой публикации.) 2. «Никто не знает, что с ним [Kubernetes] не так [когда возникает какая-то проблема], и разработчики не хотят изучать его». (+71) 3. «Вы не можете использовать kubectl, просто чтобы перечислить ВСЕ ресурсы (независимо от типа) в пространстве имен. Если пространство имен “зависнет” при удалении, никто не скажет вам, ПОЧЕМУ». (+36) В треде к этому вопросу предлагают варианты решения проблемы. 4. «Количество связанных [с K8s] проектов и их безумные (“crazy”) названия, в которых очень мало смысла». (+28) «You mean Krazy naming?» — уточняет FiringSquad1080. 5. «На автомате использую команду kubectl get logs вместо правильной kubectl logs :/». (+22) «Эта проблема должна быть на первом месте», — ответил автор треда. 6. «Бесконечная экосистема абстракции инструментов. Как только у вас есть что-то, что работает, появляются другие инструменты, которые делают почти то же самое, но, возможно, чуть больше». (+20) 7. «Набирать “Kubernetes” в телефоне».  (+16) 8. «Для многих вещей нет разумных значений по умолчанию, и их невозможно добавить автоматически. Хотите, чтобы у всех созданных пространств имен был базовый PodSecurity по умолчанию? Admission controller! Хотите, чтобы у всех ролей были разумные разрешения по умолчанию? Admission controller! Хотите, чтобы у всех пространств имен была настроена NetworkPolicy по умолчанию? Механизм политик! Бррр». 9. «Всё с kubectl config. Приходится использовать сторонний инструмент kubectx».  (+14) Про kubectx мы рассказывали 4+ года назад, а про утилиту fubectl, упомянутую в комментариях к этому пункту, — в прошлом году. 10. «Замена аргумента get на describe». (+11) А легендарный CrashLoopBackOff сдает позиции: в топе его не оказалось… Вот что больше всего раздражает команду разработки Kubernetes-платформы Deckhouse. Евгений Шевченко:  «Когда у тебя есть несколько логически связанных штук, приходится делать по несколько запросов, чтобы связать вместе информацию из разных углов. Например, чтобы посмотреть IP узла, на котором находится конкретный Pod, требуется два действия: посмотреть в Pod, чтобы увидеть имя узла, а потом — в узел, чтобы увидеть его адрес. Но бывают цепочки и длиннее. Например, с cert-manager’ом. Вот если бы kubectl умел делать join… Oh shi-, у меня есть идея для Open Source-проекта». Андрей Квапил:  «Есть различные недокументированные особенности. Например, podSpec в большинстве случаев иммутабельна (неизменна), но обновить image у запущенного Pod’а всё же можно. А в именовании Docker-образов типа registry.io/image:tag@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 нет никакого смысла, потому что тег при указании дайджеста всегда игнорируется. Но не сказать, что это меня сильно бесит». Максим Набоких: «Бесят: 1. fejta-bot, который проверяет "свежесть" issues; 2. Deprecated API Migration Guide». Делитесь накипевшим в опросе и комментариях! Читайте также в нашем блоге: «Тренды Kubernetes и контейнеризации в 2021 году. Что общего в исследованиях Datadog, Red Hat, CNCF и других»; «Kubernetes 1.23: обзор основных новшеств»; «Как правильно сделать Kubernetes» (обзор и видео доклада).