Кубэ: Кубэ – жареный булгур с мясной начинкой

Содержание

как советские партизаны ликвидировали нацистского генерального комиссара Вильгельма Кубе — РТ на русском

22 сентября 1943 года в результате операции, развёрнутой советскими партизанами, был ликвидирован руководитель нацистской оккупационной администрации генерального округа Белоруссия Вильгельм Кубе. Исполнителем директивы Москвы стала домработница семьи гауляйтера Елена Мазаник, удостоенная впоследствии звания Героя Советского Союза. Историки отмечают, что, устранив Кубе, отечественная разведка продемонстрировала блестящий уровень подготовки, а сама операция воодушевила борющихся с фашистами людей. По мнению экспертов, последовавшее усиление террора со стороны оккупантов было связано не с убийством Кубе, а с успехами Красной армии.

После захвата Белоруссии нацистскими войсками в республике установился суровый оккупационный режим. Под властью гитлеровцев оказались около 8 млн мирных жителей и порядка 900 тыс. советских военнопленных. Эскадроны смерти сразу же приступили к массовому уничтожению евреев, коммунистов, советских активистов и всех, кто был не согласен с оккупацией. На территории Белоруссии было создано 260 лагерей смерти и более 200 еврейских гетто. Кроме того, начался массовый вывоз молодых белорусов на принудительные работы в Германию. Руководителем оккупационной администрации вскоре после начала войны был назначен Вильгельм Кубе.

Генеральный комиссар

Вильгельм Кубе родился в 1887 году в городе Глогау в Силезии. Окончив Берлинский университет по специальности «история и право», он занялся литературой и политикой. Кубе отметился на фронтах Первой мировой войны, редактировал консервативные газеты и принимал участие в работе правых партий. Будучи уже опытным политиком, в 1927 году он вступил в НСДАП и вскоре стал гауляйтером Остмарка, а затем — Курмарка.

В дальнейшем карьера Кубе стремительно пошла вверх. Он был избран депутатом рейхстага и ландтага Пруссии и стал руководителем нацистской фракции. После прихода гитлеровцев к власти в Германии он был назначен на должности обер-президента Бранденбурга, прусского государственного советника и обер-президента Пограничной марки Позен — Западная Пруссия. Также в 1933 году он вступил в СС и получил звание оберфюрера (средний чин между полковником и генерал-майором. — RT).

Однако в 1936-м Кубе стал фигурантом ряда скандалов. Так, якобы за неисполнение приказа он без суда и следствия приговорил к расстрелу сразу нескольких военных. Кроме того, Кубе распространял слухи о еврейском происхождении тёщи начальника штаба заместителя фюрера Мартина Бормана, которые позже не подтвердились. Также Кубе был уличён в коррупции и экономических злоупотреблениях. После этого ему пришлось покинуть ряды СС и уволиться с административных должностей.

«Кубе обладал сложным, неуравновешенным и авантюрным характером. Это накладывало определённый отпечаток на его деятельность», — рассказал в беседе с RT историк и писатель Александр Колпакиди.

Тем не менее в 1938 году Кубе позволили избраться в рейхстаг и заниматься депутатской деятельностью. Адольф Гитлер лично подбирал для него такие должности, которые бы оказались достаточно почётными для человека, формально являвшегося гауляйтером. После нападения на Советский Союз фюрер решил назначить Кубе генеральным комиссаром генерального округа Белорутения (преимущественно занимавшего территорию современной Белоруссии. —

RT), относившегося к рейхскомиссариату «Остланд» и подчинявшегося министерству оккупированных восточных территорий.

На новой должности интересы Кубе вступили в противоречие с интересами военных и СС, желавших иметь в Белоруссии свои зоны контроля. Конкурируя с ними, он проявлял циничный прагматизм — добивался того, чтобы трудоспособных евреев вместо казни отправляли на тяжёлые работы, а также пытался разжечь на территории Белоруссии русофобские националистические настроения.

«В последние десятилетия многие историки и публицисты пытаются гуманизировать Кубе. При этом опираются преимущественно на воспоминания его супруги — человека априори предвзятого. В результате из публикации в публикацию кочует, например, тезис о том, что Кубе якобы саботировал уничтожение евреев. В реальности же он вовсе не пытался их спасти. Кубе заботила лишь судьба немецких евреев, участников Первой мировой войны, которых руководство Германии выслало в гетто Польши и Белоруссии. Судьбы остальных представителей этого народа его волновали лишь в одном аспекте: генеральный комиссар считал бессмысленными расстрелы трудоспособных евреев, которые могли бы принести пользу рейху», — разъяснил в интервью RT учёный секретарь Музея Победы Сергей Белов.

  • Советские партизаны в Белоруссии, 1943 год
  • © Wikimedia commons

По словам эксперта, только в мае — июле 1942 года при активном участии генерального комиссара были уничтожены 55 тыс. евреев. Кубе с гордостью докладывал в Берлин, что полностью истребил еврейское население Минской области без какого-либо ущерба для рабочей силы.

За то время, что он находился у власти, в результате казней, карательных операций, голода и болезней погибли миллионы местных жителей. Поэтому советское руководство включило Кубе в список нацистских функционеров, подлежащих ликвидации силами разведчиков и партизан. При этом обстоятельства сложились таким образом, что роль исполнителя «заказа» досталась обычной белорусской девушке Елене Мазаник.

Героиня из народа

Мазаник, которой предстояло вступить в противоборство с машиной гитлеровских спецслужб в оккупированной Белоруссии, родилась 4 апреля 1914 года в деревне Поддегтярная неподалёку от Минска в бедной крестьянской семье. Рано потеряв отца, она ещё ребёнком вынуждена была бесплатно, в буквальном смысле за кусок хлеба заниматься тяжёлой домашней работой у родственников. Из-за этого Елена Мазаник на протяжении всей оставшейся жизни страдала от болезней суставов.

В школе она успела окончить всего шесть классов и даже по достижении совершеннолетия не могла сразу рассчитывать на престижную работу. Поэтому устроилась в столовую Совнаркома БССР: по одной версии — официанткой, по другой — уборщицей. Познакомившись с шофёром НКВД Болеславом Тарлецким, Мазаник вскоре вышла за него замуж. В дальнейшем Елена работала в доме отдыха Совнаркома и в столовой ЦК Компартии Белоруссии. В 1941-м Тарлецкий участвовал в эвакуации управления НКВД и вместе с сослуживцами покинул Минск. Елена выехать не смогла.

  • Перед казнью участников комсомольского подполья Минска
  • РИА Новости

Когда Белоруссия была оккупирована, молодую женщину сначала взяли на работу уборщицей в одно из немецких военных учреждений, а затем перевели официанткой на фабрику-кухню и в офицерское казино. Летом 1943 года Елену заметило семейство Вильгельма Кубе, и она стала домработницей в особняке, который занимал генеральный комиссар. В связи с директивами из Кремля Мазаник вскоре попала в поле зрения советских партизан и разведчиков.

«Важная цель для советских разведчиков»

«Кубе входил в десятку самых влиятельных немецких управленцев на оккупированных территориях и был поэтому важной целью для советских разведчиков и диверсантов», — отметил Колпакиди.

По словам Белова, к вопросу организации ликвидации Кубе советские спецслужбы подошли крайне обстоятельно.

«В «охоте» на генерального комиссара участвовали одновременно множество групп партизан и подпольщиков, действовавших независимо друг от друга», — рассказал эксперт.

22 июля 1943 года подпольщики предприняли попытку покушения на Кубе, в ходе которой от взрыва бомбы в театре погибли порядка 70 нацистских военных, однако самого генерального комиссара на мероприятии в тот день не оказалось. Вскоре «охотники на гауляйтера» вышли на Елену Мазаник. По словам историков, с ней практически одновременно связались представители сразу нескольких отрядов, работавших по линии НКВД и ГРУ.

  • Елена Мазаник в годы Великой Отечественной войны
  • © YouTube

Елена на контакт пошла, однако выдвинула ряд условий. Она была готова рискнуть жизнью только после беседы с руководителем соответствующего отряда и выезда из города её сестры Валентины Шуцкой. Изначально подготовкой Мазаник к покушению на Кубе занималась разведчица Надежда Троян. Однако окончательно склонила её к участию в акции Мария Осипова, вышедшая на Елену через её сестру. Валентина лично встретилась с партизанским командиром Николаем Фёдоровым, после чего Елена дала согласие ликвидировать генерального комиссара.

Также по теме

Верхневолжская Жанна д’Арк: какую роль в победе над нацизмом сыграл подвиг Лизы Чайкиной

Сто лет назад родилась Герой Советского Союза партизанка Лиза Чайкина. Под страшными пытками она не предала боевых товарищей. Её…

На стадии подготовки обсуждался вариант отравления Кубе, но Елена отвергла его как ненадёжный. В итоге решили остановиться на взрывном устройстве. 20 сентября Мария передала Елене мину, а также яд — на тот случай, если её разоблачат.

На следующий день Елена запустила на взрывном устройстве часовой механизм (предположительно, с химическим реагентом) и завернула мину в вышитый платок. На входе охрана не слишком придирчиво досматривала вещи домработницы генерального комиссара, а узнав, что платок предназначается в подарок супруге Кубе, и вовсе не стала его трогать. Спрятав затем мину под платьем, Елена проникла в спальню гауляйтера и закрепила взрывное устройство под матрасом. После чего отпросилась из особняка, сославшись на сильную зубную боль. Сразу после этого она вместе с сестрой и Осиповой покинула Минск.

В ночь на 22 сентября в спальне генерального комиссара прогремел взрыв, в результате которого Кубе погиб. А 12 октября Мазаник вместе с другими участницами казни нацистского чиновника была на самолёте доставлена в тыл. Женщины сразу же были допрошены лично наркомом госбезопасности Всеволодом Меркуловым и начальником ГРУ Фёдором Кузнецовым. 29 октября 1943 года Елене Мазаник, Марии Осиповой и Надежде Троян было присвоено звание Героя Советского Союза.

Война после войны

Оказавшись в тылу, Елена Мазаник узнала, что Болеслав Тарлецкий с ней развёлся. Замуж она больше так и не вышла, занявшись карьерой и общественной деятельностью. Окончив Высшую республиканскую партийную школу при ЦК Компартии Белоруссии и педагогический институт, Елена стала замдиректора Фундаментальной библиотеки Академии наук Белорусской ССР и заслуженным работником культуры. Люди часто обращались к ней за помощью по самым разным вопросам — и она использовала своё звание Героя, чтобы помогать тем, кто оказался в сложной жизненной ситуации. Скончалась Елена Мазаник 7 апреля 1996 года.

  • Елена Мазаник, 1964 год
  • РИА Новости

При этом в годы перестройки и после распада СССР против Елены Мазаник развернулась информационная кампания, которая продолжилась и после её смерти. В центре внимания прессы, в частности, оказался её развод — Елену обвиняли в привязанности к Кубе, которого она якобы «предала». Кроме того, появилась версия, что Мазаник и её командование на самом деле ликвидировали Кубе по наводке гестапо, с которым у генерального комиссара якобы был конфликт. Также было распространено мнение о том, что убийство Кубе привело к массовым репрессиям со стороны гитлеровцев и, как следствие, неоправданным жертвам среди мирного населения. Однако историки с этим в корне не согласны.

«После смерти Кубе действительно казнили 300 заключённых минской тюрьмы. Но думать, что в другой ситуации нацисты пожалели бы этих людей, было бы верхом наивности. Нацисты в любом случае уничтожили бы заключённых», — отметил историк и писатель Игорь Пыхалов.

С ним солидарен и Сергей Белов. По его словам, усиление террора со стороны оккупантов после смерти Кубе нельзя объяснить только личностью его преемника.

«Нужно помнить о том, что всего за день до ликвидации Кубе был освобождён Смоленск. Немецкое командование было поставлено в принципиально новые для него условия. Красная армия уверенно двигалась на запад. Вся линия немецкого фронта от верховий Днепра до Чёрного моря содрогалась под ударами наступающей советской армии. Перед вермахтом стояла задача удержать контроль над территорией Белоруссии. В этих условиях усиление репрессий со стороны оккупантов было ожидаемым шагом. Даже если бы Кубе остался жив, это ничего не изменило бы», — отметил он.

