Kubernetes 1.7 загружен новыми интересными функциями
Kubernetes определенно является любимцем облака, когда речь идет об оркестровке. Сотни компаний хотят последовать примеру Google и повысить свою производительность с помощью микросервисной архитектуры и контейнеров. В недавнем интервью Geekwire Боб Уайз, технический директор Samsung, рассказал о том, как компании стали высокопроизводительными организациями, и особо отметил, что Kubernetes — это путь развития этой технологии. Согласно Octoverse , веб-сайту, который отслеживает популярные проекты на Github, Kubernetes занимает второе место среди проектов с открытым исходным кодом по количеству пользователей, активно просматривающих код.
Альфа-самцы
Программное обеспечение ограничено только людьми, которые пишут его код, а Kubernetes имеет неограниченное количество участников, если не сказать больше — от независимых программистов до многомиллиардных корпораций, таких как Google и Microsoft. Даже такие компании, как Oracle, которые живут и умирают от меча, кажется, изменили свой путь после присоединения к движению Kubernetes. В недавнем объявлении Oracle выпустила три инструмента с открытым исходным кодом для контейнеров. Вероятно, стоит упомянуть, что происхождение Kubernetes предшествовало стремлению к контейнерам и микросервисам, которое мы наблюдаем сегодня, и было проделано много работы, чтобы сделать его мощным инструментом оркестровки, которым он является сегодня. Другими словами, если кто-то действительно предложит замену, ему придется многое наверстать.
Вышла версия 1.7, и вместе с ней появилось множество новых функций, повышенная безопасность и «расширяемость». В последней версии многие функции, такие как etcd 3, RBAC и Kubeadm, были переведены в бета-версию, в то время как эта версия содержит множество новых функций, которые находятся на стадии альфа-тестирования. Две основные альфа-функции — это внешние контроллеры доступа , которые предоставляют возможности для добавления пользовательской бизнес-логики на сервер API, и размещение федеративных ресурсов на основе политик , которое предоставляет политики размещения для федеративных кластеров. Чтобы немного освежить наши воспоминания, Kubernetes Cluster Federation позволяет пользователям объединять несколько кластеров из разных регионов, облачных провайдеров или локальных установок в единую логическую федерацию вычислений.
Секретное шифрование
Одним из недавних объявлений Docker было то, что центр обработки данных Docker теперь может хранить секреты в контейнерах. Это объект конфигурации для режима роя, который позволяет пользователям безопасно передавать информацию о конфигурации, которую никто другой не может видеть. Приложениям часто необходимо хранить «секреты», которые в основном представляют собой фрагменты данных, которые должны оставаться зашифрованными, например, пароли.
Kubernetes 1.7 сообщает нам, что он также планирует хранить секреты, используя ту же функциональность, которая сейчас находится в альфа-версии. Эта версия на самом деле продвигает секретное шифрование немного дальше, а также может контролировать, какие модули могут хранить какие секреты с помощью нового узла «авторизатор». Авторизаторы узлов — это новое дополнение, которое ограничивает доступ Kubelet к секретам, модулям и другим объектам на основе его узла.
Если это выбор между тем, кто, по вашему мнению, лучше всего сохранит ваши секреты, возможно, ни тем, ни другим, поскольку они постоянно дополняют друг друга и на самом деле не являются исключительными. Фактически, Kubernetes планирует будущую интеграцию со сторонними хранилищами, такими как Hashicorp Vault и Cyberark, для хранения секретов. Все хотят работать со всеми, и в этом вся суть микросервисной архитектуры.
Хранилище с отслеживанием состояния
Локальное хранилище — это еще одна альфа-функция, которую нужно запустить, и для ее запуска потребовалось время. Хранилище какое-то время было проклятием для контейнеров, и тот факт, что пользователи теперь могут получать доступ к локальным томам хранилища через стандартный интерфейс PVC/PV, является большим прогрессом. Что касается хранения в целом, многие люди считают, что контейнеры предназначены только для приложений без сохранения состояния, и им сложно перемещать такие вещи, как банковские базы данных, в контейнеры.
Контейнеры всегда разрабатывались как эфемерные, поэтому нам приходится использовать обходные пути, такие как StatefulSets — новая функция Kubernetes, позволяющая выполнять рабочие нагрузки, зависящие от постоянного хранилища. StatefulSets также имеет новую функцию обновлений под названием StatefulSet Updates , которая сейчас находится в стадии бета-тестирования. StatefulSetUpdates позволяет автоматически обновлять приложения с отслеживанием состояния, такие как Kafka и etcd.
Кроме того, новая функция под названием StorageOS Volume plugin обеспечивает высокодоступные постоянные тома из локального или подключенного хранилища. Kubernetes 1.7 также поставляется с дополнительной возможностью сопоставления локальных устройств хранения, хотя использование локального хранилища может быть не тем ответом, который ищут люди. Вероятно, он будет использоваться «без сервера» для выполнения отдельных функций или для хранения простых экземпляров, таких как, например, функция резервного копирования.
Инфорсер
Что касается других бета-версий, то в Kubernetes 1.7 API сетевой политики, который позволяет использовать правила, контролирующие взаимодействие модулей друг с другом, теперь работает стабильно. API сетевой политики реализуется через сетевой плагин, который позволяет пользователям устанавливать и применять правила в отношении того, какие модули могут взаимодействовать друг с другом, а какие нет. Безопасность — одна из ключевых тем Kubernetes 1.7, и эта функция позволяет поставщикам услуг размещать Kubernetes в многопользовательском режиме с дополнительными возможностями изоляции и безопасности.
Всегда так много говорят о хранении и безопасности контейнеров, что кажется, что версия 1.7 не оставляет камня на камне. Кроме того, начальная загрузка Kubelet TLS теперь поддерживает ротацию сертификатов клиента и сервера и журналы аудита, хранящиеся на сервере API, которые теперь более настраиваемые и «расширяемые» с добавленной поддержкой фильтрации событий и веб-перехватчиков.
Расширяемый
Версия 1.7 уникальна в том смысле, что мы действительно видим, как Kubernetes расширяется и расцветает, и просто показывает нам разнообразие вещей, которые он может делать. Тот факт, что Kubernetes пытается быть все более и более полезным в более широком диапазоне сценариев, просто доказывает, насколько универсальным он является с нуля, и какое сообщество за ним стоит. Большое внимание уделяется приложениям и хранилищам с отслеживанием состояния, что является отличной новостью, поскольку это, вероятно, единственное место, где Kubernetes находится в невыгодном положении. В общем, если вы хотите сделать шаг в сторону микросервисной архитектуры, начните работать с Kubernetes.
В то время как предыдущая версия Kubernetes 1.6 была ориентирована на масштабирование и автоматизацию, в последней версии используется постоянное использование слова «расширяемый». Расширяемость — это принцип разработки программного обеспечения и проектирования систем, при реализации которого учитывается будущий рост. Мы понимаем, что это масштабируемо, и стоит упомянуть, что, хотя 1.7 имеет много альфа-функций, его основные функции остаются неизменными.
Легко = Автоматизировано
Коммерческая платформа Google Cloud Platform (GCP) Container Engine (GKE) предлагает последнюю версию Kubernetes 1.7 и продолжает поддержку своего дочернего проекта. Когда люди называют Kubernetes облачным Linux, родитель не может не гордиться. Термин «расширяемость» также можно рассматривать как системную меру способности расширять систему и уровень усилий, необходимых для реализации расширения, поэтому речь идет не только о масштабируемости, но и о том, насколько легко масштабируемость. С армией новых функций Kubernetes гарантирует, что ни у кого не возникнет сомнений в том, насколько легко его масштабировать.