По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Как правило, EIGRP-спикер роутер динамически обнаруживает своих соседей, отправляя multicast Hello сообщения. Однако есть возможность статически настроить этих соседей и общаться с ними с помощью unicast сообщений. Это делается крайне редко, но в таких случаях может оказаться полезным. Предыдущие статьи из цикла про EIGRP: Часть 1. Понимание EIGRP: обзор, базовая конфигурация и проверка Часть 2. Про соседство и метрики EIGRP Часть 2.2. Установка K-значений в EIGRP Часть 3. Конвергенция EIGRP – настройка таймеров Часть 4. Пассивные интерфейсы в EIGRP Следующие статьи из цикла: Часть 6. EIGRP: идентификатор роутера и требования к соседству Рассмотрим для примера Frame Relay WAN. Представьте себе, что роутер А имеет интерфейс, настроенный на десять постоянных виртуальных каналов Frame Relay (PVC). На другом конце двух этих PVC каналов находятся EIGRP-спикер роутеры. Однако другие восемь PVC каналов не подключены к EIGRP-спикер роутерам. В данной топологии, если бы WAN-интерфейс роутера A участвовал в EIGRP, то роутер A должен был бы реплицировать свое приветственное сообщение EIGRP и отправить копию всем десяти PVC, что привело бы к увеличению нагрузки на роутер A и увеличило использование полосы пропускания на других восьми PVC, не подключающихся к EIGRP роутеру. Это ситуация, при которой выигрыш состоит в статической настройке соседей EIGRP, а не от использования процесса обнаружения на основе многоадресной рассылки. Давайте рассмотрим вариант конфигурации статического соседства EIGRP в этой статье. Статическая конфигурация соседства Команда neighbor ip_address outgoing_interface вводится в режиме конфигурации роутера EIGRP для статического указания соседства EIGRP. Обратите внимание, что эта настройка должна быть выполнена на обоих соседях. Кроме того, имейте в виду, что IP-адрес, указанный в команде neighbor, принадлежит той же подсети, что и указанный исходящий интерфейс. На основе топологии, показанной ниже, следующие примеры настроек показывают, как роутеры OFF1 и OFF2 статически указывают друг на друга, в отличие от использования динамического обнаружения. OFF1#conf term Enter configuration commands, one per line. End with CNTL/Z. OFF1(config)#router eigrp 1 OFF1(config-router)#neighbor 10.1.1.2 gig 0/1 OFF1(config-router)#end OFF1# OFF2#conf term Enter configuration commands, one per line. End with CNTL/Z. OFF2(config)#router eigrp 1 OFF2(config-router)#neighbor 10.1.1.1 gig 0/1 OFF2(config-router)#end OFF2# На роутере OFF1 команда neighbor 10.1.1.2 gig 0/1 введенная в режиме конфигурации роутера EIGRP, дает команду процессу EIGRP прекратить отправку многоадресных сообщений из интерфейса Gig 0/1 и вместо этого начать использовать одноадресные сообщения. Он также инструктирует процесс маршрутизации EIGRP попытаться установить соседство с EIGRP-спикер роутером, по IP-адресу 10.1.1.2 (то есть IP-адрес интерфейса Gig 0/1 роутера OFF2). Поскольку статическая конфигурация соседа должна выполняться на обоих концах канала, роутер OFF2 аналогично настроен для отправки одноадресных сообщений EIGRP со своего интерфейса Gig 0/1 и для установления соседства с EIGRP-спикер роутером с IP-адресом 10.1.1.1 (то есть IP-адресом интерфейса gig 0/1 роутера OFF1). Проверка статического соседства Чтобы определить, какие интерфейсы на роутере статически настроены с соседом EIGRP, можно использовать команду show ip eigrp neighbors detail. В приведенном ниже примере показано, что эта команда выполняется на роутере OFF1. Обратите внимание, что выходные данные идентифицируют 10.1.1.2 как статически настроенного соседа. Предостережение по применению статического соседства Рассмотрим роутер, который должен установить более чем одно соседство EIGRP с одного интерфейса, например роутер OFF2 на рисунке ниже. В этой топологии роутеры OFF1 и OFF2 динамически cформировали соседство EIGRP. Позже был добавлен роутер OFF4, и роутеры OFF2 и OFF4 были настроены как соседи EIGRP статически. Однако после того, как была сделана статическая настройка, роутер OFF2 потерял свое соседство с роутером OFF1. Причина заключается в том, что роутер OFF2 отправляет только одноадресные сообщения EIGRP со своего интерфейса Gig0/1 и хочет получать только одноадресные сообщения EIGRP, поступающие на этот интерфейс. Однако роутер OFF1 все еще настроен (с настройками по умолчанию) для отправки и ожидания многоадресных сообщений EIGRP на своем интерфейсе Gig0/1. Итак, мораль этой истории заключается в том, что если вы настраиваете интерфейс роутера для установления соседства EIGRP статически, убедитесь, что все соседи EIGRP вне этого интерфейса также настроены для соседства статически. Дело за малым - осталось последняя статья из цикла - EIGRP: идентификатор роутера и требования к соседству.
img
Данная статья посвящена монтированию и демонтированию файловых систем в Linux. Под этим понятием понимается подключение разделов жестких дисков, различных носителей и прочих файловых систем, которые могут находится на различных носителях информации. Получение к ним доступа, отключение автоматически и в ручном режиме. В статье будут рассмотрены следующие вопросы: Подключение и отключение файловых систем вручную. Управление автоматическим монтированием файловых систем. Подключение съемных носителей информации. Основные команды, которые позволяют решать вопросы указанные выше: mount устройство точка_монтирования umount устройство или umount точка_монтирования. /etc/fstab: устройство точка монтирования тип файловой системы параметры dump pass Данный файл – это файл настройки автоматического подключения файловых систем. Точкой монтирования, является пустой каталог на нашей файловой системе. К виртуальной машине подключен диск, определяемый операционной системой /dev/sdc, а на нем создан раздел /dev/sdc1 с файловой системой ext4. Мы можем посмотреть, что на нем ls –l /dev/sdc1. Для того, чтобы посмотреть, что есть на этом диске необходимо создать точку монтирования. Для этой цели подойдет любая папка. Если мы посмотрим корневые папки командой ls /, то увидим следующую картину. Правилом хорошего тона является монтирование файловых систем в папки mnt и media. Обычно папку mnt используют для монтирования разделов, а папку media для монтирования съемных носителей информации. Т.е папка mnt пустая и туда у нас ничего не монтируется, можно создать внутри папку mkdir /mnt/hard. Теперь мы можем смонтировать в данную папку наш жесткий диск, подключенный к виртуальной машине. Монтирование осуществляется следующим образом mount /dev/sdc1 /mnt/hard или mount –t ext4 /dev/sdc1 /mnt/hard. Linux очень хорошо самостоятельно определяет тип файловой системы и в написании команд можно данную опцию опустить. Как мы видим все смонтировалось и так как файловая система журналируемая появилась папочка lost+found. Вообще в линуксе вся файловая система –это такое иерархическое дерево с файлами и папками, подпапками. Все эти файлы и папки вообще могут находится на разных устройствах, в том числе и на сетевых устройствах. Это может быть даже сетевая папка, подключенная к нашей системе. Мы подключили /dev/sdc1 в папку /mnt/hard. Мы можем выполнить команду mount, которая покажет нам, что и куда смонтированно. Мы видим все файловые системы смонтированные. В том числе только, что примонтированный жесткий диск. Так же мы можем увидеть виртуальные файловые системы, типа proc. Виртуальная файловая система proc содержит все запущенные процессы и смонтирована в папку /proc. Как мы видим из скриншота их достаточно много. Помимо тех файловых систем, которые созданы на носителях, примонтированно много виртуальных файловых систем. Можно увидеть, что они смонтированы в разные папки согласно их предназначению. Отмонтировать можно командой umount /dev/sdc1. Следовательно мы можем увидеть ls /mnt/hard, что папка пустая. Иногда при выполнении команды на отмонтирование система ругается, это происходит если мы данную файловую систему, каким-нибудь образом используем, например, если открыт файл с данной папки или подпапки. Следовательно, необходимо завершить все операции, после этого система нам даст отмонтировать. Чтобы вот так вручную не подключать или не отключать разделы, есть файлик /etc/fstab. В нем находятся настройки автоматического монтирования файловых систем. Если в данном файлике не сделать запись, то после перезагрузки система не подключит подмонтированную файловую систему, автоматически. Что касается настройки: в файле мы указываем устройство с файловой системой, затем точку монтирования, тип файловой системы, опции и пара настроек. Dump – говорит нам о том, сохранять ли файлы автоматом на данной файловой системе при отключении системы. Т.е если у нас пропало питание или идет завершение работы. Принимаемые значения 1 - файлики будут сохранятся, 0 не будет сохранятся. Параметр Pass указывает порядок проверки файловых систем. Обычно 1 у корневой файловой системы, у всех последующих 2, у съемных носителей 0. Операционная система Linux обычно позволяет смонтировать файловую систему по UUID. Т.е устройство можно указывать не только в явном виде, но и по метке, и по идентификатору. Указывать по идентификатору надежнее мы можем переименовать устройство или переставить жесткие диски и тогда загрузочный раздел окажется не /dev/sda1, а например /dev/sdc1. Чтобы подобного не произошло, лучше файловые системы прописывать с помощью идентификатора. Потому, что идентификаторы прописаны жестко к каждому разделу и изменить мы их не можем. И это будет более стабильная работа. В нашем же случае мы видим, что основной раздел смонтирован. Имеет файловую систему ext4 . Про опции монтирования можно прочитать в мануале к файлу fstab. Ну и как можно увидеть примонтирован еще один раздел без точки монтирования – это раздел подкачки swap. Можно еще одну интересную вещь заметить, при попытке нового монтирования файловой системы от обычного пользователя операционная система ругнется, что только пользователь root может это сделать, но как только мы пропишем данное монтирование в файл /etc/fstab и скажем, что пользователь обычный имеет право монтировать данную файловую систему, то система совершенно спокойно даст примонтировать без повышения привилегий. Соответственно редактировать данный файл совершенно просто. Открываем его любым редактором в режиме суперпользователя и добавляем данные по монтируемой файловой системе. Если при монтировании вы не знаете какой тип файловой системы, можно просто указать auto и операционная система автоматически ее определит тип файловой системы при монтировании. Далее интересная вещь – это опции при монтировании можно указать defaults (чтение (ro), запись (rw), выполнение (execute), nouser). Параметр user- т.е любой пользователь может монтировать и демонтировать данную файловую систему, если данные параметр не указать, тогда только суперпользователь сможет выполнять данные действия. Параметр auto – т.е данный параметр будет автоматически подключать данную файловую систему при старте компьютера или сервера. Параметр noexec - данный параметр запрещает запуск исполняемых файлов на данной файловой системе. После добавления записи в файл /etc/fstab , мы можем примонтировать файловую систему командой от обычного пользователя mount /mnt/hard. Система обратится к файлу /etc/fstab проверит запись и опции, если есть указанная точка монтирования и в опциях запись user система успешно подмонтирует файловую систему. Аналогично можно провести обратную операцию размонтирования unmount /mnt/hard. Есть хорошая команда, которой приходится пользоваться, особенно если создаем raid массивы – это blkid. Данная команда позволяет посмотреть блочные устройства. Работает от суперпользователя sudo blkid /dev/sdc1. Команда показывает, какой uuid имеется у устройства. И мы можем в файле /etc/fstab, можем указать не имя устройства, а UUID = a783a365-3758-47bd-9f2d-1f5b4155f4ca. И это будет надежнее указание UUID, чем имена дисков, потому что имена дисков могут меняться. Раньше в файле /etc/fstab так же прописывалось монтирование съемных носителей USB флешки, CD-ROM и т.д создавалась запись для файловой системы с правами read-only и что при необходимости смонтировать могут любые пользователи, автоматически флопик и CD-ROM не монтировались. Современные дистрибутивы, включаю Ubuntu последних версий, в том числе пользовательские, с красивыми оболочками Gnome и KDE есть файловый менеджер Nautilus. У данного файлового менеджера есть свои настройки, которые позволяют автоматически монтировать, все что мы подключаем. В случае если мы работаем на серверной операционной системе, например, Ubuntu или CentOS, то понятно в дефолтной конфигурации у нас нету авто монтирования и прочих радостей десктопной версии. Поэтому делаем простую вещь. Вставляем носитель с файловой системой, второй шаг blkid находим наше устройство и третий шаг монтируем, командой mount. Правилом хорошего тона является монтирование всех устройств в папку /media. Здесь обычно располагаются папки cdrom, можно создать папки floppy или usb. И последний нюанс, после того, как вы поработали с флешкой и от монтировали, необходимо корректно ее вытащить. Даем команду eject.
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. Прочитать полный код или попробовать плагины можно тут
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59