По словам Александра Колпакиди, операция по ликвидации была спланирована и реализована блестяще.

«Нужно было показать, что мы можем ликвидировать нацистских руководителей, и это показали. Это воодушевило людей. Что касается идущих сегодня разговоров, то журналистам часто хочется создать сенсацию. Да, у Кубе был конфликт, но только не с гестапо, а с СС. Не стоит делать далеко идущие выводы из разгильдяйства его охраны. Кубе был влиятельной личностью. Однако, во-первых, на оккупированных территориях был ликвидирован целый ряд равнозначных ему фигур, а во-вторых, если бы руководство СС действительно хотело его убрать, то его влияние всё же было не так велико, чтобы его банально не отозвали в Берлин», — подытожил эксперт.

👌 Кубэ манные с мясом, рецепты с фото

Кубэ — блюдо восточной кухни. По одним источникам кубэ — иракское блюдо, по другим  — сирийское, но я точно знаю, что оно очень вкусное и сытное.

Кубэ — это некая разновидность клецков, только с мясом и с манкой. Из манки мы будем готовить тесто, а из мяса — начинку. Начинка, в оригинале, должна быть очень острой. Но так как это блюдо очень любят мои дети, специй я кладу по своему вкусу, делая из скорее пикантными, чем острыми. 

Манное тесто на ощупь напоминает дрожжевое, поэтому работать с ним очень легко. Если, вдруг, ваше манное тесто будет приставать к рукам, смочите руки водичкой.

Сегодня, в качестве начинки, я буду использовать мясной фарш. Но кубэ можно готовить с овощами, грибами, сырами. Главное подойти к этому с фантазией, и все обязательно скажут вам, что ваше блюдо — самое вкусное!

Для того чтобы приготовить кубэ с мясом, вам понадобятся следующие продукты:

Для теста:


Для фарша:

— фарш — 300 г
— лук — 1 шт.
— чеснок — 1 зубочек
— специи острые

Для подливы:

— грибы — 200 г
— лук — 1 шт.
— морковь — 1 шт.
— томатный соус — 0,5 л.
— сахар — 1 ч.л.
— соль, лавровый лист

Время приготовления — 2 часа.

Сложность — средняя.

Начнем приготовления блюда с того, что сделаем манное тесто. Для этого манку заливаем холодной водой, добавляем соль, и оставляем на час в теплом месте.

Пока занимаемся начинкой. Фарш я брала свино-говяжий для того, чтобы начинка была сочной, а не сухой. Добавила к нему измельченный лук, чеснок и острые специи. Но с количеством специй, как я уже говорила ранее, нужно быть осторожными и учитывать вкусы вашей семьи.

Тесто постояло у меня минут 50 и стало понятно, что с ним уже можно работать.

Приступим к формированию манных кубэ. Сделаем небольшую лепешку, в середину выложим 1 чайную ложку фарша.

Подливка для кубэ уже должна кипеть. Для ее приготовления необходимо обжарить грибы с луком и морковью.

Когда они будут готовы, добавим томатный соус, можно использовать пасту, домашние заготовки. Но соуса должно быть много, так как кубэ будут кипеть в томате. Сюда же лавровый лист, соль и сахар.

Выкладываем готовые кубе в кипящий томатный соус.

Первые минут 10 мы готовим их при открытой крышке, периодически их переворачивая. Затем с закрытой крышкой тушим еще 10-15 минут.

Кубэ готовы. Подавать их лучше горячими, щедро поливая соусом с грибами.

Приятного аппетита!

Чтобы получать лучшие статьи, подпишитесь на страницы Алимеро в Яндекс Дзен, Вконтакте, Одноклассниках, Facebook и Pinterest!

SANVIT Кубэ-1 Тумба подвесная для ванной комнаты с раковиной, 1 выдвижной ящик

Серия Кубэ создана для тех, кто любит стильный и современный дизайн. Подвесная тумба с одним, двумя ящиками и напольная — с тремя ящиками оснащены системами полного выдвижения и плавного закрывания. Модель комплектуется керамической раковиной SanVit. Верхний ящик тумбы имеет систему разделения внутреннего и подсифонного пространства. Комплект производится из МДФ в пленке ПВХ. Возможно исполнение в цветовой гамме пленки ПВХ от ВДМ групп и Еврогрупп. Размеры указаны с учетом раковины.

  • Тумба с раковиной

  • Бельевая корзина

  • Двойная раковина

  • Конструкция дверей

  • Материал корпуса

    Влагостойкий МДФ

  • Материал раковины

  • Материал фасада

    Влагостойкий МДФ

  • Наличие столешницы

  • универсальная

  • Угловая конструкция

  • Установка над стиральной машиной

  • прямоугольная

  • Цвет фурнитуры

Кубэ — Рецепт с пошаговыми фотографиями

Рецепт готовила

jacky

[Мастер шеф]

2018.06.22

По рецепту готовили
1 раз

Добавлен: 28.08.14 в 08:32

Просмотров: 11556

43

от 10 кулинаров

На кухне у: 24

Приготовили: 1

О рецепте кубэ — Иранских пельмений

Вкусное и сытное блюдо!
Насколько я знаю, оно пришло из национальной кухни Ирака. Похожее есть также в кулинарии Ливана.
И хотя я не имею никакого отношения к этим странам, но обожаю изучать разные национальные кухни и собираю кулинарные книги.

Приготовление кубэ — Иранских пельмений

  • Шаг 1 1 Обжариваем нашинкованный лук (необходимо половину лука использовать для супа и половину – в фарш).
    Натираем морковь.
    Нарезаем картофель.
    Кипятим воду для супа. Отправляем туда овощи.
  • Шаг 2 2 Пока варится суп, делаем кубэ:
    смешиваем манку, 0.75 ст. воды, соль, перец и масло. Тесто должно получиться податливое, мягкое и не липкое. Для создания нужной консистенции можно добавить еще немного воды или крупы.
  • Шаг 3 3 Оставшийся лук перемешиваем с фаршем, добавляем соль и перец по вкусу.
  • Шаг 4 4 На ладони разминаем кусочек теста так, чтобы пласт был не толще 5 мм. Укладываем немного фарша и формируем колобки, полностью скрывая мясо тестом.
  • Шаг 5 5 Кубэ, конечно, получается больше, чем на фотографии.
  • Шаг 6 6 В суп добавляем фасоль, томатную пасту, солим и перчим по вкусу. Можно также добавить немного уксуса и капельку подсластить – так вкуснее. В готовый суп опускаем кубэ и варим на большом огне до готовности – примерно 7-10 минут.
  • Шаг 7 7 Подаем вместе с супом.
    Приятного аппетита!
Комментарии ()

Всего комментариев:

Вконтакте

На кухне у Орли: легко и быстро. Полное руководство по идеальному кубэ

 

 Ингредиенты на 6 порций (18 кубэ):

Для верхнего слоя:  

1 стакан мелкого бургуля

1 стакан холодной воды 

1 стакан манки 

1 чайная ложка соли 

Для мясной начинки:  

2 столовые ложки растительного масла 

1 луковица, мелко нарезанная 

250 гр говяжьего фарша (желательно из жирного куска) 

2 чайные ложки приправы бахарат 

Соль и перец 

2 столовые ложки нарубленных листьев сельдерея 

2 столовые ложки зеленого лука или лука-шалот (ирит) 

Суп из тыквы:  

2 столовые ложки растительного масла 

2 стакана нарезанной большими кубиками тыквы 

2 нарезанных колечками моркови 

3 стебля сельдерея, нарезанные на кусочки толщиной 1 см 

1 луковица, нарезанная кубиками 

2 литра воды 

1 столовая ложка сахара 

Сок из одного лимона 

Соль и молотый черный перец 

Способ приготовления:  

1. Приготовить верхний слой: замочить мелкий бургуль в миске с холодной водой на полчаса — пока вода не впитается и крупа не разбухнет. 

2. Смешать бургуль и манную крупу и вручную месить в течение 3 минут до тех пор, пока смесь не станет мягкой, влажной и достаточно устойчивой, чтобы сделать из нее шарик, расплющить в лепешку и обернуть ею начинку. Если смесь вышла слишком сухой, добавить столовую ложку воды и месить до тех пор, пока не получится нужная консистенция. Если тесто слишком мягкое, добавить столовую ложку муки и хорошенько вымесить. Но старайтесь придерживаться пропорции 1:1:1 для получения правильной консистенции. 

3. Накрыть пищевой пленкой и убрать в холодильнике на полчаса. Пока приготовить суп и начинку. 

4. Суп. В большой кастрюле разогреть масло и припустить лук, морковь и сельдерей в течение 5 минут, до золотистого цвета. Добавить тыкву, залить водой и довести до кипения. Добавить сахар, лимонный сок, соль и перец, неплотно прикрыть крышкой и варить в течение получаса на медленном огне. 

5. Приготовить начинку: разогреть сковороду с маслом и луком, припустить в течение 3 минут до мягкости, но не подрумянивая. Переложить в миску и добавить фарш, бахарат и зелень, хорошо перемешать и сформировать шарики. Переложить в холодильник или морозилку, дав шарикам затвердеть. 

6. Собрать кубэ. Смочить руки, сформировать из теста шарик размером с мячик для пинг-понга и расплющить его на ладони в лепешку. Взять мясной шарик, разместить в центре тестяной лепешки. Обернуть тестом и скатать из всего шарик идеальной формы. Выложить на влажный или смазанный маслом противень, чтобы шарики не прилипали. 

7. Довести суп до кипения, попробовать, приправить. Добавить шарики кубэ и варить до готовности в течение 20 минут на среднем огне , частично прикрыв крышкой.

Иракский свекольный суп с кубэ

Ингредиенты:

Для теста:
Манная крупа – 700 гр.
Масло растительное – 80 гр.
Вода – 600-700 гр.
Соль – 1 ст.ложка.

Для начинки:
Говядина жирная молотая, лучше всего с ребер – 0.5 кг.
Лук, мелко рубленный -100 гр.
Сладкая паприка – 1 ч.ложка.
Душистый перец молотый – 1 ч.ложка.
Петрушка мелко рубленная – 50 гр.
Мята мелко рубленная – 20 гр.
Листья сельдерея мелко рубленные – 50 гр.
Соль , перец  – по вкусу.

Для супа:
Свекла очищенная и нарезанная на кубики по 1.5 см.- 1кг.
Сельдерей черешки– нарезанные на кубики по 1 см. – 200 гр.
Лук репчатый – нарезанный кубиками по 1 см. – 200 гр.
Целые зубчики чеснока – 15 шт.
Томатная паста – 100 гр.
Соль, перец-по вкусу.
Лимонный сок – по вкусу.

Способ приготовления:

Делаем тесто:
В манную крупу добавляем масло и соль и тщательно перемешиваем. Добавляем воду постепенно до тех пор пока не получается однородное, не слишком грубое тесто. Даем тесту настоятся в прохладном месте под полотенцем 20-30 минут. Вымешиваем тесто еще раз и лепим шарики диаметром в 4-5 см. И даем им отстоятся под полотенцем на 15-20 мнут.

Делаем начинку – перемешиваем все ингредиенты в однородную массу.

Наполняем кубэ и выкладываем их на смазанную маслом поверхность.

Варим суп:
Выкладываем все овощи в кастрюлю, добавляем специи и лимонный сок, доводим до кипения и варим 10-15 минут.
Увеличиваем огонь на максимум и добавляем кубе по одной. Доводим суп с кубе до кипения, уменьшаем огонь и варим под крышкой около часа до полной готовности кубе.

Подаем суп с кубе рядом с простым белым рисом.

Что такое Kubernetes? | Kubernetes

Kubernetes — это портативная расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и службами, которая упрощает декларативную настройку и автоматизацию. Он имеет большую, быстрорастущую экосистему. Сервисы, поддержка и инструменты Kubernetes широко доступны.

На этой странице представлен обзор Kubernetes.

