По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сегодня в статье рассказываем про плагин kubectl, который использует tmux, чтобы быстрее устранить неполадки Kubernetes. Kubernetes - это процветающая платформа для взаимодействия контейнеров с открытым исходным кодом, которая обеспечивает масштабируемость, высокую доступность, надежность и отказоустойчивость приложений. Одной из его многочисленных функций является поддержка запуска пользовательских сценариев или двоичных файлов через основной двоичный файл клиента, kubectl. Kubectl очень мощный, и позволяет пользователям делать с ним все, что они могли бы сделать непосредственно в кластере Kubernetes. Устранение неполадок с псевдонимами Kubernetes Каждый, кто использует Kubernetes для управления контейнерами, знает о его особенностях - а также о сложности, причиной которого является его дизайн. Например, существует острая необходимость упростить поиск и устранение неисправностей в Kubernetes с помощью чего-то более быстрого и практически не требующего ручного вмешательства (за исключением критических ситуаций). Существует много сценариев, которые следует учитывать при устранении неполадок. В одном сценарии вы знаете, что нужно запускать, но синтаксис команды - даже если она может выполняться как одна команда - чрезмерно сложен, или для работы может потребоваться один-два входа. Например, если часто требуется перейти в запущенный контейнер в пространстве имен System, вы можете неоднократно писать: kubectl --namespace=kube-system exec -i -t <your-pod-name> Для упрощения поиска и устранения неисправностей можно использовать псевдонимы этих команд в командной строке. Например, можно добавить следующие файлы dotfiles (.bashrc или .zshrc): alias ksysex='kubectl --namespace=kube-system exec -i -t' Это один из многих примеров из хранилища общих псевдонимов Kubernetes, который показывает один из способов упрощения функций в kubectl. Для чего-то простого, подобного этому сценарию, достаточно псевдонима. Переключение на подключаемый модуль kubectl Более сложный сценарий устранения неполадок включает в себя выполнение множества команд, одной за другой, для исследования среды и выведения заключения. Одних псевдонимов недостаточно для этого варианта использования; необходима воспроизведение логического узла и корреляция между многими частями развертывания Kubernetes. На самом деле вам нужна автоматизация для получения нужного результата за меньшее время. Рассмотрим пространства имен от 10 до 20 или даже от 50 до 100, содержащие различные микросервисы в вашем кластере. Что поможет вам начать устранение неполадок в этом сценарии? Вам потребуется что-то, что может быстро определить, какой модуль в каком пространстве имен вызывает ошибки. Вам понадобится что-то, что сможет просматривать журналы всех модулей в пространстве имен. Также может потребоваться просмотр журналов определенных модулей в определенном пространстве имен, в котором были обнаружены ошибки. Любое решение, охватывающее эти вопросы, было бы очень полезно при изучении производственных проблем, а также в ходе циклов разработки и тестирования. Чтобы создать нечто более мощное, чем простой псевдоним, можно использовать плагины kubectl. Плагины подобны автономным сценариям, написанным на любом языке сценариев, но предназначены для расширения функциональных возможностей главной команды при работе в качестве администратора Kubernetes. Чтобы создать плагин, необходимо использовать правильный синтаксис kubectl- < имя-плагина > для того, чтобы скопировать сценарий в один из экспортированных путей в $PATH и предоставить ему исполняемые разрешения chmod+x. После создания плагина и перемещения его в свой путь, вы можете немедленно запустить его. Например, у меня на пути есть kubectl-krwl и kubectl-kmux: $ kubectl plugin list The following compatible plugins are available: /usr/local/bin/kubectl-krawl /usr/local/bin/kubectl-kmux $ kubectl kmux Теперь давайте изучим, как выглядит обеспечение работы Kubernetes с tmux. Использование силы tmux Tmux - очень мощный инструмент, на который полагаются многие команды для устранения проблем, связанных с упрощением работы - от разделения окон на панели для выполнения параллельной отладки на нескольких машинах до мониторинга журналов. Одним из основных его преимуществ является то, что его можно использовать в командной строке или в сценариях автоматизации. Я создал плагин kubectl, который использует tmux, чтобы сделать поиск и устранение неисправностей гораздо проще. Я буду использовать аннотации, чтобы пройти через логику за плагином (и оставить его для вас, чтобы пройти через полный код плагина): #NAMESPACE is namespace to monitor. #POD is pod name #Containers is container names # initialize a counter n to count the number of loop counts, later be used by tmux to split panes. n=0; # start a loop on a list of pod and containers while IFS=' ' read -r POD CONTAINERS do # tmux create the new window for each pod tmux neww $COMMAND -n $POD 2>/dev/null # start a loop for all containers inside a running pod for CONTAINER in ${CONTAINERS//,/ } do if [ x$POD = x -o x$CONTAINER = x ]; then # if any of the values is null, exit. warn "Looks like there is a problem getting pods data." break fi # set the command to execute COMMAND=”kubectl logs -f $POD -c $CONTAINER -n $NAMESPACE” # check tmux session if tmux has-session -t <session name> 2>/dev/null; then <set session exists> else <create session> fi # split planes in the current window for each containers tmux selectp -t $n ; splitw $COMMAND ; select-layout tiled ; # end loop for containers done # rename the window to identify by pod name tmux renamew $POD 2>/dev/null # increment the counter ((n+=1)) # end loop for pods done< <(<fetch list of pod and containers from kubernetes cluster>) # finally select the window and attach session tmux selectw -t <session name>:1 ; attach-session -t <session name>; После запуска скрипта плагина он будет выдавать выходные данные, аналогичные изображению ниже. Каждый модуль имеет собственное окно, и каждый контейнер (если их несколько) разделяется панелями в окне модуля в потоковые журналы по мере их поступления. Преимущество tmux можно увидеть ниже; При правильной конфигурации можно даже увидеть, какое окно активно (см. белые вкладки). Заключение Псевдонимы всегда полезны для простого устранения неполадок в средах Kubernetes. Когда среда становится более сложной, плагин kubectl является мощным вариантом для использования более продвинутых сценариев. Ограничения в выборе языка программирования, который можно использовать для записи плагинов kubectl, нет. Единственное требование состоит в том, чтобы соглашение об именовании в пути являлось исполняемым и не имело того же имени, что и существующая команда kubectl. Прочитать полный код или попробовать плагины можно тут
img
Универсальная платформа маршрутизации (Versatile Routing Platform VRP) - это сетевая операционная система, применяемая в сетевых устройствах Huawei, таких как маршрутизаторы и коммутаторы. Он предоставляет пользователям этих сетевых устройств согласованную и мощную платформу конфигурации за счет стандартизации сетевых, пользовательских и управляющих интерфейсов. Основанная на модели TCP/IP, архитектура иерархической системы VRP объединяет возможности управления устройствами и сетями, технологии сетевых приложений и технологии передачи данных, такие как маршрутизация, многопротокольная коммутация по меткам (MPLS), виртуальная частная сеть (VPN) и технологии безопасности, с операционной системой в реальном времени. Чтобы гарантировать, что платформа конфигурации остается актуальной и актуальной для современных технологий, VRP эволюционировала от VRP1.0, впервые выпущенного в 1998 году, до VRP8.X, его последняя версия. Многие из сетевых устройств низкого и среднего уровня, которые в настоящее время используются в корпоративных сетях, используют VRP5.X. Далее мы будем рассматривать версию VRP5.12. VRP- Командная строка Командная строка VRP предназначена для настройки и управления сетевыми устройствами Huawei. Командная строка Командные строки VRP - это символьные строки, используемые для настройки функций и развертывания служб на сетевых устройствах Huawei. Командная строка состоит из ключевых слов и параметров. Ключевые слова - это одно или несколько слов, которые однозначно идентифицируют, соответствуют и обычно описывают инструкцию, выполняемую командной строкой, а параметры определяют данные, используемые в качестве входных данных для ключевых слов. Например, в командной строке ping ip-адрес (который проверяет подключение устройства), ping является ключевым словом, а ip-адрес представляет собой заданный пользователем параметр, такой как 192.168.1.1. Сетевые устройства Huawei обычно поставляются неконфигурированными по умолчанию, поэтому пользователь должен ввести командные строки в интерфейс командной строки устройства (CLI), чтобы настроить функциональность устройства. CLI CLI предоставляет средства взаимодействия с устройством. Через CLI вы можете вводить командные строки для настройки устройств. Командные строки VRP (их насчитывается тысячи), классифицируются по функциям и регистрируются в различных представлениях команд. Команда View CLI предоставляет несколько команд view, из которых наиболее часто используются команды view из режима пользователя, системы и интерфейса. Чтобы ввести и использовать командные строки в CLI, необходимо сначала получить доступ к пользовательскому режиму (как показано на рис. 1). Этот режим позволяет запрашивать основную информацию и состояние устройства и получать доступ к другим режимам, но не позволяет настраивать сервисные функции. Вы можете настроить сервисные функции и выполнить основные команды конфигурации в системном режиме (как показано на рис. 2), доступ к которому можно получить из пользовательского режима, выполнив команду system-view. Системный режим также позволяет получить доступ к другим режимам, таким как режим интерфейса (как показано на рисунке 3). В режиме интерфейса вы можете настроить параметры и службы для указанного интерфейса. Командная строка в каждом режиме содержит имя хоста устройства ("Huawei" на предыдущих рисунках), которое в режиме пользователя заключено в угловые скобки (. , .) и во всех других видах заключены в квадратные скобки ([]). В некоторых режимах командная строка может содержать дополнительную информацию (например, идентификатор интерфейса GigabitEthernet4/0/1 в предыдущем примере режиме интерфейса). Командный и пользовательский уровни Команды VRP классифицируются в зависимости от выполняемой ими функции: команды уровня 0 (уровень посещения) проверяют сетевое подключение, команды уровня 1 (уровень мониторинга) отображают состояние сети и базовую информацию об устройстве, команды уровня 2 (уровень конфигурации) настраивают службы для устройства, и команды уровня 3 (уровень управления) управляют определенными функциями устройства, такими как загрузка или выгрузка файлов конфигурации. Чтобы ограничить, какие команды может запускать пользователь, пользователям назначаются разные уровни пользователя. Всего доступно 16 пользовательских уровней, от уровня 0 до уровня 15. Уровень 0 является наиболее ограничительным, причем разрешающая способность увеличивается для каждого последующего уровня. По умолчанию уровни с 4 по 15 совпадают с уровнями 3, поэтому пользователи, которым назначены эти уровни, имеют одинаковые разрешения и могут выполнять все команды VRP. Однако пользовательские уровни могут быть настроены, если требуется более тонкая детализация управления. Например, вы можете повысить до уровня 15 уровень пользователя определенных команд, чтобы эти команды могли выполнять только пользователи, назначенные этому уровню. Однако изменение назначений по умолчанию может усложнить задачи по эксплуатации и обслуживанию и ослабить безопасность устройства. В таблице 1 приведено сопоставление по умолчанию между уровнями пользователя и команды. Таблица 1. Сопоставление уровней Пользовательский уровень Командный уровень Описание 0 0 Команды для диагностики сети (такие как ping и tracert) и удаленный вход (например, telnet) 1 0,1 Команды для обслуживания системы, такие как display. Конкретные команды display, такие display current-configuration и display saved-configuration, являются командами уровня управления (требуются пользователи уровня 3). 2 0,1,2 Команды для настройки сервиса, такие как команды маршрутизации 3-15 0,1,2,3 Команды для управления основными операциями системы, такими как файловые системы, загрузка по FTP, управление пользователями, настройка уровня команд и диагностика неисправностей Использование командных строк В этой части рассмотрим, как использовать командные строки VRP. Доступ к командному режиму Как уже упоминалось в первой части, пользовательский вид - это первый вид, отображаемый после загрузки VRP. Если отображается Huawei (а курсор справа от мигает), вы находитесь в режиме пользователя. В этом режиме вы можете запускать команды для запроса базовой информации и статуса устройства. Например, для настройки интерфейса необходимо получить доступ к системному режиму, а затем получить доступ к режиму интерфейса. Команды для этого - system-view и interface interface-type interface- number. Ниже показано, как получить доступ к режиму интерфейса GigabitEthernet 1/0/0 system-view [Huawei] [Huawei] interface gigabitethernet 1/0/0 [Huawei-GigabitEthernet1/0/0] Выход из командной строки Команда quit позволяет вам выйти из текущего режима и вернуться к режиму верхнего уровня. В предыдущем примере текущим режимом является режим интерфейса, а системным режимом является режимом верхнего уровня режим интерфейса. Выполнение команды quit в режиме интерфейса покажет следующее. [Huawei-GigabitEthernet1/0/0] quit [Huawei] Чтобы вернуться к режиму пользователя, снова введите команду quit. [Huawei] quit <Huawei> Иногда необходимо вернуться в пользовательский режим, не выполняя команду quit несколько раз. Команда return позволяет вам напрямую вернуться к режиму пользователя. [Huawei-GigabitEthernet1/0/0] return <Huawei> Вы также можете использовать сочетания клавиш Ctrl + Z в любом режиме, чтобы вернуться к режиму пользователя. Редактирование командной строки Вы можете ввести до 510 символов в командной строке. Однако, если вы заметите ошибку в длинной командной строке, перепечатывание 510 символов станет трудоемким. В таблице 2 перечислены общие функциональные клавиши, которые не чувствительны к регистру, для редактирования командных строк VRP. Обратите внимание, что курсор не может переместиться в подсказку (например, [Huawei-GigabitEthernet1 /0/0]), и подсказка также не может быть отредактирована. Таблица 2. Функциональные клавиши Клавиша Назначение Backspace Удаляет символ слева от курсора ← или Ctrl+B Перемещает курсор на один символ влево → или Ctrl+F Перемещает курсор на один символ вправо (только вправо до конца команды) Delete Удаляет символ, выделенный курсором (все символы, следующие за удаленным символом, сдвигаются на один пробел влево) ↑ или Ctrl+P Отображает последнюю введенную команду, которая была выполнена. Система хранит историю выполненных команд, позволяя отображать их по одной (нажимайте повторно для просмотра предыдущих команд) ↓ или Ctrl+N Отображает следующую самую последнюю команду в сохраненном списке истории Ввод сокращенных ключевых слов Окончание командной строки автоматически заполняет частично введенные ключевые слова, если система может найти уникальное совпадение. Например, вы можете ввести такие комбинации, как d cu, di cu или dis cu, и нажать Tab, и система автоматически отобразит команду display current-configuration. однако d c и dis c не возвращают совпадения, поскольку другие команды, такие как display cpu-defend, display clock и display current-configuration, также соответствуют этим частичным ключевым словам. Получение помощи Запоминание тысяч командных строк VRP может показаться сложной задачей. Знак вопроса (?) облегчает задачу. Вы можете ввести? в любой момент, чтобы получить онлайн помощь. Помощь классифицируется как полная или частичная. Полная справка, например, отображает список команд, доступных в текущем режиме. Ввод знака ? в пользовательском режиме отобразит следующее. Из списка вы можете выбрать, какая команда вам нужна. Например, ключевое слово display описывается как Display information. Это ключевое слово содержится в более чем одной команде, поэтому введите любую букву, чтобы выйти из справки, введите display и пробел, а затем введите знак?. В результате отобразится следующая информация. Из этого списка вы можете определить, какое ключевое слово связать с display. Например, при запуске команды display current-configuration отображаются текущие конфигурации устройства. Частичная помощь идеально подходит для тех случаев, когда вы уже знаете часть командной строки. Например, если вы знаете dis для display и для с current- configuration, но не можете запомнить полную командную строку, используйте частичную справку. Ввод dis и ? показывает следующее. Единственное ключевое слово, которое соответствует dis - это display. Чтобы определить вторую часть командной строки, введите dis, пробел, c и ?. Несколько ключевых слов начинаются с c; однако легко определить, что необходимая командная строка display current-configuration. Использование сочетаний клавиш Сочетания клавиш облегчают ввод команд. Предварительно определенные сочетания клавиш называются системными сочетаниями клавиш. Некоторые из часто используемых системных сочетаний клавиш перечислены в таблице 3. Таблица 3. Обычно используемые системные сочетания клавиш Клавиши Назначение Ctrl+A Перемещает курсор в начало текущей строки Ctrl+E Перемещает курсор в конец текущей строки Esc+N Перемещает курсор вниз на одну строку Esc+P Перемещает курсор вверх на одну строку Ctrl+C Останавливает работающую функцию Ctrl+Z Возвращает к виду пользователя Tab Обеспечивает завершение командной строки. Нажатие Tab после ввода частичного ключевого слова автоматически завершает ключевое слово, если система находит уникальное соответствие Системные сочетания клавиш нельзя изменить; тем не менее, вы можете определить свои собственные (известные как пользовательские сочетания клавиш). Определенные пользователем сочетания клавиш могут обеспечить дополнительное удобство, но могут конфликтовать с некоторыми командами - поэтому определение таких клавиш не рекомендуется.
img
В последние годы рынок программного обеспечения прогрессирует ударными темпами. Чтобы удержаться на плаву, компании-разработчики программного обеспечения постоянно разрабатывают новые решения и совершенствуют уже существующее программное обеспечение. И если в первом случае анализируются желания, озвучиваемые пользователями, то во втором более эффективным методом сбора данных оказывается телеметрия. Что же это такое? Говоря по-простому, сетевая телеметрия — это процесс автоматизированного сбора данных, их накопление и передача для дальнейшего анализа. Если говорить о программном обеспечении, то анализ проводится разработчиками софта с целью оптимизации существующих программ, либо разработки и внедрения новых решений. Телеметрия в сети осуществляется посредством сбора данных с использованием сетевого протокола NetFlow или его аналогов. Зачем же нужен NetFlow? Сетевой протокол NetFlow был разработан в конце прошлого века компанией Cisco. Изначально он использовался как программа-распределитель пакетов данных для оптимизации работы маршрутизаторов, однако с течением времени она была заменена на более эффективную программу. Тем не менее, такой функционал, как сбор полезной статистики по использованию сетевого трафика и поныне оставляет Netflow актуальным. Правда, специализация этого протокола уже не соответствует исходной. Тем не менее, Netflow обладает функционалом, который невозможно реализовать, применяя альтернативные сетевые технологии. Система постоянного наблюдения за работой сетевых приложений и действиями пользователей; Сбор и учет информации об использовании сетевого трафика; Анализ и планирование развития сети; Распределение и управление сетевым трафиком; Изучение вопросов сетевой безопасности; Хранение собранных посредством телеметрии данных и их итоговый анализ; Хотя уже существуют программные решения, обладающие схожим функционалом, решение от компании Cisco до сих пор остается одним из лучших в этой сфере. Кстати, теперь это решение называется Cisco Stealthwatch и на 95% обладает функционалом для решения исключительно задач, связанных с информационной безопасностью. Отметим, что технологию сбора данных посредством NetFlow поддерживают не все роутеры или коммутаторы. Если Ваше устройство имеет поддержку данного протокола, то оно будет замерять проходящий трафик и передавать собранные данные в NetFlow-коллектор для последующей обработки. Передача будет осуществляться в формате датаграмм протокола UDP или пакетов протокола SCTP, поэтому на скорость работы интернета существенным образом это не повлияет. В настоящее время решения NetFlow (как и многих других приложений) подразделяются на три типа: Базовые технологии. Отличаются низкой ценой и довольно скудным функционалом анализа сетевого трафика. Тем не менее, для большинства пользователей или же для изучения технологии этого вполне достаточно «Продвинутые» корпоративные варианты. Здесь базовый функционал дополнен более широким набором инструментов для предоставления расширенной отчетности анализа данных. Также эти решения содержат готовые модели оптимизации для разных сетевых устройств. «Флагманские» корпоративные решения. Отличаются наивысшей ценой, однако при этом и наиболее широким функционалом, а также позволяют осуществлять мониторинг информационной безопасности в крупных организациях. «А как же быть с приватностью? Ведь сбор данных ставит под угрозу частную жизнь пользователей, тайну переписки, личные сообщения и прочее» - спросит беспокойный читатель. Согласно политике приватности компании Cisco, персональные данные пользователей остаются в полной безопасности. Посредством телеметрии NetFlow анализируется исключительно передача сетевого трафика, не угрожая приватности пользователей. Примеры решений Также приведем несколько самых популярных сетевых анализаторов, работающих под протоколом NetFlow: Solarwinds NetFlow Traffic Analyzer – мощный инструмент для анализа динамики трафика в сети. Программа осуществляет сбор, накопление и анализ данных, выводя их в удобном для пользователя формате. При этом можно проанализировать поведение трафика за определенные временные промежутки. Для ознакомления на сайте производителя доступна бесплатная 30-дневная версия Flowmon – программа, предоставляющая комплекс инструментов для изучения пропускной способности сети, нагрузки на сеть в определенные периоды времени, а также обеспечения безопасности сети от DDOS-атак PRTG Network Monitor - универсальное решение для сбора, хранения и обработки данных о поведении сети. В отличие от других подобных программ, данный инструмент работает на основе сенсоров – логических единиц, отвечающих за сбор данных по определенным аспектам изучаемого устройства. ManageEngine NetFlow Analyzer – схожая с остальными по функционалу программа. Её выделяют из ряда других такие возможности, как гибкая настройка аналитики, а так же возможность мониторить поведение сети из любого места, благодаря приложению для телефона. Как можно заметить, все вышеуказанные программы не только обладают схожим базовым функционалом, но и конкурируют между собой, продумывая и внедряя новые технические решения. Выбор, какой из нескольких десятков программ начать пользоваться – целиком и полностью дело конечного пользователя.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59