Kubernetes — это портативная расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и службами, которая упрощает декларативную настройку и автоматизацию.Он имеет большую, быстрорастущую экосистему. Сервисы, поддержка и инструменты Kubernetes широко доступны.

Имя Kubernetes происходит от греческого языка, что означает рулевой или пилот. K8s как аббревиатура получается в результате подсчета восьми букв между «K» и «s». Google открыл исходный код для проекта Kubernetes в 2014 году. Kubernetes сочетает в себе более чем 15-летний опыт Google по масштабированию производственных рабочих нагрузок с лучшими в своем классе идеями и практиками сообщества.

Возвращаясь в прошлое

Давайте посмотрим, почему Kubernetes так полезен, вернувшись в прошлое.

Эра традиционного развертывания: Вначале организации запускали приложения на физических серверах. Не было возможности определить границы ресурсов для приложений на физическом сервере, и это вызывало проблемы с распределением ресурсов. Например, если на физическом сервере работает несколько приложений, могут быть случаи, когда одно приложение будет занимать большую часть ресурсов, и в результате другие приложения будут работать хуже. Решением для этого было бы запускать каждое приложение на отдельном физическом сервере.Но это не масштабировалось, поскольку ресурсы использовались недостаточно, и организациям было дорого поддерживать множество физических серверов.

Эпоха виртуализированного развертывания: В качестве решения была представлена ​​виртуализация. Он позволяет запускать несколько виртуальных машин (ВМ) на одном физическом процессоре сервера. Виртуализация позволяет изолировать приложения между виртуальными машинами и обеспечивает определенный уровень безопасности, поскольку информация одного приложения не может быть свободно доступна для другого приложения.

Виртуализация

позволяет лучше использовать ресурсы физического сервера и обеспечивает лучшую масштабируемость, поскольку приложение может быть легко добавлено или обновлено, снижает затраты на оборудование и многое другое. С помощью виртуализации вы можете представить набор физических ресурсов в виде кластера одноразовых виртуальных машин.

Каждая виртуальная машина — это полноценная машина, на которой работают все компоненты, включая собственную операционную систему, поверх виртуализированного оборудования.

Эпоха развертывания контейнеров: Контейнеры похожи на виртуальные машины, но имеют ослабленные свойства изоляции, позволяющие совместно использовать операционную систему (ОС) между приложениями.Поэтому контейнеры считаются легкими. Подобно виртуальной машине, у контейнера есть собственная файловая система, общий ресурс ЦП, память, пространство процесса и т. Д. Поскольку они отделены от базовой инфраструктуры, их можно переносить между облаками и дистрибутивами ОС.

Контейнеры

стали популярными, потому что они предоставляют дополнительные преимущества, такие как:

  • Гибкое создание и развертывание приложений: повышенная простота и эффективность создания образа контейнера по сравнению с использованием образа виртуальной машины.
  • Непрерывная разработка, интеграция и развертывание: обеспечивает надежное и частое создание и развертывание образов контейнера с быстрым и эффективным откатом (благодаря неизменности образа).
  • Разделение задач Dev и Ops: создавать образы контейнеров приложений во время сборки / выпуска, а не во время развертывания, тем самым отделяя приложения от инфраструктуры.
  • Наблюдаемость: отображает не только информацию и показатели уровня ОС, но также состояние приложения и другие сигналы.
  • Согласованность среды при разработке, тестировании и производстве: на ноутбуке работает так же, как и в облаке.
  • Облако и переносимость распространения ОС: работает на Ubuntu, RHEL, CoreOS, локально, в основных общедоступных облаках и в любом другом месте.
  • Управление, ориентированное на приложения: Повышает уровень абстракции от запуска ОС на виртуальном оборудовании до запуска приложения на ОС с использованием логических ресурсов.
  • Слабо связанные, распределенные, эластичные, освобожденные микросервисы: приложения разбиты на более мелкие, независимые части и могут разворачиваться и управляться динамически, а не монолитным стеком, работающим на одной большой специализированной машине.
  • Изоляция ресурсов: предсказуемая производительность приложений.
  • Использование ресурсов: высокая эффективность и плотность.

Зачем нужен Kubernetes и на что он способен

Контейнеры — хороший способ связать и запустить ваши приложения. В производственной среде вам необходимо управлять контейнерами, в которых запускаются приложения, и гарантировать отсутствие простоев. Например, если контейнер выходит из строя, необходимо запустить другой контейнер. Разве не было бы проще, если бы этим поведением занималась система?

Вот как на помощь приходит Kubernetes! Kubernetes предоставляет вам платформу для отказоустойчивой работы распределенных систем.Он заботится о масштабировании и отказе вашего приложения, предоставляет шаблоны развертывания и многое другое. Например, Kubernetes может легко управлять канареечным развертыванием вашей системы.

Kubernetes предоставляет вам:

  • Обнаружение служб и балансировка нагрузки Kubernetes может раскрыть контейнер, используя DNS-имя или собственный IP-адрес. Если трафик в контейнер высок, Kubernetes может балансировать нагрузку и распределять сетевой трафик, чтобы развертывание было стабильным.
  • Хранение оркестровки Kubernetes позволяет автоматически монтировать систему хранения по вашему выбору, например локальные хранилища, поставщиков общедоступных облаков и т. Д.
  • Автоматическое развертывание и откат Вы можете описать желаемое состояние для ваших развернутых контейнеров с помощью Kubernetes, и он может изменять фактическое состояние на желаемое с контролируемой скоростью. Например, вы можете автоматизировать Kubernetes, чтобы создать новые контейнеры для вашего развертывания, удалить существующие контейнеры и перенести все их ресурсы в новый контейнер.
  • Автоматическая упаковка бункеров Вы предоставляете Kubernetes кластер узлов, который он может использовать для выполнения контейнерных задач. Вы сообщаете Kubernetes, сколько ЦП и памяти (ОЗУ) требуется каждому контейнеру. Kubernetes может устанавливать контейнеры на ваши узлы, чтобы максимально использовать ваши ресурсы.
  • Самовосстановление Kubernetes перезапускает контейнеры, которые терпят неудачу, заменяет контейнеры, уничтожает контейнеры, которые не отвечают на вашу определенную пользователем проверку работоспособности, и не рекламирует их клиентам, пока они не будут готовы к работе.
  • Управление секретами и конфигурациями Kubernetes позволяет хранить конфиденциальную информацию, такую ​​как пароли, токены OAuth и ключи SSH, и управлять ею. Вы можете развертывать и обновлять секреты и конфигурацию приложения, не перестраивая образы контейнеров и не раскрывая секреты в конфигурации стека.

Чем не является Kubernetes

Kubernetes — это не традиционная комплексная система PaaS (платформа как услуга). Поскольку Kubernetes работает на уровне контейнера, а не на уровне оборудования, он предоставляет некоторые общеприменимые функции, общие для предложений PaaS, такие как развертывание, масштабирование, балансировка нагрузки, и позволяет пользователям интегрировать свои решения для ведения журналов, мониторинга и оповещения.Однако Kubernetes не является монолитным, и эти решения по умолчанию являются необязательными и подключаемыми. Kubernetes предоставляет строительные блоки для создания платформ для разработчиков, но сохраняет выбор и гибкость пользователя там, где это важно.

Кубернетес:

  • Не ограничивает типы поддерживаемых приложений. Kubernetes нацелен на поддержку самых разнообразных рабочих нагрузок, включая рабочие нагрузки без отслеживания состояния, с отслеживанием состояния и обработки данных. Если приложение может работать в контейнере, оно должно отлично работать в Kubernetes.
  • Не развертывает исходный код и не создает ваше приложение. Рабочие процессы непрерывной интеграции, доставки и развертывания (CI / CD) определяются культурой и предпочтениями организации, а также техническими требованиями.
  • Не предоставляет сервисы уровня приложения, такие как промежуточное ПО (например, шины сообщений), инфраструктуры обработки данных (например, Spark), базы данных (например, MySQL), кеши, ни кластерные системы хранения (например, Ceph ) как встроенные службы.Такие компоненты могут работать в Kubernetes и / или могут быть доступны приложениям, работающим в Kubernetes, через переносимые механизмы, такие как Open Service Broker.
  • Не требует решений для ведения журнала, мониторинга или оповещения. Он предоставляет некоторые интеграции в качестве доказательства концепции, а также механизмы для сбора и экспорта метрик.
  • Не предоставляет и не предписывает язык / систему конфигурации (например, Jsonnet). Он предоставляет декларативный API, на который могут быть нацелены произвольные формы декларативных спецификаций.
  • Не предоставляет и не принимает какие-либо комплексные системы конфигурации, обслуживания, управления или самовосстановления машины.
  • Кроме того, Kubernetes — это не просто система оркестровки. Фактически, это устраняет необходимость в оркестровке. Техническое определение оркестровки — это выполнение определенного рабочего процесса: сначала выполните A, затем B, затем C. Напротив, Kubernetes включает в себя набор независимых, составляемых процессов управления, которые непрерывно приводят текущее состояние к заданному желаемому состоянию.Неважно, как вы попадете из пункта А в пункт С. Централизованное управление также не требуется. В результате система становится более простой в использовании, более мощной, надежной, отказоустойчивой и расширяемой.

Что дальше

Последнее изменение 23 июля 2021 г., 11:09 PST : Исправлен формат наблюдаемости, чтобы он соответствовал другим элементам (9eb90fddd)

компонентов Kubernetes | Kubernetes

Кластер Kubernetes состоит из компонентов, представляющих плоскость управления, и набора машин, называемых узлами.

При развертывании Kubernetes вы получаете кластер.

Кластер Kubernetes состоит из набора рабочих машин, называемых узлами, которые запускают контейнерные приложения. В каждом кластере есть хотя бы один рабочий узел.

На рабочих узлах размещаются поды, которые компоненты рабочей нагрузки приложения. В плоскость управления управляет работником узлов и модулей в кластере. В производственных средах уровень управления обычно работает на нескольких компьютерах, а кластер обычно запускает несколько узлов, обеспечивая отказоустойчивость и высокая доступность.

В этом документе описаны различные компоненты, которые вам необходимы. полный и рабочий кластер Kubernetes.

Вот схема кластера Kubernetes со всеми связанными вместе компонентами.

Компоненты плоскости управления

Компоненты плоскости управления принимают глобальные решения о кластере (например, планирование), а также обнаруживают события кластера и реагируют на них (например, запускают новый модуль, когда поле реплик развертывания не удовлетворяется).

Компоненты уровня управления можно запускать на любом компьютере в кластере. Однако, для простоты сценарии настройки обычно запускают все компоненты плоскости управления на на той же машине, и не запускайте на ней пользовательские контейнеры. Видеть Создание высокодоступных кластеров с помощью kubeadm для примера настройки уровня управления, который работает на нескольких виртуальных машинах.

кубе-аписервер

Сервер API — это компонент Kubernetes. плоскость управления, которая предоставляет Kubernetes API. Сервер API — это интерфейс для плоскости управления Kubernetes.

Основная реализация сервера API Kubernetes — kube-apiserver. kube-apiserver предназначен для горизонтального масштабирования, то есть масштабируется за счет развертывания большего количества экземпляров. Вы можете запустить несколько экземпляров kube-apiserver и распределить трафик между этими экземплярами.

etcd

Согласованное и высокодоступное хранилище значений ключей, используемое в качестве резервного хранилища Kubernetes для всех данных кластера.

Если ваш кластер Kubernetes использует etcd в качестве резервного хранилища, убедитесь, что у вас есть запасной план для этих данных.

Подробную информацию о etcd можно найти в официальной документации.

куб-планировщик

Компонент плоскости управления, отслеживающий вновь созданные Поды без назначенных node, и выбирает для них узел бежать дальше.

Факторы, принимаемые во внимание при планировании решений, включают: индивидуальные и коллективные требования к ресурсам, аппаратное / программное обеспечение / политика ограничения, характеристики сродства и анти-сродства, локальность данных, взаимодействие между рабочими нагрузками и сроки.

кубе-контроллер-менеджер

Компонент плоскости управления, запускающий процессы контроллера.

Логически каждый контроллер представляет собой отдельный процесс, но для уменьшения сложности все они скомпилированы в один двоичный файл и выполняются в одном процессе.

Некоторые типы этих контроллеров:

  • Контроллер узла: отвечает за то, чтобы замечать и реагировать, когда узлы выходят из строя.
  • Контроллер заданий: отслеживает объекты заданий, которые представляют собой разовые задачи, а затем создает Поды для выполнения этих задач до конца.
  • Контроллер конечных точек: заполняет объект конечных точек (то есть присоединяется к службам и модулям).
  • Контроллеры учетных записей и токенов службы: создание учетных записей по умолчанию и токенов доступа API для новых пространств имен.

облачный контроллер-менеджер

Компонент плоскости управления Kubernetes который включает логику управления, специфичную для облака. Диспетчер облачных контроллеров позволяет связать ваши кластер в API вашего облачного провайдера и разделяет компоненты, которые взаимодействуют с этой облачной платформой из компонентов, которые взаимодействуют только с вашим кластером.

Cloud-controller-manager запускает только контроллеры, относящиеся к вашему облачному провайдеру. Если вы используете Kubernetes в своем собственном офисе или в учебной среде внутри своего собственный ПК, в кластере нет диспетчера облачных контроллеров.

Как и kube-controller-manager, облачный контроллер-менеджер объединяет несколько логически независимые контуры управления в единый двоичный файл, который вы запускаете как единый процесс. Ты можешь масштабировать по горизонтали (запускать более одной копии) для повышения производительности или предотвращения сбоев.

Следующие контроллеры могут иметь зависимости от облачного провайдера:

  • Контроллер узла: для проверки поставщика облака, чтобы определить, был ли узел удален в облаке после того, как он перестает отвечать
  • Контроллер маршрутов: для настройки маршрутов в базовой облачной инфраструктуре
  • Сервисный контроллер: для создания, обновления и удаления балансировщиков нагрузки облачного провайдера

Компоненты узла

Компоненты

Node работают на каждом узле, поддерживая запущенные модули и обеспечивая среду выполнения Kubernetes.

кубелет

Агент, который работает на каждом узле кластера. Он гарантирует, что контейнеры работают в Pod.

Кубелет принимает набор PodSpecs, которые предоставляются через различные механизмы, и гарантирует, что контейнеры, описанные в этих PodSpecs, работают и исправны. Кубелет не управляет контейнерами, которые не были созданы Kubernetes.

кубе-прокси

kube-proxy — это сетевой прокси, работающий на каждом узел в вашем кластере, реализация части Kubernetes Концепция обслуживания.

кубе-прокси поддерживает сетевые правила на узлах. Эти сетевые правила позволяют сети связь с вашими модулями из сетевых сеансов внутри или вне ваш кластер.

kube-proxy использует уровень фильтрации пакетов операционной системы, если он есть и это доступно. В противном случае kube-proxy сам перенаправляет трафик.

Время выполнения контейнера

Среда выполнения контейнера — это программное обеспечение, отвечающее за запуск контейнеров.

Kubernetes поддерживает несколько сред выполнения контейнеров: Docker, контейнерный, CRI-O, и любая реализация Kubernetes CRI (Container Runtime Интерфейс).

Дополнения

аддонов используют ресурсы Kubernetes (DaemonSet, Развертывание и т. Д.) для реализации функций кластера. Поскольку они предоставляют функции уровня кластера, ресурсы с пространством имен for addons принадлежат пространству имен kube-system .

Выбранные дополнения описаны ниже; для расширенного списка доступных дополнений, пожалуйста см. Дополнения.

DNS

В то время как другие надстройки строго не требуются, все кластеры Kubernetes должны иметь кластерный DNS, поскольку многие примеры полагаются на него.

Cluster DNS — это DNS-сервер в дополнение к другим DNS-серверам в вашей среде, который обслуживает записи DNS для служб Kubernetes.

Контейнеры, запущенные Kubernetes, автоматически включают этот DNS-сервер в свои поисковые запросы DNS.

Веб-интерфейс (панель управления)

Dashboard — это веб-интерфейс общего назначения для кластеров Kubernetes. Он позволяет пользователям управлять приложениями, работающими в кластере, а также самим кластером и устранять их неполадки.

Мониторинг ресурсов контейнера

Мониторинг ресурсов контейнера записывает общие метрики временного ряда о контейнерах в центральной базе данных и предоставляет пользовательский интерфейс для просмотра этих данных.

Ведение журнала на уровне кластера

Механизм ведения журнала на уровне кластера отвечает за сохранение журналов контейнеров в центральное хранилище журналов с интерфейсом поиска / просмотра.

Что дальше

Последнее изменение 18 марта 2021 г., 21:10 PST : Обновить контент / en / docs / concepts / overview / components.md (c5e0cc66d)

кубе-прокси | Kubernetes

—add-dir-header

Если true, добавляет каталог файлов в заголовок сообщений журнала

—alsologtostderr

журнал стандартной ошибки, а также файлы

—azure-container-registry-config строка

Путь к файлу, содержащему сведения о конфигурации реестра контейнеров Azure.

— строка адреса привязки По умолчанию: 0.0.0.0

IP-адрес прокси-сервера, на котором будет работать (установлено значение «0.0.0.0» для всех интерфейсов IPv4 и «::» для всех интерфейсов IPv6)

— адрес-привязка-жесткий сбой

Если true, kube-proxy будет рассматривать отказ от привязки к порту как фатальный и завершать работу

—boot-id-file string По умолчанию: «/ proc / sys / kernel / random / boot_id»

Список файлов, разделенных запятыми, для проверки идентификатора загрузки.Используйте первый из существующих.

— уборка

Если правда, очистить iptables и ipvs rules и выйти.

—cloud-provider-gce-l7lb-src-cidrs cidrs По умолчанию: 130.211.0.0/22,35.191.0.0/16

CIDR открыты в брандмауэре GCE для прокси трафика L7 LB и проверок работоспособности

—cloud-provider-gce-lb-src-cidrs cidrs По умолчанию: 130.211.0.0/22 209.85.152.0 / 22 209.85.204.0 / 22,35.191.0.0 / 16

CIDR открыты в брандмауэре GCE для прокси трафика LB LB и проверок работоспособности

— строка кластер-сидр

Диапазон CIDR модулей в кластере. При настройке трафик, отправляемый на IP-адрес кластера служб из-за пределов этого диапазона, будет замаскирован, а трафик, отправленный из модулей на внешний IP-адрес LoadBalancer, будет направлен на соответствующий IP-адрес кластера вместо

— строка конфигурации

Путь к файлу конфигурации.

—config-sync-period duration По умолчанию: 15 мин.

Как часто обновляется конфигурация из apiserver. Должно быть больше 0.

—conntrack-max-per-core int32 По умолчанию: 32768

Максимальное количество подключений NAT для отслеживания на каждое ядро ​​ЦП (0, чтобы оставить ограничение как есть и игнорировать conntrack-min).

—conntrack-min int32 По умолчанию: 131072

Минимальное количество выделяемых записей conntrack, независимо от conntrack-max-per-core (установите conntrack-max-per-core = 0, чтобы оставить ограничение как есть).

—conntrack-tcp-timeout-close-wait duration По умолчанию: 1h0m0s

Тайм-аут NAT для TCP-соединений в состоянии CLOSE_WAIT

—conntrack-tcp-timeout-installed duration По умолчанию: 24h0m0s

Тайм-аут простоя для установленных TCP-соединений (0, чтобы оставить как есть)

—default-not-Ready-допуск-секунды int По умолчанию: 300

Указывает время допуска для notReady: NoExecute, которое по умолчанию добавляется к каждому модулю, который еще не имеет такого допуска.

—default-unreachable-терпимость-секунды int По умолчанию: 300

Указывает время допуска в секундах для недоступности: NoExecute, который добавляется по умолчанию к каждому модулю, который еще не имеет такого допуска.

—detect-local-mode LocalMode

Режим для обнаружения локального трафика

—feature-gates <ключ, разделенный запятыми = True | False 'пары>

Набор пар ключ = значение, которые описывают ворота функций для альфа / экспериментальных функций.Возможные варианты:
APIListChunking = true | false (BETA — default = true)
APIPriorityAndFairness = true | false (BETA — default = true)
APIResponseCompression = true | false (BETA — default = true)
APIServerIdentity = true | false (ALPHA — по умолчанию = false)
AllAlpha = true | false (ALPHA — по умолчанию = false)
AllBeta = true | false (BETA — по умолчанию = false)
AnyVolumeDataSource = true | false (ALPHA — по умолчанию = false)
AppArmor = true | false (BETA — по умолчанию = true)
BalanceAttachedNodeVolumes = true | false (ALPHA — по умолчанию = false)
BoundServiceAccountTokenVolume = true | false (BETA — по умолчанию = true)
CPUManager = true | false (BETA — default = true)
CSIInlineVolume = true | false (BETA — по умолчанию = true)
CSIMigration = true | false (BETA — default = true)
CSIMigrationAWS = true | false (BETA — default = false)
CSIMigrationAzureDisk = true | false (BETA — default = false)
CSIMigrationAzureFile = true | false (BETA — по умолчанию = false)
CSIMigrationGCE = true | false (BETA — default = false)
CSIMi grationOpenStack = true | false (BETA — default = true)
CSIMigrationvSphere = true | false (BETA — default = false)
CSIMigrationvSphereComplete = true | false (BETA — default = false)
CSIServiceAccountToken = true | false (BETA — default = true )
CSIStorageCapacity = true | false (BETA — по умолчанию = true)
CSIVolumeFSGroupPolicy = true | false (BETA — по умолчанию = true)
CSIVolumeHealth = true | false (ALPHA — по умолчанию = false)
ConfigurableFSGroupPolicy = true | false (BETA — по умолчанию = true)
ControllerManagerLeaderMigration = true | false (ALPHA — по умолчанию = false)
CronJobControllerV2 = true | false (BETA — по умолчанию = true)
CustomCPUCFSQuotaPeriod = true | false (ALPHA — по умолчанию = false)
DaemonSetUpdateSurge = true | — default = false)
DefaultPodTopologySpread = true | false (BETA — default = true)
DevicePlugins = true | false (BETA — default = true)
DisableAcceleratorUsageMetrics = true | false (BETA — default = true)
DownwardAPIHugePages = true | false (БЕТА — по умолчанию = false)
Dyna micKubeletConfig = true | false (BETA — по умолчанию = true)
EfficientWatchResuming = true | false (BETA — default = true)
EndpointSliceProxying = true | false (BETA — default = true)
EndpointSliceTerminatingCondition = true | false (ALPHA — default = false )
EphemeralContainers = true | false (ALPHA — по умолчанию = false)
ExpandCSIVolumes = true | false (BETA — по умолчанию = true)
ExpandInUsePersistentVolumes = true | false (BETA — по умолчанию = true)
ExpandPersistentVolumes = true | false (BETA — по умолчанию = true)
ExperimentalHostUserNamespaceDefaulting = true | false (BETA — default = false)
GenericEphemeralVolume = true | false (BETA — default = true)
GracefulNodeShutdown = true | false (BETA — default = true)
HPAContainerMetrics — по умолчанию = false)
HPAScaleToZero = true | false (ALPHA — по умолчанию = false)
HugePageStorageMediumSize = true | false (BETA — по умолчанию = true)
IPv6DualStack = true | false (BETA — по умолчанию = true)
InTreePluginAWSUnregister = false (АЛЬФА — по умолчанию = false )
InTreePluginAzureDiskUnregister = true | false (ALPHA — по умолчанию = false)
InTreePluginAzureFileUnregister = true | false (ALPHA — по умолчанию = false)
InTreePluginGCEUnregister = true | false (ALPHA — по умолчанию = falsePree — | = false)
InTreePluginvSphereUnregister = true | false (ALPHA — по умолчанию = false)
IndexedJob = true | false (ALPHA — по умолчанию = false)
IngressClassNamespacedParams = true | false (ALPHA — по умолчанию = false)
KubeletCredentialProviders = ALPHA | false — по умолчанию = false)
KubeletPodResources = true | false (BETA — по умолчанию = true)
KubeletPodResourcesGetAllocatable = true | false (ALPHA — по умолчанию = false)
LocalStorageCapacityIsolation = true | false (BETA — default = true)
LocalStorageCapacity = true (ALPHA — по умолчанию = false)
LogarithmicScaleDown = true | false (ALPHA — по умолчанию = false)
MemoryManager = true | false (ALPHA — по умолчанию = false)
MixedProtocolLBService = true | false (AL PHA — по умолчанию = false)
NamespaceDefaultLabelName = true | false (BETA — default = true)
NetworkPolicyEndPort = true | false (ALPHA — default = false)
NonPreemptingPriority = true | false (BETA — default = true)
PodAffinityNamespace | false (ALPHA — по умолчанию = false)
PodDeletionCost = true | false (ALPHA — по умолчанию = false)
PodOverhead = true | false (BETA — по умолчанию = true)
PreferNominatedNode = true | false (ALPHA — по умолчанию = false)
ProbeTerminationGracePeriod = true | false (ALPHA — по умолчанию = false)
ProcMountType = true | false (ALPHA — по умолчанию = false)
QOSReserved = true | false (ALPHA — по умолчанию = false)
RemainingItemCount = true | false (BETA — по умолчанию = true)
RemoveSelfLink = true | false (БЕТА — по умолчанию = true)
RotateKubeletServerCertificate = true | false (БЕТА — по умолчанию = true)
ServerSideApply = true | false (БЕТА — по умолчанию = true)
ServiceInternalTrafficPolicy = true | false (ALPHA — по умолчанию = false )
ServiceLBNodePortControl = true | false (АЛЬФА — по умолчанию = false) 90 466 ServiceLoadBalancerClass = true | false (ALPHA — по умолчанию = false)
ServiceTopology = true | false (ALPHA — по умолчанию = false)
SetHostnameAsFQDN = true | false (BETA — по умолчанию = true)
SizeMemoryBackedVolumes = true | false (ALPHA — по умолчанию = false)
StorageVersionAPI = true | false (ALPHA — по умолчанию = false)
StorageVersionHash = true | false (BETA — по умолчанию = true)
SuspendJob = true | false (ALPHA — по умолчанию = false)
TTLAfterFinished = true | false (BETA — по умолчанию = true)
TopologyAwareHints = true | false (ALPHA — по умолчанию = false)
TopologyManager = true | false (BETA — default = true)
ValidateProxyRedirects = true | false (BETA — default = true)
VolumeCapacityPriority = true | false ( ALPHA — по умолчанию = false)
WarningHeaders = true | false (BETA — default = true)
WinDSR = true | false (ALPHA — default = false)
WinOverlay = true | false (BETA — default = true)
WindowsEndpointSliceProxying = true | false (БЕТА — по умолчанию = true)

—healthz-bind-address ipport По умолчанию: 0.0.0.0: 10256

IP-адрес с портом для обслуживания сервера проверки работоспособности (установлено значение «0.0.0.0:10256» для всех интерфейсов IPv4 и «[::]: 10256» для всех интерфейсов IPv6). Установите пустой, чтобы отключить.

-h, —help

справка для kube-proxy

— строка переопределения имени хоста

Если не пусто, эта строка будет использоваться в качестве идентификатора вместо фактического имени хоста.

—iptables-masquerade-bit int32 По умолчанию: 14

При использовании чистого прокси iptables бит пространства fwmark для пометки пакетов, требующих SNAT. Должен быть в диапазоне [0, 31].

—iptables-min-sync-period duration По умолчанию: 1 с

Минимальный интервал, в течение которого правила iptables могут обновляться при изменении конечных точек и служб (например, «5 с», «1 м.», «2 ч. 32 м.»).

—iptables-sync-period duration По умолчанию: 30 с

Максимальный интервал обновления правил iptables (например, 5 с, 1 м, 2 ч 32 м). Должно быть больше 0.

—ipvs-exclude-cidrs строки

Список CIDR, разделенных запятыми, которые прокси-сервер ipvs не должен трогать при очистке правил IPVS.

—ipvs-min-sync-period duration

Минимальный интервал, в течение которого правила ipvs могут обновляться при изменении конечных точек и служб (например,г. ‘5с’, ‘1м’, ‘2ч32м’).

—ipvs-scheduler строка

Тип планировщика ipvs, когда режим прокси — ipvs

—ipvs-strict-arp

Включите строгий ARP, установив arp_ignore на 1 и arp_announce на 2

—ipvs-sync-period duration По умолчанию: 30 с

Максимальный интервал обновления правил ipvs (например,г. ‘5с’, ‘1м’, ‘2ч32м’). Должно быть больше 0.

—ipvs-tcp-timeout duration

Тайм-аут для незанятых TCP-соединений IPVS, 0, чтобы оставить как есть. (например, «5 с», «1 м.», «2 ч. 32 м.»).

—ipvs-tcpfin-timeout duration

Тайм-аут для TCP-соединений IPVS после получения пакета FIN, 0, чтобы оставить как есть. (например, «5 с», «1 м.», «2 ч. 32 м.»).

—ipvs-udp-timeout duration

Тайм-аут для пакетов IPVS UDP, 0, чтобы оставить как есть.(например, «5 с», «1 м.», «2 ч. 32 м.»).

—kube-api-burst int32 По умолчанию: 10

Пакет для использования во время разговора с kubernetes apiserver

—kube-api-content-type string По умолчанию: «application / vnd.kubernetes.protobuf»

Тип содержимого запросов, отправленных apiserver.

—kube-api-qps float По умолчанию: 5

QPS для использования во время разговора с kubernetes apiserver

—kubeconfig строка

Путь к файлу kubeconfig с информацией об авторизации (расположение мастера может быть изменено с помощью флага мастера).

—log-backtrace-at По умолчанию: 0

при регистрации попаданий в строковый файл: N, выдача трассировки стека

— строка каталога-журнала

Если не пусто, записывать файлы журнала в этот каталог

— строка файла журнала

Если не пусто, используйте этот файл журнала

—log-file-max-size uint По умолчанию: 1800

Определяет максимальный размер файла журнала, до которого может увеличиваться.Единица измерения — мегабайты. Если значение равно 0, максимальный размер файла не ограничен.

—log-flush-frequency duration По умолчанию: 5 с

Максимальное количество секунд между сбросами журнала

—logtostderr По умолчанию: true

Журнал стандартной ошибки вместо файлов

—machine-id-file string По умолчанию: «/ etc / machine-id, / var / lib / dbus / machine-id»

Разделенный запятыми список файлов для проверки идентификатора машины.Используйте первый из существующих.

— маскарад-все

При использовании чистого прокси iptables, SNAT весь трафик, отправляемый через IP-адреса сервисного кластера (обычно это не требуется)

— главная струна

Адрес сервера API Kubernetes (отменяет любое значение в kubeconfig)

—metrics-bind-address ipport По умолчанию: 127.0.0.1:10249

IP-адрес с портом для обслуживания сервера метрик (установлен на ‘0.0.0.0: 10249 ‘для всех интерфейсов IPv4 и’ [::]: 10249 ‘для всех интерфейсов IPv6). Установите пустой, чтобы отключить.

— строки адресов узлов

Строковый фрагмент значений, который задает адреса, используемые для NodePorts. Значения могут быть действительными блоками IP (например, 1.2.3.0/24, 1.2.3.4/32). Срез пустой строки по умолчанию ([]) означает использование всех локальных адресов.

— один выход

Если true, записывать журналы только с их собственным уровнем серьезности (а также записывать на каждый более низкий уровень серьезности)

—oom-score-adj int32 По умолчанию: -999

Значение oom-score-adj для процесса kube-proxy.Значения должны находиться в диапазоне [-1000, 1000]

— профиль

Если true, включает профилирование через веб-интерфейс в обработчике / debug / pprof.

— прокси-режим ProxyMode

Какой режим прокси использовать: «пользовательское пространство» (более раннее), «iptables» (более быстрое), «ipvs» или «ядерное пространство» (Windows). Если пусто, используйте лучший из доступных прокси (в настоящее время iptables). Если выбран прокси iptables, независимо от того, каким образом, но версии ядра системы или iptables недостаточны, это всегда возвращается к прокси пользовательского пространства.

— диапазон-прокси-портов диапазон-портов

Диапазон портов хоста (beginPort-endPort, одиночный порт или beginPort + offset, включительно), которые могут использоваться для проксирования служебного трафика. Если (не указано, 0 или 0-0), то порты будут выбраны случайным образом.

—show-hidden-metrics-for-version строка

Предыдущая версия, для которой вы хотите показать скрытые метрики. Имеет значение только предыдущая дополнительная версия, другие значения не допускаются.Формат: <основной>. <Второстепенный>, например: «1.16». Цель этого формата — убедиться, что у вас есть возможность заметить, скрывает ли следующий выпуск дополнительные метрики, вместо того, чтобы удивляться, когда они будут окончательно удалены в выпуске после этого.

—скип-заголовки

Если true, избегать префиксов заголовков в сообщениях журнала

— заголовки пропуска журнала

Если true, избегать заголовков при открытии файлов журнала

—stderrthreshold int По умолчанию: 2

журналов на уровне или выше этого порога перейти к stderr

—udp-timeout duration По умолчанию: 250 мс

Как долго бездействующее UDP-соединение будет оставаться открытым (например,г. «250 мс», «2 с»). Должно быть больше 0. Применимо только для proxy-mode = userspace

-v, —v инт

номер для уровня детализации журнала

—version version [= true]

Распечатать информацию о версии и выйти

—vmodule <настройки 'pattern = N', разделенные запятыми>

разделенный запятыми список шаблонов = N настроек для ведения журнала с фильтрацией файлов

— записать конфигурацию в строку

Если установлено, запишите значения конфигурации по умолчанию в этот файл и выйдите.

API Kubernetes | Kubernetes

API Kubernetes позволяет запрашивать и управлять состоянием объектов в Kubernetes. Ядром плоскости управления Kubernetes является сервер API и предоставляемый им HTTP API. Пользователи, различные части вашего кластера и внешние компоненты взаимодействуют друг с другом через сервер API.

Ядро плоскости управления Kubernetes это сервер API. Сервер API предоставляет HTTP API, который позволяет конечным пользователям, различным частям вашего кластера и внешние компоненты взаимодействуют друг с другом.

API Kubernetes позволяет запрашивать и управлять состоянием объектов API в Kubernetes. (например: модули, пространства имен, карты конфигурации и события).

Большинство операций можно выполнить через интерфейс командной строки kubectl или другой инструменты командной строки, такие как kubeadm, которые, в свою очередь, используют API. Однако вы также можете получить доступ к API напрямую, используя вызовы REST.

Рассмотрите возможность использования одной из клиентских библиотек. если вы пишете приложение с использованием Kubernetes API.

Спецификация OpenAPI

Полная информация об API задокументирована с использованием OpenAPI.

Сервер API Kubernetes обслуживает спецификацию OpenAPI через конечную точку / openapi / v2 . Вы можете запросить формат ответа, используя следующие заголовки запроса:

Допустимые значения заголовка запроса для запросов OpenAPI v2
Заголовок Возможные значения Примечания
Принятие-кодирование gzip не поставляет этот заголовок также приемлемо
Принять заявка / ком[email protected]+protobuf в основном для использования внутри кластера
приложение / json по умолчанию
* обслуживает приложение / json

Kubernetes реализует альтернативный формат сериализации на основе Protobuf, который в первую очередь предназначен для внутрикластерного взаимодействия.За дополнительной информацией об этом формате см. предложение по дизайну сериализации Kubernetes Protobuf и Файлы языка определения интерфейса (IDL) для каждой схемы, расположенной в Go пакеты, определяющие объекты API.

Стойкость

Kubernetes сохраняет сериализованное состояние объектов, записывая их в и т. д.

Группы API и управление версиями

Чтобы упростить удаление полей или реструктуризацию представлений ресурсов, Kubernetes поддерживает несколько версий API, каждая из которых имеет свой путь к API, например как / api / v1 или / apis / rbac.authorization.k8s.io/v1alpha1 .

Управление версиями выполняется на уровне API, а не на уровне ресурса или поля. чтобы API-интерфейс представлял четкое и последовательное представление о системных ресурсах. и поведение, а также для обеспечения возможности контроля доступа к отслужившим и / или экспериментальные API.

Чтобы упростить развитие и расширение своего API, Kubernetes реализует Группы API, которые могут быть включен или отключен.

ресурсов API различаются по группе API, типу ресурса, пространству имен. (для ресурсов с именами) и name.Сервер API обрабатывает преобразование между Версии API прозрачно: все разные версии на самом деле являются представлениями одних и тех же сохраняемых данных. Сервер API может обслуживать те же базовые данные через несколько версий API.

Например, предположим, что существует две версии API, v1 и v1beta1 , для одного и того же ресурс. Если вы изначально создали объект, используя версию v1beta1 его API, вы можете позже прочитать, обновить или удалить этот объект с использованием версии API v1beta1 или v1 .

Изменения API

Любая успешная система должна расти и меняться по мере появления новых вариантов использования или изменения существующих. Поэтому Kubernetes разработал Kubernetes API, который постоянно меняется и растет. Проект Kubernetes направлен на то, чтобы , а не нарушали совместимость с существующими клиентами, и поддерживать это совместимость в течение длительного времени, чтобы другие проекты имели возможность адаптироваться.

В общем, новые ресурсы API и новые поля ресурсов можно добавлять часто и часто.Удаление ресурсов или полей требует соблюдения Политика прекращения поддержки API.

Kubernetes обязуется поддерживать совместимость с официальными API Kubernetes. как только они станут общедоступными (GA), обычно это версия API v1 . Кроме того, Kubernetes сохраняет совместимость даже с beta версиями API, где это возможно: если вы применяете бета-версию API, вы можете продолжать взаимодействовать со своим кластером, используя этот API, даже после того, как функция станет стабильной.

Примечание: Хотя Kubernetes также стремится поддерживать совместимость с альфа-версиями API , в некоторых обстоятельства это невозможно. Если вы используете какие-либо альфа-версии API, ознакомьтесь с примечаниями к выпуску для Kubernetes при обновлении кластера, если API изменился.

См. Справочник по версиям API для получения дополнительных сведений об определениях уровня версии API.

Расширение API

API Kubernetes можно расширить одним из двух способов:

  1. Пользовательские ресурсы позволяют декларативно определить, как сервер API должен предоставлять выбранный вами ресурс API.
  2. Вы также можете расширить Kubernetes API, реализовав слой агрегации.

Что дальше

Последнее изменение 8 декабря 2020 г., 13:07 PST : Сделать формулировку обзора более соответствующей описанию (9c38

)

компонентов Kubernetes | Kubernetes

Редактировать эту страницу

Кластер Kubernetes состоит из компонентов, представляющих плоскость управления, и набора машин, называемых узлами.

При развертывании Kubernetes вы получаете кластер.

Кластер Kubernetes состоит из набора рабочих машин, называемых узлами. Узел — это рабочая машина в Kubernetes. , которые запускают контейнерные приложения. В каждом кластере есть хотя бы один рабочий узел.

Рабочие узлы, на которых размещается PodsA Pod, представляют собой набор запущенных контейнеров в вашем кластере. которые компоненты рабочей нагрузки приложения. В Уровень управления Уровень оркестровки контейнеров, который предоставляет API и интерфейсы для определения, развертывания и управления жизненным циклом контейнеров.управляет работником узлов и модулей в кластере. В производственных средах уровень управления обычно работает на нескольких компьютерах, а кластер обычно запускает несколько узлов, обеспечивая отказоустойчивость и высокая доступность.

В этом документе описаны различные компоненты, которые вам необходимы. полный и рабочий кластер Kubernetes.

Вот схема кластера Kubernetes со всеми связанными вместе компонентами.

Компоненты плоскости управления

Компоненты плоскости управления принимают глобальные решения о кластере (например, планирование), а также обнаруживают события кластера и реагируют на них (например, запуск нового pod-модуля Pod представляет собой набор запущенных контейнеров в вашем кластере.когда не выполняется поле реплик развертывания ).

Компоненты уровня управления можно запускать на любом компьютере в кластере. Однако, для простоты сценарии настройки обычно запускают все компоненты плоскости управления на на той же машине, и не запускайте на ней пользовательские контейнеры. Видеть Создание кластеров высокой доступности для примера установки с несколькими главными виртуальными машинами.

кубе-аписервер

Сервер API — это компонент Kubernetes. Уровень управления Уровень оркестровки контейнеров, который предоставляет API и интерфейсы для определения, развертывания и управления жизненным циклом контейнеров.который предоставляет Kubernetes API. Сервер API — это интерфейс для плоскости управления Kubernetes.

Основная реализация сервера API Kubernetes — kube-apiserver. kube-apiserver предназначен для горизонтального масштабирования, то есть масштабируется за счет развертывания большего количества экземпляров. Вы можете запустить несколько экземпляров kube-apiserver и распределить трафик между этими экземплярами.

etcd

Согласованное и высокодоступное хранилище значений ключей, используемое в качестве резервного хранилища Kubernetes для всех данных кластера.

Если ваш кластер Kubernetes использует etcd в качестве резервного хранилища, убедитесь, что у вас есть запасной план для этих данных.

Подробную информацию о etcd можно найти в официальной документации.

куб-планировщик

Компонент плоскости управления, отслеживающий вновь созданные PodsA Pod представляет собой набор работающих контейнеров в вашем кластере. без назначенного nodeA node — это рабочая машина в Kubernetes. , и выбирает для них узел бежать дальше.

Факторы, принимаемые во внимание при планировании решений, включают: индивидуальные и коллективные требования к ресурсам, аппаратное / программное обеспечение / политика ограничения, характеристики сродства и анти-сродства, локальность данных, взаимодействие между рабочими нагрузками и сроки.

кубе-контроллер-менеджер

Компонент плоскости управления, который запускает контроллер Цикл управления, который наблюдает за общим состоянием кластера через apiserver и вносит изменения, пытаясь переместить текущее состояние в желаемое состояние. процессы.

Логически, каждый контроллер — контур управления, который наблюдает за общим состоянием кластера через apiserver и вносит изменения, пытаясь переместить текущее состояние в желаемое. — это отдельный процесс, но для уменьшения сложности все они скомпилированы в один двоичный файл и выполняются в одном процессе.

Эти контроллеры включают:

  • Контроллер узла: отвечает за то, чтобы замечать и реагировать, когда узлы выходят из строя.
  • Контроллер репликации: отвечает за поддержание правильного количества модулей для каждой репликации объект контроллера в системе.
  • Контроллер конечных точек: заполняет объект конечных точек (то есть присоединяется к службам и модулям).
  • Контроллеры учетных записей и токенов службы: создание учетных записей по умолчанию и токенов доступа API для новых пространств имен.

облачный контроллер-менеджер

Плоскость управления Kubernetes Уровень оркестровки контейнеров, который предоставляет API и интерфейсы для определения, развертывания и управления жизненным циклом контейнеров. компонент который включает логику управления, специфичную для облака. Диспетчер облачных контроллеров позволяет связать ваши кластер в API вашего облачного провайдера и разделяет компоненты, которые взаимодействуют с этой облачной платформой из компонентов, которые просто взаимодействуют с вашим кластером.

Cloud-controller-manager запускает только контроллеры, относящиеся к вашему облачному провайдеру.Если вы используете Kubernetes в своем собственном офисе или в учебной среде внутри своего собственный ПК, в кластере нет диспетчера облачных контроллеров.

Как и kube-controller-manager, облачный контроллер-менеджер объединяет несколько логически независимые контуры управления в единый двоичный файл, который вы запускаете как единый процесс. Ты можешь масштабировать по горизонтали (запускать более одной копии) для повышения производительности или предотвращения сбоев.

Следующие контроллеры могут иметь зависимости от облачного провайдера:

  • Контроллер узла: для проверки поставщика облака, чтобы определить, был ли узел удален в облаке после того, как он перестает отвечать
  • Контроллер маршрутов: для настройки маршрутов в базовой облачной инфраструктуре
  • Сервисный контроллер: для создания, обновления и удаления балансировщиков нагрузки облачного провайдера

Компоненты узла

Компоненты

Node работают на каждом узле, поддерживая запущенные модули и обеспечивая среду выполнения Kubernetes.

кубелет

Агент, который запускается на каждом узле Узел является рабочей машиной в Kubernetes. в кластере. Он гарантирует, что контейнеры — это легкий и переносимый исполняемый образ, содержащий программное обеспечение и все его зависимости. запущены в PodA Pod представляют собой набор запущенных контейнеров в вашем кластере. .

Кубелет принимает набор PodSpecs, которые предоставляются через различные механизмы, и гарантирует, что контейнеры, описанные в этих PodSpecs, работают и исправны.Kubelet не управляет контейнерами, которые не были созданы Kubernetes.

кубе-прокси

kube-proxy — это сетевой прокси, работающий на каждом nodeA node — это рабочая машина в Kubernetes. в вашем кластере, реализация части Kubernetes Сервис — способ представить приложение, работающее на наборе модулей, в качестве сетевой службы. концепция.

кубе-прокси поддерживает сетевые правила на узлах. Эти сетевые правила позволяют сети связь с вашими модулями из сетевых сеансов внутри или вне ваш кластер.

kube-proxy использует уровень фильтрации пакетов операционной системы, если он есть и это доступно. В противном случае kube-proxy сам перенаправляет трафик.

Время выполнения контейнера

Среда выполнения контейнера — это программное обеспечение, отвечающее за запуск контейнеров.

Kubernetes поддерживает несколько сред выполнения контейнеров: DockerDocker — это программная технология, обеспечивающая виртуализацию на уровне операционной системы, также известную как контейнеры. , containerd — среда выполнения контейнера с упором на простоту, надежность и переносимость. , Облегченная среда выполнения контейнера CRI-OA специально для Kubernetes , и любая реализация Kubernetes CRI (Container Runtime Интерфейс).

Дополнения

Надстройки

используют ресурсы Kubernetes (DaemonSetEnsures, что копия пода выполняется на наборе узлов в кластере. , Развертывание Управляет реплицированным приложением в вашем кластере. , так далее) для реализации функций кластера. Поскольку они предоставляют функции уровня кластера, ресурсы с пространством имен for addons принадлежат пространству имен kube-system .

Выбранные дополнения описаны ниже; для расширенного списка доступных дополнений, пожалуйста см. Дополнения.

DNS

В то время как другие надстройки строго не требуются, все кластеры Kubernetes должны иметь кластерный DNS, поскольку многие примеры полагаются на него.

Cluster DNS — это DNS-сервер в дополнение к другим DNS-серверам в вашей среде, который обслуживает записи DNS для служб Kubernetes.

Контейнеры, запущенные Kubernetes, автоматически включают этот DNS-сервер в свои поисковые запросы DNS.

Веб-интерфейс (панель управления)

Dashboard — это веб-интерфейс общего назначения для кластеров Kubernetes. Он позволяет пользователям управлять приложениями, работающими в кластере, а также самим кластером и устранять их неполадки.

Мониторинг ресурсов контейнера

Мониторинг ресурсов контейнера записывает общие метрики временного ряда о контейнерах в центральной базе данных и предоставляет пользовательский интерфейс для просмотра этих данных.

Ведение журнала на уровне кластера

Механизм ведения журнала на уровне кластера отвечает за сохранение журналов контейнеров в центральное хранилище журналов с интерфейсом поиска / просмотра.

Что дальше

aquasecurity / kube-hunter: поиск слабых мест в кластерах Kubernetes

kube-hunter ищет слабые места в безопасности в кластерах Kubernetes. Инструмент был разработан для повышения осведомленности и видимости проблем безопасности в средах Kubernetes. Вам НЕ следует запускать kube-hunter на кластере Kubernetes, которым вы не владеете!

Run kube-hunter : kube-hunter доступен как контейнер (aquasec / kube-hunter), и мы также предлагаем веб-сайт по адресу kube-hunter.aquasec.com, где вы можете зарегистрироваться онлайн, чтобы получить токен, позволяющий вам чтобы увидеть и поделиться результатами в Интернете. Вы также можете запустить код Python самостоятельно, как описано ниже.

Изучение уязвимостей : База знаний kube-hunter включает статьи об обнаруживаемых уязвимостях и проблемах.Когда kube-hunter сообщает о проблеме, он показывает свой VID (идентификатор уязвимости), чтобы вы могли найти его в базе знаний по адресу https://aquasecurity.github.io/kube-hunter/

.

Внесите вклад : Мы приветствуем вклад, особенно новые модули Hunter, которые выполняют дополнительные тесты. Если вы хотите разработать свои модули, прочтите Руководство по разработке вашего первого модуля kube-hunter.

Охота

Где бежать кубе-охотник?

Есть три разных способа запустить kube-hunter, каждый из которых предлагает свой подход к обнаружению слабых мест в вашем кластере:

Запустите kube-hunter на любом компьютере (включая ноутбук), выберите «Удаленное сканирование» и укажите IP-адрес или доменное имя вашего кластера Kubernetes.Это даст вам возможность взглянуть на вашу настройку Kubernetes глазами злоумышленников.

Вы можете запустить kube-hunter непосредственно на машине в кластере и выбрать опцию для проверки всех локальных сетевых интерфейсов.

Вы также можете запустить kube-hunter в контейнере внутри кластера. Это показывает, насколько уязвимым будет ваш кластер, если один из ваших модулей приложений будет скомпрометирован (например, из-за уязвимости программного обеспечения). ( --pod флаг )

Параметры сканирования

Сначала проверьте эти предварительные требования .

По умолчанию kube-hunter откроет интерактивный сеанс, в котором вы сможете выбрать один из следующих вариантов сканирования. Вы также можете указать параметр сканирования вручную из командной строки. Это ваши варианты:

  1. Удаленное сканирование

Чтобы указать удаленные машины для поиска, выберите опцию 1 или используйте опцию --remote . Пример: kube-hunter --remote some.node.com

  1. Сканирование интерфейса

Чтобы указать сканирование интерфейса, вы можете использовать параметр --interface (при этом будут сканироваться все сетевые интерфейсы устройства).Пример: kube-hunter - интерфейс

  1. Сетевое сканирование

Чтобы указать конкретный CIDR для сканирования, используйте параметр --cidr . Пример: кубе-охотник --cidr 192.168.0.0/24

  1. Автообнаружение узла Kubernetes

Установите флаг --k8s-auto-discover-nodes , чтобы запросить Kubernetes для всех узлов в кластере, а затем попытаться просканировать их все. По умолчанию он будет использовать конфигурацию кластера для подключения к Kubernetes API.Если вы хотите использовать явный файл kubeconfig, установите --kubeconfig / location / of / kubeconfig / file .

Также обратите внимание, что это всегда выполняется при использовании режима --pod .

Аутентификация

Чтобы имитировать злоумышленника на ранних стадиях, kube-hunter не требует аутентификации для охоты.

  • Impersonate — вы можете предоставить kube-hunter конкретный токен учетной записи службы для использования при поиске, вручную передав токен носителя JWT секрета учетной записи службы с флагом --service-account-token .

    Пример:

     $ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni ... 
  • При запуске с флагом --pod kube-hunter использует токен учетной записи службы, установленный внутри модуля, для аутентификации в службах, которые он находит во время охоты.

    • , если указано, --service-account-token Флаг имеет приоритет при работе в качестве пода

Активная охота

Активная охота — это вариант, при котором kube-hunter будет использовать обнаруженные уязвимости для дальнейшего изучения.Основное различие между обычным и активным поиском состоит в том, что нормальный поиск никогда не изменит состояние кластера, в то время как активный поиск потенциально может выполнять операции изменения состояния в кластере, , что может нанести вред .

По умолчанию kube-hunter не ведет активную охоту. Для активного поиска кластера используйте флаг --active . Пример: kube-hunter --remote some.domain.com --active

Перечень тестов

Вы можете увидеть список тестов с опцией --list : Пример: кубе-охотник - список

Чтобы просмотреть как активные, так и пассивные тесты охоты: kube-hunter --list --активный

Сопоставление узлов

Чтобы увидеть только отображение вашей сети узлов, запустите с опцией --mapping .Пример: кубе-охотник --cidr 192.168.0.0/24 - отображение Это выведет все узлы Kubernetes, которые нашел kube-hunter.

Выход

Для управления ведением журнала можно указать уровень журнала с помощью параметра --log . Пример: kube-hunter --active --log ПРЕДУПРЕЖДЕНИЕ Доступные уровни журнала:

  • ОТЛАДКА
  • ИНФОРМАЦИЯ (по умолчанию)
  • ПРЕДУПРЕЖДЕНИЕ

Диспетчерская

По умолчанию отчет будет отправлен на stdout , но вы можете указать другие методы, используя параметр --dispatch .Пример: kube-hunter --report json --dispatch http Доступные способы отправки:

  • stdout (по умолчанию)
  • http (для настройки задайте следующие переменные окружения 🙂
    • KUBEHUNTER_HTTP_DISPATCH_URL (по умолчанию: https: // localhost)
    • KUBEHUNTER_HTTP_DISPATCH_METHOD (по умолчанию: POST)

Расширенное использование

Быстрое сканирование в Azure

При запуске как пода в среде Azure или AWS kube-hunter будет извлекать подсети из службы метаданных экземпляра.Естественно, из-за этого процесс открытия занимает больше времени. Чтобы жестко ограничить сканирование подсети до /24 CIDR, используйте параметр --quick .

Развертывание

Есть три метода развертывания kube-hunter:

на машине

Вы можете запустить kube-hunter прямо на вашей машине.

Предварительные требования

Вам потребуется установить:

Установить с выступом

Установить:

Пробег:

Запуск из исходников

Клонировать репозиторий:

  git clone https: // github.com / aquasecurity / kube-hunter.git
  

Установить зависимости модуля. (Вы можете предпочесть сделать это в виртуальной среде)

  cd ./kube-hunter
pip install -r requirements.txt
  

Пробег:

Если вы хотите использовать pyinstaller / py2exe, вам необходимо сначала запустить скрипт install_imports.py.

Контейнер

Aqua Security поддерживает контейнерную версию kube-hunter по адресу aquasec / kube-hunter . Этот контейнер включает в себя этот исходный код, а также дополнительный плагин отчетов (с закрытым исходным кодом) для загрузки результатов в отчет, который можно просмотреть на kube-hunter.aquasec.com. Обратите внимание, что запуск контейнера aquasec / kube-hunter и загрузка данных отчетов регулируются дополнительными условиями.

Dockerfile в этом репозитории позволяет создавать контейнерную версию без подключаемого модуля отчетов.

Если вы запустите контейнер kube-hunter с хост-сетью, он сможет исследовать все интерфейсы на хосте:

docker run -it --rm - сетевой хост aquasec / kube-hunter

Примечание для Docker для Mac / Windows: Имейте в виду, что «хост» для Docker для Mac или Windows — это виртуальная машина, внутри которой Docker запускает контейнеры.Следовательно, указание --network host позволяет kube-hunter получить доступ к сетевым интерфейсам этой виртуальной машины, а не вашего компьютера. По умолчанию kube-hunter работает в интерактивном режиме. Вы также можете указать вариант сканирования с параметрами, описанными выше, например

docker run --rm aquasec / kube-hunter --cidr 192.168.0.0/24

Стручок

Этот параметр позволяет узнать, что запускающий вредоносный контейнер может делать / обнаруживать в вашем кластере. Это дает представление о том, что мог бы сделать злоумышленник, если бы он смог скомпрометировать модуль, возможно, из-за уязвимости программного обеспечения.Это может выявить значительно больше уязвимостей.

Пример файла job.yaml определяет задание, которое будет запускать kube-hunter в модуле с использованием настроек доступа Kubernetes по умолчанию. (Вы можете изменить это определение, например, для работы от имени пользователя без полномочий root или для работы в другом пространстве имен.)

  • Запустите задание с помощью команды kubectl create -f ./job.yaml
  • Найдите имя модуля с помощью kubectl describe job kube-hunter
  • Просмотр результатов теста с журналами kubectl <имя модуля>

Вклад

Чтобы ознакомиться с инструкциями по взносам, нажмите здесь

Лицензия

Этот репозиторий доступен по лицензии Apache License 2.0.

Управление надстройкой kube-proxy — Amazon EKS

Kube-proxy поддерживает сетевые правила на каждом узле Amazon EC2. Это позволяет сети связь с вашими капсулами. Kube-proxy не развернут на узлах Fargate. Для большего информацию см. kube-proxy в документации Kubernetes.

Версия kube-proxy , развернутая на ваших узлах, имеет те же основные, второстепенные и версия исправления, которая была развернута с версией платформы, которая была актуальной для Версия Kubernetes, которую вы изначально развернули вместе со своим кластером.За дополнительной информацией, видеть Версии платформы Amazon EKS.

Версия Kubernetes 1,21 1.20 1,19 1,18 1,17 1,16
кубе-прокси 1.21.2-эксбуилд.2 1.20.4-эксбуилд.2 1.19.6-эксбуилд.2 1.18.8-эксбуилд.1 1.17.9-эксбуилд.1 1.16.13-эксбилд.1

Если у вас есть кластер 1.18 или новее, в который вы не добавили kube-proxy Надстройка Amazon EKS, вы можете добавить ее, используя процедуру, описанную в разделе Добавление kube-proxy Amazon EKS. добавить.Если вы создали кластер 1.18 или новее с помощью Консоли управления AWS после 3 мая 2021 г. надстройка kube-proxy Amazon EKS уже на вашем кластере. Если вы создали кластер 1.18 или новее с помощью любого другого инструмента, и хочу используйте надстройку kube-proxy Amazon EKS, затем вы должны добавить ее в свой кластер сами.

Если вы добавили надстройку kube-proxy Amazon EKS в свой кластер 1.18 или более поздней версии, вы можете управлять им, используя процедуры, описанные в разделе «Обновление kube-proxy». Надстройка Amazon EKS и удаление kube-proxy Разделы надстроек Amazon EKS. Для получения дополнительной информации о Надстройки Amazon EKS, см. Надстройки Amazon EKS.

Если вы не добавили надстройку kube-proxy Amazon EKS, kube-proxy Надстройка все еще работает в вашем кластере. Вы можете обновить вручную надстройка kube-proxy , используя процедуру, описанную в разделе «Обновление надстройки kube-proxy» вручную раздел.

Добавление

kube-proxy Amazon EKS добавить

Выберите вкладку с названием инструмента, который вы хотите использовать для добавления kube-proxy Надстройка Amazon EKS для вашего кластера с.

eksctl

Добавьте надстройку kube-proxy Amazon EKS с помощью следующей команды. Заменить my-cluster (включая <> ) на имя вашего кластер.

   eksctl create addon --name  kube-proxy  --cluster    --force   

Если вы удалите параметр --force и любой из надстроек Amazon EKS настройки конфликтуют с вашими существующими настройками, после чего добавляется надстройка Amazon EKS. происходит сбой, и вы получаете сообщение об ошибке, которое поможет вам разрешить конфликт.Прежде чем указывать этот параметр, убедитесь, что надстройка Amazon EKS не управлять настройками, которыми вам нужно управлять, потому что эти настройки перезаписан с этой опцией. Для получения дополнительной информации о надстройке Amazon EKS Управление конфигурацией см. в разделе Конфигурация надстройки Amazon EKS.

Консоль управления AWS

Чтобы добавить надстройку kube-proxy Amazon EKS с помощью Консоль управления AWS

  1. Откройте консоль Amazon EKS по адресу https: // console.aws.amazon.com/eks/home#/clusters.

  2. На левой панели навигации выберите Clusters и затем выберите имя кластера, который вы хотите настроить kube-proxy надстройка Amazon EKS для.

  3. Перейдите на вкладку Конфигурация и затем выберите Надстройки вкладка .

  4. Выбрать Добавить новый .

    1. Выбрать kube-proxy для Имя .

    2. Выберите версию , которую вы хотите использовать.

    3. Если вы выберете Переопределить существующую конфигурацию для этого дополнения в кластере., то любой настройку существующей надстройки можно перезаписать с помощью Настройки надстройки Amazon EKS. Если вы не включите эту опцию и любые настройки надстройки Amazon EKS конфликтуют с существующими настройки, затем добавить надстройку Amazon EKS не удастся, и вы получать сообщение об ошибке, которое поможет вам разрешить конфликт.Перед тем как выбрать этот вариант, убедитесь, что Amazon EKS надстройка не управляет настройками, которыми вам нужно управлять. Для дополнительная информация о настройке надстройки Amazon EKS см. раздел Конфигурация надстройки Amazon EKS.

    4. Выбрать Добавить .

AWS CLI

Добавьте надстройку kube-proxy Amazon EKS с помощью следующей команды.Заменить my-cluster (включая <> ) на имя вашего кластер.

   aws eks create-addon \
    --cluster-name  my-cluster  \
    --addon-name  kube-proxy  \
    --решить-конфликты ПЕРЕЗАПИСАТЬ   

Если вы удалите параметр --resolve-interfaces OVERWRITE и любые настройки надстройки Amazon EKS конфликтуют с вашими существующими настройками, тогда создание надстройки не удается, и вы получаете сообщение об ошибке, которое поможет вам разрешить конфликт.Прежде чем указывать этот параметр, убедитесь, что Надстройка Amazon EKS не управляет настройками, которыми вам нужно управлять, потому что они настройки перезаписываются этой опцией. Для получения дополнительной информации об Amazon EKS Управление конфигурацией надстройки см. в разделе Конфигурация надстройки Amazon EKS.

Обновление

kube-proxy Надстройка Amazon EKS

Эта процедура предназначена для обновления надстройки kube-proxy Amazon EKS.если ты не добавили надстройку kube-proxy Amazon EKS, выполните процедуру, описанную в разделе Обновление надстройки kube-proxy вместо этого вручную. Amazon EKS не обновляется автоматически kube-proxy на вашем кластере при выпуске новых версий или после того, как вы обновите свой кластер до нового второстепенного Kubernetes версия.Чтобы обновить kube-proxy в существующем кластере, необходимо запустить update, а затем Amazon EKS обновит надстройку за вас.

Обновите свой кластер и узлы до новой минорной версии Kubernetes перед обновлением. kube-proxy до той же младшей версии, что и у вашего обновленного кластера второстепенная версия.

eksctl

Чтобы обновить надстройку kube-proxy Amazon EKS с помощью eksctl

  1. Проверьте текущую версию своего kube-proxy Amazon EKS добавить.Заменять <мой кластер> (в том числе <> ) с вашим имя кластера.

       eksctl get addon --name  kube-proxy  --cluster      

    Выход

      ИМЯ ВЕРСИЯ ПРОБЛЕМЫ СОСТОЯНИЯ ДОСТУПНО ОБНОВЛЕНИЕ IAMROLE
    Кубе-прокси  v1.19.6-эксбуилд.2  АКТИВНЫЙ 0  v1.20.4-эксбуилд.2   
  2. Обновите надстройку до версии, возвращенной в ОБНОВЛЕНИЕ ДОСТУПНО на выходе предыдущего шага.

       модуль обновления eksctl \
        --name  kube-proxy  \
        - версия    \
        --cluster    \
        - сила   

    Если вы удалите параметр --force и любой из Amazon EKS настройки надстройки конфликтуют с вашими существующими настройками, затем обновите надстройка не работает, и вы получаете сообщение об ошибке, которое поможет вам разрешить конфликт.Прежде чем указывать этот параметр, убедитесь, что надстройка Amazon EKS не управляет настройками, которыми вам нужно управлять, потому что эти настройки перезаписываются этой опцией. Для большего Информацию об управлении конфигурацией надстройки Amazon EKS см. в разделе Настройка надстройки Amazon EKS.

Консоль управления AWS

Чтобы обновить надстройку kube-proxy Amazon EKS с помощью Консоль управления AWS

  1. Откройте консоль Amazon EKS по адресу https: // console.aws.amazon.com/eks/home#/clusters.

  2. На левой панели навигации выберите Clusters и затем выберите имя кластера, который вы хотите обновить kube-proxy надстройка Amazon EKS для.

  3. Перейдите на вкладку Конфигурация и затем выберите Надстройки вкладка .

  4. Установите флажок в правом верхнем углу кубе-прокси коробка а потом выберите Изменить .

    1. Выберите версии Amazon EKS надстройка, которую вы хотите использовать.

    2. Если вы выберете Переопределить существующую конфигурацию для этого дополнения в кластере., то любой настройку существующей надстройки можно перезаписать с помощью Настройки надстройки Amazon EKS. Если вы не включите эту опцию и любые настройки надстройки Amazon EKS конфликтуют с существующими настройки, а затем обновление надстройки до сбоя надстройки Amazon EKS, и вы получите сообщение об ошибке, которое поможет вам решить конфликт.Перед тем как выбрать этот вариант, убедитесь, что Надстройка Amazon EKS не управляет настройками, которые вам нужно управлять. Для получения дополнительной информации о надстройке Amazon EKS Управление конфигурацией см. в разделе Конфигурация надстройки Amazon EKS.

    3. Выберите Обновление .

AWS CLI

Чтобы обновить надстройку kube-proxy Amazon EKS с помощью AWS CLI

  1. Проверьте текущую версию своего kube-proxy Amazon EKS добавить.Замените my-cluster на свой имя кластера.

       aws eks description-addon \
        --cluster-name  my-cluster  \
        --addon-name  kube-proxy  \
        --query "addon.addonVersion" \
        - текст вывода   

    Выход:

       v1.19.6-эксбилд.2   
  2. Определите, какие версии надстройки kube-proxy доступно для вашей версии кластера.

       aws eks description-addon-versions \
        --addon-name  kube-proxy  \
        --kubernetes-версия  1.20  \
        --query "addons []. addonVersions []. [addonVersion, compatibility []. defaultVersion]" \
        - текст вывода   

    Выход

       v1.20.4-эксбуилд.2
    Истинный
    v1.19.6-эксбуилд.2
    Ложь
    v1.18.8-эксбуилд.1
    Ложь   

    По умолчанию используется версия с True . версия, развернутая с новыми кластерами, с той версией, которую вы указано.

  3. Обновите надстройку до версии с возвращением True в выводе предыдущего шага. Вы также можете обновить его до более позднего версия, если возвращается в выводе.

       aws eks update-addon \
        --cluster-name  my-cluster  \
        --addon-name  kube-proxy  \
        --addon-версия  v1.20.4-эксбуилд.2  \
        --решить-конфликты ПЕРЕЗАПИСАТЬ   

    Если вы удалите --resolve-columns OVERWRITE вариант, и любые настройки надстройки Amazon EKS конфликтуют с вашим существующие настройки, затем обновить надстройку не удастся, и вы получите сообщение об ошибке, которое поможет вам разрешить конфликт.Перед указанием этот вариант, убедитесь, что надстройка Amazon EKS не управляет настройками которым вам нужно управлять, потому что эти настройки перезаписываются этот вариант. Дополнительные сведения о настройке надстройки Amazon EKS см. раздел Конфигурация надстройки Amazon EKS.

Удаление

kube-proxy Надстройка Amazon EKS

При удалении надстройки Amazon EKS из кластера ее модули удаляются из кластера, не только настройки, которыми управлял Amazon EKS.Вам следует только удалить Amazon EKS надстройка из вашего кластера, если ни один из модулей в вашем кластере не зависит от функциональность, которую предоставляет надстройка. После удаления надстройки Amazon EKS вы можно добавить это еще раз, если хотите.

eksctl

Удалите надстройку kube-proxy Amazon EKS со следующими команда.Заменить my-cluster (в т.ч. <> ) на имя ваш кластер.

   eksctl delete addon --cluster    --name kube-proxy   
Консоль управления AWS

Чтобы удалить надстройку kube-proxy Amazon EKS с помощью Консоль управления AWS

  1. Откройте консоль Amazon EKS по адресу https: // console.aws.amazon.com/eks/home#/clusters.

  2. На левой панели навигации выберите Clusters и затем выберите имя кластера, из которого вы хотите удалить kube-proxy надстройка Amazon EKS для.

  3. Перейдите на вкладку Конфигурация и затем выберите Надстройки вкладка .

  4. Установите флажок в правом верхнем углу кубе-прокси коробка а потом выберите Удалить .Тип kube-proxy а затем выберите Удалить .

AWS CLI

Удалите надстройку kube-proxy Amazon EKS со следующими команда.Заменить my-cluster (в т.ч. <> ) на имя ваш кластер.

   aws eks delete-addon --cluster-name  my-cluster  --addon-name  kube-proxy    

Обновление надстройки

kube-proxy вручную

Если у вас есть 1.17 или более ранний кластер, или кластер 1.18 или новее, которого у вас нет добавил надстройку kube-proxy Amazon EKS, выполните следующие действия, чтобы вручную обновить надстройку. Если вы добавили надстройку kube-proxy Amazon EKS, завершите процедуру обновления kube-proxy Надстройка Amazon EKS вместо.

Обновите свой кластер и узлы до новой минорной версии Kubernetes перед обновлением. kube-proxy до той же младшей версии, что и у вашего обновленного кластера второстепенная версия.

  1. Проверьте текущую версию развертывания kube-proxy .

       kubectl get daemonset kube-proxy --namespace kube-system -o = jsonpath = '{$. Spec.template.spec.containers [: 1] .image}'   

    Пример вывода

       602401143452  .dkr.ecr.  us-west-2  .amazonaws.com / eks / kube-proxy: v  1.20.4-eksbuild.2   
  2. Обновление kube-proxy путем замены 602401143452 и us-west-2 с значения из вашего вывода.Заменять 1.21.2-эксбуилд.2 с версия kube-proxy версия, указанная в версии kube-proxy, развернутой с каждая таблица версий кластера, поддерживаемая Amazon EKS, для вашего кластера версия.

       kubectl установить демон набора изображений.приложения / кубе-прокси \
         -n кубе-система \
         kube-proxy =  602401143452  .dkr.ecr.  us-west-2  .amazonaws.com / eks / kube-proxy: v  1.21.2-eksbuild.2    
  3. (Необязательно) Если вы используете узлы x86 и Arm в одном кластере и ваш кластер был развернут до 17 августа 2020 года.Затем отредактируйте свой манифест kube-proxy , включающий селектор узлов для нескольких аппаратные архитектуры с помощью следующей команды. Это разовая операция. После того, как вы добавили селектор в свой манифест, вам не нужно делать это каждый раз раз вы обновляете. Если ваш кластер был развернут 17 августа 2020 г. или позже, то kube-proxy уже поддерживает несколько архитектур.

       kubectl edit -n kube-system daemonset / kube-proxy   

    Добавьте следующий селектор узлов в файл в редакторе и затем сохраните файл. Пример того, где включить этот текст в редактор, можно найти в файле манифеста CNI на GitHub. Это позволяет Kubernetes использовать правильный образ оборудования на основе аппаратной архитектуры узла.

       - ключ: "beta.kubernetes.io/arch"
                        оператор: In
                        значения:
                          - amd64
                          - рука64   
  4. (Необязательно) Если ваш кластер изначально был создан с помощью Kubernetes v1.14 или позже вы можете пропустить этот шаг, потому что kube-proxy уже включает это правило соответствия . Если вы изначально создали Amazon EKS кластер с Kubernetes версии 1.13 или более ранней и намерен использовать узлы Fargate, затем отредактируйте манифест kube-proxy , включив в него NodeAffinity правило, запрещающее подам kube-proxy планирование на узлах Fargate.Это разовое редактирование. После того, как вы добавили Правило сродства к вашему манифесту, вам не нужно делать это каждый раз при обновлении кластера. Отредактируйте свой kube-proxy Daemonset.

       kubectl edit -n kube-system daemonset / kube-proxy   

    Добавьте следующее правило соответствия в набор демонов spec раздел файла в редакторе, а затем сохраните файл.Для пример того, где включить этот текст в редактор, см. в файле манифеста CNI на GitHub.

       - ключ: eks.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *