[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/linux/kubectl-command-not-found":3,"mdc--lpzwrq-key":791,"mdc-pxaf9n-key":802,"mdc-ub88bj-key":826,"mdc-kdjauu-key":834,"mdc-w6qfyp-key":858,"mdc--4dshrh-key":874,"mdc-ozclnn-key":907,"mdc-6vy4ei-key":922,"mdc--ucegqy-key":945,"related-/guides/linux/install-kubectl-on-linux,/errors/linux/kubectl-crashloopbackoff,/guides/linux/configure-kubectl-context":961},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":721,"code":53,"createdAt":722,"description":723,"difficulty":724,"draft":725,"estimatedTime":726,"extension":727,"faq":728,"howToSteps":741,"howToTotalTime":757,"image":721,"keywords":758,"locale":769,"meta":770,"navigation":182,"path":771,"platform":772,"related":773,"section":777,"seo":778,"severity":779,"stem":780,"summary":781,"tags":782,"twitterCreator":721,"twitterSite":721,"type":789,"updatedAt":722,"__hash__":790},"content_ru/errors/linux/kubectl-command-not-found.md","Решение ошибки 'kubectl command not found' на Linux",[7,8,9,10],"Ubuntu 20.04+","CentOS 7+","Debian 10+","Fedora 35+","FixPedia Team",{"type":13,"value":14,"toc":711},"minimark",[15,20,48,55,59,125,129,134,140,145,203,207,228,232,253,257,263,362,366,373,590,594,607,648,652,707],[16,17,19],"h2",{"id":18},"что-означает-ошибка-kubectl-command-not-found","Что означает ошибка 'kubectl: command not found'",[21,22,23,24,28,29,32,33,37,38,41,42,44,45,47],"p",{},"Ошибка ",[25,26,27],"strong",{},"'kubectl: command not found'"," (или ",[25,30,31],{},"'bash: kubectl: command not found'",") возникает в терминале Linux, когда система не может найти исполняемый файл команды ",[34,35,36],"code",{},"kubectl"," в директориях, перечисленных в переменной окружения ",[34,39,40],{},"PATH",". Это означает, что либо ",[34,43,36],{}," не установлен на вашей системе, либо он установлен, но его путь не добавлен в ",[34,46,40],{},", либо путь указан некорректно.",[21,49,50,51,54],{},"Ошибка обычно сопровождается кодом выхода ",[25,52,53],{},"127"," (в bash), что указывает на то, что команда не найдена.",[16,56,58],{"id":57},"причины-возникновения","Причины возникновения",[60,61,62,72,92,104,119],"ol",{},[63,64,65,68,69,71],"li",{},[25,66,67],{},"Kubectl не установлен",". Вы пытаетесь использовать ",[34,70,36],{}," без предварительной установки клиента Kubernetes.",[63,73,74,77,78,80,81,84,85,88,89,91],{},[25,75,76],{},"Kubectl установлен, но не в PATH",". Возможно, вы установили ",[34,79,36],{}," в кастомную директорию (например, ",[34,82,83],{},"~/bin"," или ",[34,86,87],{},"/opt/kubectl","), но эта директория не включена в переменную ",[34,90,40],{},".",[63,93,94,97,98,100,101,103],{},[25,95,96],{},"Неправильный путь в PATH",". В ",[34,99,40],{}," указан неверный путь к исполняемому файлу ",[34,102,36],{},", например, из-за опечатки или изменения расположения файла.",[63,105,106,109,110,113,114,116,117,91],{},[25,107,108],{},"Проблемы с оболочкой",". Используется оболочка, которая не загружает конфигурационные файлы (например, ",[34,111,112],{},"~/.bashrc","), где добавлен ",[34,115,36],{}," в ",[34,118,40],{},[63,120,121,124],{},[25,122,123],{},"Повреждение установки",". Kubectl установлен, но исполняемый файл отсутствует или поврежден.",[16,126,128],{"id":127},"способы-решения","Способы решения",[130,131,133],"h3",{"id":132},"способ-1-установка-kubectl","Способ 1: Установка kubectl",[21,135,136,137,139],{},"Если ",[34,138,36],{}," не установлен, необходимо его установить. Существует несколько способов установки в зависимости от дистрибутива Linux.",[141,142,144],"h4",{"id":143},"для-ubuntudebian","Для Ubuntu/Debian:",[146,147,152],"pre",{"className":148,"code":149,"language":150,"meta":151,"style":151},"language-bash shiki shiki-themes github-light github-dark","# Обновление индекса пакетов\nsudo apt-get update\n\n# Установка kubectl\nsudo apt-get install kubectl\n","bash","",[34,153,154,163,177,184,190],{"__ignoreMap":151},[155,156,159],"span",{"class":157,"line":158},"line",1,[155,160,162],{"class":161},"sJ8bj","# Обновление индекса пакетов\n",[155,164,166,170,174],{"class":157,"line":165},2,[155,167,169],{"class":168},"sScJk","sudo",[155,171,173],{"class":172},"sZZnC"," apt-get",[155,175,176],{"class":172}," update\n",[155,178,180],{"class":157,"line":179},3,[155,181,183],{"emptyLinePlaceholder":182},true,"\n",[155,185,187],{"class":157,"line":186},4,[155,188,189],{"class":161},"# Установка kubectl\n",[155,191,193,195,197,200],{"class":157,"line":192},5,[155,194,169],{"class":168},[155,196,173],{"class":172},[155,198,199],{"class":172}," install",[155,201,202],{"class":172}," kubectl\n",[141,204,206],{"id":205},"для-centosrhel","Для CentOS/RHEL:",[146,208,210],{"className":148,"code":209,"language":150,"meta":151,"style":151},"# Установка kubectl через yum\nsudo yum install kubectl\n",[34,211,212,217],{"__ignoreMap":151},[155,213,214],{"class":157,"line":158},[155,215,216],{"class":161},"# Установка kubectl через yum\n",[155,218,219,221,224,226],{"class":157,"line":165},[155,220,169],{"class":168},[155,222,223],{"class":172}," yum",[155,225,199],{"class":172},[155,227,202],{"class":172},[141,229,231],{"id":230},"для-fedora","Для Fedora:",[146,233,235],{"className":148,"code":234,"language":150,"meta":151,"style":151},"# Установка kubectl через dnf\nsudo dnf install kubectl\n",[34,236,237,242],{"__ignoreMap":151},[155,238,239],{"class":157,"line":158},[155,240,241],{"class":161},"# Установка kubectl через dnf\n",[155,243,244,246,249,251],{"class":157,"line":165},[155,245,169],{"class":168},[155,247,248],{"class":172}," dnf",[155,250,199],{"class":172},[155,252,202],{"class":172},[141,254,256],{"id":255},"альтернативная-установка-через-официальный-репозиторий-kubernetes","Альтернативная установка через официальный репозиторий Kubernetes:",[21,258,259,260,262],{},"Вы можете установить ",[34,261,36],{}," напрямую с сайта Kubernetes, что гарантирует последнюю версию:",[146,264,266],{"className":148,"code":265,"language":150,"meta":151,"style":151},"# Скачивание последней стабильной версии (пример для amd64)\ncurl -LO \"https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl\"\n\n# Добавление прав на выполнение\nchmod +x kubectl\n\n# Перемещение в директорию в PATH (например, /usr/local/bin)\nsudo mv kubectl /usr/local/bin/\n\n# Проверка установки\nkubectl version --client\n",[34,267,268,273,296,300,305,315,320,326,340,345,351],{"__ignoreMap":151},[155,269,270],{"class":157,"line":158},[155,271,272],{"class":161},"# Скачивание последней стабильной версии (пример для amd64)\n",[155,274,275,278,282,285,287,290,293],{"class":157,"line":165},[155,276,277],{"class":168},"curl",[155,279,281],{"class":280},"sj4cs"," -LO",[155,283,284],{"class":172}," \"https://dl.k8s.io/release/$(",[155,286,277],{"class":168},[155,288,289],{"class":280}," -L",[155,291,292],{"class":280}," -s",[155,294,295],{"class":172}," https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl\"\n",[155,297,298],{"class":157,"line":179},[155,299,183],{"emptyLinePlaceholder":182},[155,301,302],{"class":157,"line":186},[155,303,304],{"class":161},"# Добавление прав на выполнение\n",[155,306,307,310,313],{"class":157,"line":192},[155,308,309],{"class":168},"chmod",[155,311,312],{"class":172}," +x",[155,314,202],{"class":172},[155,316,318],{"class":157,"line":317},6,[155,319,183],{"emptyLinePlaceholder":182},[155,321,323],{"class":157,"line":322},7,[155,324,325],{"class":161},"# Перемещение в директорию в PATH (например, /usr/local/bin)\n",[155,327,329,331,334,337],{"class":157,"line":328},8,[155,330,169],{"class":168},[155,332,333],{"class":172}," mv",[155,335,336],{"class":172}," kubectl",[155,338,339],{"class":172}," /usr/local/bin/\n",[155,341,343],{"class":157,"line":342},9,[155,344,183],{"emptyLinePlaceholder":182},[155,346,348],{"class":157,"line":347},10,[155,349,350],{"class":161},"# Проверка установки\n",[155,352,354,356,359],{"class":157,"line":353},11,[155,355,36],{"class":168},[155,357,358],{"class":172}," version",[155,360,361],{"class":280}," --client\n",[130,363,365],{"id":364},"способ-2-настройка-переменной-path","Способ 2: Настройка переменной PATH",[21,367,136,368,370,371,91],{},[34,369,36],{}," уже установлен, но команда не найдена, возможно, путь к исполняемому файлу не добавлен в ",[34,372,40],{},[60,374,375,428,460,523,562],{},[63,376,377,382,383],{},[25,378,379,380],{},"Найдите расположение ",[34,381,36],{},":",[146,384,386],{"className":148,"code":385,"language":150,"meta":151,"style":151},"# Поиск в стандартных директориях\nsudo find / -name kubectl 2>/dev/null\n# Или если знаете примерный путь\nls /usr/local/bin/kubectl\n",[34,387,388,393,415,420],{"__ignoreMap":151},[155,389,390],{"class":157,"line":158},[155,391,392],{"class":161},"# Поиск в стандартных директориях\n",[155,394,395,397,400,403,406,408,412],{"class":157,"line":165},[155,396,169],{"class":168},[155,398,399],{"class":172}," find",[155,401,402],{"class":172}," /",[155,404,405],{"class":280}," -name",[155,407,336],{"class":172},[155,409,411],{"class":410},"szBVR"," 2>",[155,413,414],{"class":172},"/dev/null\n",[155,416,417],{"class":157,"line":179},[155,418,419],{"class":161},"# Или если знаете примерный путь\n",[155,421,422,425],{"class":157,"line":186},[155,423,424],{"class":168},"ls",[155,426,427],{"class":172}," /usr/local/bin/kubectl\n",[63,429,430,382,435,449,452,453,455,456,459],{},[25,431,432,433],{},"Проверьте текущий ",[34,434,40],{},[146,436,438],{"className":148,"code":437,"language":150,"meta":151,"style":151},"echo $PATH\n",[34,439,440],{"__ignoreMap":151},[155,441,442,445],{"class":157,"line":158},[155,443,444],{"class":280},"echo",[155,446,448],{"class":447},"sVt8B"," $PATH\n",[450,451],"br",{},"Убедитесь, что директория, содержащая ",[34,454,36],{}," (например, ",[34,457,458],{},"/usr/local/bin","), присутствует в выводе.",[63,461,462,468,469,471,472,475,476,495,497,498,500,501,503,504,506,507],{},[25,463,464,465,467],{},"Если директории нет в ",[34,466,40],{},", добавьте её",":\nОткройте файл ",[34,470,112],{}," (для bash) или ",[34,473,474],{},"~/.zshrc"," (для zsh) в текстовом редакторе и добавьте строку:",[146,477,479],{"className":148,"code":478,"language":150,"meta":151,"style":151},"export PATH=$PATH:/путь/к/директории\n",[34,480,481],{"__ignoreMap":151},[155,482,483,486,489,492],{"class":157,"line":158},[155,484,485],{"class":410},"export",[155,487,488],{"class":447}," PATH",[155,490,491],{"class":410},"=",[155,493,494],{"class":447},"$PATH:/путь/к/директории\n",[450,496],{},"Например, если ",[34,499,36],{}," находится в ",[34,502,458],{}," (что обычно так), и этой директории нет в ",[34,505,40],{},", добавьте:",[146,508,510],{"className":148,"code":509,"language":150,"meta":151,"style":151},"export PATH=$PATH:/usr/local/bin\n",[34,511,512],{"__ignoreMap":151},[155,513,514,516,518,520],{"class":157,"line":158},[155,515,485],{"class":410},[155,517,488],{"class":447},[155,519,491],{"class":410},[155,521,522],{"class":447},"$PATH:/usr/local/bin\n",[63,524,525,382,528,559,561],{},[25,526,527],{},"Примените изменения",[146,529,531],{"className":148,"code":530,"language":150,"meta":151,"style":151},"source ~/.bashrc   # для bash\n# или\nsource ~/.zshrc    # для zsh\n",[34,532,533,544,549],{"__ignoreMap":151},[155,534,535,538,541],{"class":157,"line":158},[155,536,537],{"class":280},"source",[155,539,540],{"class":172}," ~/.bashrc",[155,542,543],{"class":161},"   # для bash\n",[155,545,546],{"class":157,"line":165},[155,547,548],{"class":161},"# или\n",[155,550,551,553,556],{"class":157,"line":179},[155,552,537],{"class":280},[155,554,555],{"class":172}," ~/.zshrc",[155,557,558],{"class":161},"    # для zsh\n",[450,560],{},"Или просто перезапустите терминал.",[63,563,564,382,570],{},[25,565,566,567,569],{},"Проверьте, что ",[34,568,36],{}," теперь доступен",[146,571,573],{"className":148,"code":572,"language":150,"meta":151,"style":151},"which kubectl\nkubectl version --client\n",[34,574,575,582],{"__ignoreMap":151},[155,576,577,580],{"class":157,"line":158},[155,578,579],{"class":280},"which",[155,581,202],{"class":172},[155,583,584,586,588],{"class":157,"line":165},[155,585,36],{"class":168},[155,587,358],{"class":172},[155,589,361],{"class":280},[130,591,593],{"id":592},"способ-3-создание-символьной-ссылки","Способ 3: Создание символьной ссылки",[21,595,136,596,598,599,601,602,455,604,606],{},[34,597,36],{}," установлен в нестандартную директорию, и вы не хотите менять ",[34,600,40],{},", можно создать символьную ссылку в директории, которая уже в ",[34,603,40],{},[34,605,458],{},"):",[146,608,610],{"className":148,"code":609,"language":150,"meta":151,"style":151},"# Предположим, kubectl находится в /opt/kubectl/bin/kubectl\nsudo ln -s /opt/kubectl/bin/kubectl /usr/local/bin/kubectl\n\n# Проверка\nkubectl version --client\n",[34,611,612,617,631,635,640],{"__ignoreMap":151},[155,613,614],{"class":157,"line":158},[155,615,616],{"class":161},"# Предположим, kubectl находится в /opt/kubectl/bin/kubectl\n",[155,618,619,621,624,626,629],{"class":157,"line":165},[155,620,169],{"class":168},[155,622,623],{"class":172}," ln",[155,625,292],{"class":280},[155,627,628],{"class":172}," /opt/kubectl/bin/kubectl",[155,630,427],{"class":172},[155,632,633],{"class":157,"line":179},[155,634,183],{"emptyLinePlaceholder":182},[155,636,637],{"class":157,"line":186},[155,638,639],{"class":161},"# Проверка\n",[155,641,642,644,646],{"class":157,"line":192},[155,643,36],{"class":168},[155,645,358],{"class":172},[155,647,361],{"class":280},[16,649,651],{"id":650},"профилактика","Профилактика",[653,654,655,666,682,696],"ul",{},[63,656,657,663,664,91],{},[25,658,659,660,662],{},"Устанавливайте ",[34,661,36],{}," через официальные репозитории или менеджеры пакетов",", чтобы автоматически добавлять его в ",[34,665,40],{},[63,667,668,674,675,678,679,681],{},[25,669,670,671,673],{},"Проверяйте ",[34,672,40],{}," после установки"," командой ",[34,676,677],{},"echo $PATH",", убедитесь, что директория с ",[34,680,36],{}," включена.",[63,683,684,687,688,84,690,693,694,91],{},[25,685,686],{},"Используйте стандартные пути"," для установки бинарных файлов, такие как ",[34,689,458],{},[34,691,692],{},"/usr/bin",", которые обычно уже в ",[34,695,40],{},[63,697,698,703,704,706],{},[25,699,700,701],{},"Если устанавливаете вручную, всегда добавляйте путь в ",[34,702,40],{}," в конфигурационном файле оболочки (например, ",[34,705,112],{},").",[708,709,710],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":151,"searchDepth":165,"depth":165,"links":712},[713,714,715,720],{"id":18,"depth":165,"text":19},{"id":57,"depth":165,"text":58},{"id":127,"depth":165,"text":128,"children":716},[717,718,719],{"id":132,"depth":179,"text":133},{"id":364,"depth":179,"text":365},{"id":592,"depth":179,"text":593},{"id":650,"depth":165,"text":651},null,"2026-02-14 23:48:28","Исправление ошибки 'kubectl: command not found' на Linux. Пошаговая инструкция по установке kubectl и настройке PATH. Решение за 5 минут для Ubuntu, CentOS, Debian и Fedora.","medium",false,"10-15 мин","md",[729,732,735,738],{"answer":730,"question":731},"Ошибка означает, что система не может найти исполняемый файл kubectl в директориях, указанных в переменной PATH. Это происходит, если kubectl не установлен или PATH настроен некорректно.","Почему возникает ошибка 'kubectl: command not found'?",{"answer":733,"question":734},"Выполните команду `which kubectl` или `kubectl version --client`. Если kubectl установлен, команда вернет путь к исполняемому файлу или версию клиента.","Как проверить, установлен ли kubectl?",{"answer":736,"question":737},"Вероятно, путь к kubectl не добавлен в переменную PATH. Добавьте директорию с kubectl в PATH или создайте символьную ссылку в /usr/local/bin.","Что делать, если kubectl установлен, но команда не найдена?",{"answer":739,"question":740},"Отредактируйте файл ~/.bashrc или ~/.bash_profile, добавьте строку `export PATH=$PATH:/путь/к/kubectl`, затем выполните `source ~/.bashrc`.","Как добавить kubectl в PATH?",[742,745,748,751,754],{"name":743,"text":744},"Проверка наличия kubectl","Выполните `which kubectl` в терминале. Если команда возвращает путь, kubectl установлен; если ничего не выводит или сообщение 'not found', kubectl отсутствует или не в PATH.",{"name":746,"text":747},"Установка kubectl","В зависимости от дистрибутива, используйте менеджер пакетов: для Ubuntu/Debian `sudo apt-get install kubectl`, для CentOS/RHEF `sudo yum install kubectl`, для Fedora `sudo dnf install kubectl`. Или установите вручную с официального сайта Kubernetes.",{"name":749,"text":750},"Настройка PATH","Если kubectl установлен, но не найден, найдите путь к исполняемому файлу (например, /usr/local/bin/kubectl) и убедитесь, что эта директория есть в PATH. Проверьте PATH командой `echo $PATH`.",{"name":752,"text":753},"Добавление в PATH","Если путь отсутствует, добавьте его в ~/.bashrc: `export PATH=$PATH:/usr/local/bin`, затем выполните `source ~/.bashrc` или перезапустите терминал.",{"name":755,"text":756},"Проверка работы","После установки и настройки PATH выполните `kubectl version --client` для проверки версии клиента. Должна отобразиться информация о версии.","PT15M",[759,760,761,762,763,764,765,766,767,768],"kubectl command not found","ошибка kubectl не найдена","bash kubectl command not found","установка kubectl на Linux","настроить PATH для kubectl","kubectl ошибка 127","kubectl не работает в терминале","как добавить kubectl в PATH","установить kubectl Ubuntu","kubectl command not found exit code 127","ru_RU",{},"/errors/linux/kubectl-command-not-found","linux",[774,775,776],"/guides/linux/install-kubectl-on-linux","/errors/linux/kubectl-crashloopbackoff","/guides/linux/configure-kubectl-context","Ошибки Linux",{"title":5,"description":723},"high","errors/linux/kubectl-command-not-found","Статья объясняет причины ошибки 'kubectl: command not found' и предлагает пошаговые инструкции по установке kubectl и настройке переменной PATH для различных дистрибутивов Linux.",[783,36,784,150,785,786,787,788],"ошибки linux","kubernetes","path","установка","terminal","command not found","error","lNssNqXJA2rgc0VGPvoIQ33tTLOU7IQhydQROLiTHPE",{"data":792,"body":793},{},{"type":794,"children":795},"root",[796],{"type":797,"tag":21,"props":798,"children":799},"element",{},[800],{"type":801,"value":730},"text",{"data":803,"body":804},{},{"type":794,"children":805},[806],{"type":797,"tag":21,"props":807,"children":808},{},[809,811,817,818,824],{"type":801,"value":810},"Выполните команду ",{"type":797,"tag":34,"props":812,"children":814},{"className":813},[],[815],{"type":801,"value":816},"which kubectl",{"type":801,"value":84},{"type":797,"tag":34,"props":819,"children":821},{"className":820},[],[822],{"type":801,"value":823},"kubectl version --client",{"type":801,"value":825},". Если kubectl установлен, команда вернет путь к исполняемому файлу или версию клиента.",{"data":827,"body":828},{},{"type":794,"children":829},[830],{"type":797,"tag":21,"props":831,"children":832},{},[833],{"type":801,"value":736},{"data":835,"body":836},{},{"type":794,"children":837},[838],{"type":797,"tag":21,"props":839,"children":840},{},[841,843,849,851,857],{"type":801,"value":842},"Отредактируйте файл ~/.bashrc или ~/.bash_profile, добавьте строку ",{"type":797,"tag":34,"props":844,"children":846},{"className":845},[],[847],{"type":801,"value":848},"export PATH=$PATH:/путь/к/kubectl",{"type":801,"value":850},", затем выполните ",{"type":797,"tag":34,"props":852,"children":854},{"className":853},[],[855],{"type":801,"value":856},"source ~/.bashrc",{"type":801,"value":91},{"data":859,"body":860},{},{"type":794,"children":861},[862],{"type":797,"tag":21,"props":863,"children":864},{},[865,867,872],{"type":801,"value":866},"Выполните ",{"type":797,"tag":34,"props":868,"children":870},{"className":869},[],[871],{"type":801,"value":816},{"type":801,"value":873}," в терминале. Если команда возвращает путь, kubectl установлен; если ничего не выводит или сообщение 'not found', kubectl отсутствует или не в PATH.",{"data":875,"body":876},{},{"type":794,"children":877},[878],{"type":797,"tag":21,"props":879,"children":880},{},[881,883,889,891,897,899,905],{"type":801,"value":882},"В зависимости от дистрибутива, используйте менеджер пакетов: для Ubuntu/Debian ",{"type":797,"tag":34,"props":884,"children":886},{"className":885},[],[887],{"type":801,"value":888},"sudo apt-get install kubectl",{"type":801,"value":890},", для CentOS/RHEF ",{"type":797,"tag":34,"props":892,"children":894},{"className":893},[],[895],{"type":801,"value":896},"sudo yum install kubectl",{"type":801,"value":898},", для Fedora ",{"type":797,"tag":34,"props":900,"children":902},{"className":901},[],[903],{"type":801,"value":904},"sudo dnf install kubectl",{"type":801,"value":906},". Или установите вручную с официального сайта Kubernetes.",{"data":908,"body":909},{},{"type":794,"children":910},[911],{"type":797,"tag":21,"props":912,"children":913},{},[914,916,921],{"type":801,"value":915},"Если kubectl установлен, но не найден, найдите путь к исполняемому файлу (например, /usr/local/bin/kubectl) и убедитесь, что эта директория есть в PATH. Проверьте PATH командой ",{"type":797,"tag":34,"props":917,"children":919},{"className":918},[],[920],{"type":801,"value":677},{"type":801,"value":91},{"data":923,"body":924},{},{"type":794,"children":925},[926],{"type":797,"tag":21,"props":927,"children":928},{},[929,931,937,938,943],{"type":801,"value":930},"Если путь отсутствует, добавьте его в ~/.bashrc: ",{"type":797,"tag":34,"props":932,"children":934},{"className":933},[],[935],{"type":801,"value":936},"export PATH=$PATH:/usr/local/bin",{"type":801,"value":850},{"type":797,"tag":34,"props":939,"children":941},{"className":940},[],[942],{"type":801,"value":856},{"type":801,"value":944}," или перезапустите терминал.",{"data":946,"body":947},{},{"type":794,"children":948},[949],{"type":797,"tag":21,"props":950,"children":951},{},[952,954,959],{"type":801,"value":953},"После установки и настройки PATH выполните ",{"type":797,"tag":34,"props":955,"children":957},{"className":956},[],[958],{"type":801,"value":823},{"type":801,"value":960}," для проверки версии клиента. Должна отобразиться информация о версии.",[962,1537,2433],{"id":963,"title":964,"appliesTo":965,"author":11,"body":968,"canonical":721,"code":721,"createdAt":1483,"description":1484,"difficulty":1485,"draft":725,"estimatedTime":1486,"extension":727,"faq":1487,"howToSteps":1500,"howToTotalTime":1513,"image":721,"keywords":1514,"locale":769,"meta":1525,"navigation":182,"path":774,"platform":772,"related":1526,"section":1528,"seo":1529,"severity":721,"stem":1530,"summary":1531,"tags":1532,"twitterCreator":721,"twitterSite":721,"type":1535,"updatedAt":1483,"__hash__":1536},"content_ru/guides/linux/install-kubectl-on-linux.md","Установка kubectl на Linux: пошаговое руководство для начинающих",[966,8,9,967],"Ubuntu 18.04+","Fedora 30+",{"type":13,"value":969,"toc":1465},[970,974,977,981,984,1026,1030,1034,1037,1042,1074,1079,1104,1107,1121,1125,1128,1141,1145,1151,1156,1171,1176,1179,1205,1218,1246,1249,1263,1267,1270,1283,1286,1293,1296,1299,1303,1306,1321,1324,1330,1334,1338,1344,1349,1362,1366,1371,1379,1383,1388,1392,1407,1411,1416,1420,1444,1448,1453,1462],[16,971,973],{"id":972},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,975,976],{},"kubectl — это ключевой инструмент командной строки для работы с Kubernetes. Он позволяет развертывать приложения, управлять ресурсами кластера и отлаживать проблемы. Установка kubectl на Linux — первый шаг к управлению Kubernetes из терминала вашей системы. После выполнения этого гайда вы сможете взаимодействовать с любым Kubernetes кластером, имея корректный kubeconfig.",[16,978,980],{"id":979},"требования-подготовка","Требования / Подготовка",[21,982,983],{},"Перед началом установки убедитесь, что ваша система соответствует следующим требованиям:",[653,985,986,992,998,1016],{},[63,987,988,991],{},[25,989,990],{},"Операционная система",": Linux (Ubuntu, CentOS, Debian, Fedora или совместимый дистрибутив)",[63,993,994,997],{},[25,995,996],{},"Права доступа",": Для установки в системные директории (например, /usr/local/bin) требуются права sudo. Если вы устанавливаете в домашнюю директорию, sudo не нужен.",[63,999,1000,1003,1004,84,1006,1009,1010,84,1013,91],{},[25,1001,1002],{},"Сетевые утилиты",": Установите ",[34,1005,277],{},[34,1007,1008],{},"wget"," для загрузки файлов. Проверьте наличие командами ",[34,1011,1012],{},"curl --version",[34,1014,1015],{},"wget --version",[63,1017,1018,1021,1022,1025],{},[25,1019,1020],{},"Архитектура",": Данная инструкция предполагает использование архитектуры amd64 (x86_64). Для других архитектур (arm64) замените ",[34,1023,1024],{},"amd64"," на соответствующую в URL.",[16,1027,1029],{"id":1028},"пошаговая-инструкция","Пошаговая инструкция",[130,1031,1033],{"id":1032},"шаг-1-скачайте-бинарный-файл-kubectl","Шаг 1: Скачайте бинарный файл kubectl",[21,1035,1036],{},"Скачайте последнюю стабильную версию kubectl с официального репозитория Kubernetes. Используйте одну из команд ниже:",[21,1038,1039],{},[25,1040,1041],{},"С помощью curl:",[146,1043,1045],{"className":148,"code":1044,"language":150,"meta":151,"style":151},"curl -LO https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl\n",[34,1046,1047],{"__ignoreMap":151},[155,1048,1049,1051,1053,1056,1059,1061,1063,1065,1068,1071],{"class":157,"line":158},[155,1050,277],{"class":168},[155,1052,281],{"class":280},[155,1054,1055],{"class":172}," https://dl.k8s.io/release/",[155,1057,1058],{"class":447},"$(",[155,1060,277],{"class":168},[155,1062,289],{"class":280},[155,1064,292],{"class":280},[155,1066,1067],{"class":172}," https://dl.k8s.io/release/stable.txt",[155,1069,1070],{"class":447},")",[155,1072,1073],{"class":172},"/bin/linux/amd64/kubectl\n",[21,1075,1076],{},[25,1077,1078],{},"С помощью wget:",[146,1080,1082],{"className":148,"code":1081,"language":150,"meta":151,"style":151},"wget https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl\n",[34,1083,1084],{"__ignoreMap":151},[155,1085,1086,1088,1090,1092,1094,1096,1098,1100,1102],{"class":157,"line":158},[155,1087,1008],{"class":168},[155,1089,1055],{"class":172},[155,1091,1058],{"class":447},[155,1093,277],{"class":168},[155,1095,289],{"class":280},[155,1097,292],{"class":280},[155,1099,1067],{"class":172},[155,1101,1070],{"class":447},[155,1103,1073],{"class":172},[21,1105,1106],{},"Эти команды автоматически определяют последнюю стабильную версию. Если требуется конкретная версия (например, v1.24.0), укажите её явно:",[146,1108,1110],{"className":148,"code":1109,"language":150,"meta":151,"style":151},"curl -LO https://dl.k8s.io/release/v1.24.0/bin/linux/amd64/kubectl\n",[34,1111,1112],{"__ignoreMap":151},[155,1113,1114,1116,1118],{"class":157,"line":158},[155,1115,277],{"class":168},[155,1117,281],{"class":280},[155,1119,1120],{"class":172}," https://dl.k8s.io/release/v1.24.0/bin/linux/amd64/kubectl\n",[130,1122,1124],{"id":1123},"шаг-2-сделайте-файл-исполняемым","Шаг 2: Сделайте файл исполняемым",[21,1126,1127],{},"Предоставьте права на выполнение для скачанного файла:",[146,1129,1131],{"className":148,"code":1130,"language":150,"meta":151,"style":151},"chmod +x kubectl\n",[34,1132,1133],{"__ignoreMap":151},[155,1134,1135,1137,1139],{"class":157,"line":158},[155,1136,309],{"class":168},[155,1138,312],{"class":172},[155,1140,202],{"class":172},[130,1142,1144],{"id":1143},"шаг-3-переместите-kubectl-в-директорию-path","Шаг 3: Переместите kubectl в директорию PATH",[21,1146,1147,1148,1150],{},"Для того чтобы команда ",[34,1149,36],{}," была доступна из любого места в терминале, переместите исполняемый файл в директорию, указанную в переменной PATH.",[21,1152,1153],{},[25,1154,1155],{},"Вариант A: Установка в системную директорию (требует sudo)",[146,1157,1159],{"className":148,"code":1158,"language":150,"meta":151,"style":151},"sudo mv kubectl /usr/local/bin/\n",[34,1160,1161],{"__ignoreMap":151},[155,1162,1163,1165,1167,1169],{"class":157,"line":158},[155,1164,169],{"class":168},[155,1166,333],{"class":172},[155,1168,336],{"class":172},[155,1170,339],{"class":172},[21,1172,1173],{},[25,1174,1175],{},"Вариант B: Установка в домашнюю директорию (без sudo)",[21,1177,1178],{},"Если у вас нет прав sudo, создайте локальную директорию и переместите туда kubectl:",[146,1180,1182],{"className":148,"code":1181,"language":150,"meta":151,"style":151},"mkdir -p ~/.local/bin\nmv kubectl ~/.local/bin/\n",[34,1183,1184,1195],{"__ignoreMap":151},[155,1185,1186,1189,1192],{"class":157,"line":158},[155,1187,1188],{"class":168},"mkdir",[155,1190,1191],{"class":280}," -p",[155,1193,1194],{"class":172}," ~/.local/bin\n",[155,1196,1197,1200,1202],{"class":157,"line":165},[155,1198,1199],{"class":168},"mv",[155,1201,336],{"class":172},[155,1203,1204],{"class":172}," ~/.local/bin/\n",[21,1206,1207,1208,1211,1212,1214,1215,1217],{},"Затем добавьте ",[34,1209,1210],{},"~/.local/bin"," в переменную PATH. Отредактируйте файл ",[34,1213,112],{}," (для Bash) или ",[34,1216,474],{}," (для Zsh) и добавьте строку:",[146,1219,1221],{"className":148,"code":1220,"language":150,"meta":151,"style":151},"export PATH=\"$HOME/.local/bin:$PATH\"\n",[34,1222,1223],{"__ignoreMap":151},[155,1224,1225,1227,1229,1231,1234,1237,1240,1243],{"class":157,"line":158},[155,1226,485],{"class":410},[155,1228,488],{"class":447},[155,1230,491],{"class":410},[155,1232,1233],{"class":172},"\"",[155,1235,1236],{"class":447},"$HOME",[155,1238,1239],{"class":172},"/.local/bin:",[155,1241,1242],{"class":447},"$PATH",[155,1244,1245],{"class":172},"\"\n",[21,1247,1248],{},"Примените изменения, выполнив:",[146,1250,1252],{"className":148,"code":1251,"language":150,"meta":151,"style":151},"source ~/.bashrc  # или source ~/.zshrc\n",[34,1253,1254],{"__ignoreMap":151},[155,1255,1256,1258,1260],{"class":157,"line":158},[155,1257,537],{"class":280},[155,1259,540],{"class":172},[155,1261,1262],{"class":161},"  # или source ~/.zshrc\n",[130,1264,1266],{"id":1265},"шаг-4-проверьте-установку","Шаг 4: Проверьте установку",[21,1268,1269],{},"Убедитесь, что kubectl установлен правильно, выполнив:",[146,1271,1273],{"className":148,"code":1272,"language":150,"meta":151,"style":151},"kubectl version --client\n",[34,1274,1275],{"__ignoreMap":151},[155,1276,1277,1279,1281],{"class":157,"line":158},[155,1278,36],{"class":168},[155,1280,358],{"class":172},[155,1282,361],{"class":280},[21,1284,1285],{},"Команда должна вывести версию клиента, например:",[146,1287,1291],{"className":1288,"code":1290,"language":801},[1289],"language-text","Client Version: version.Info{Major:\"1\", Minor:\"24\", GitVersion:\"v1.24.0\", ...}\n",[34,1292,1290],{"__ignoreMap":151},[21,1294,1295],{},"Если вы видите ошибку \"command not found\", перепроверьте, что директория с kubectl добавлена в PATH.",[1297,1298],"in-article-ad",{},[16,1300,1302],{"id":1301},"проверка-результата","Проверка результата",[21,1304,1305],{},"После успешной установки kubectl, вы можете проверить его работоспособность, подключившись к Kubernetes кластеру. Для этого необходим настроенный файл kubeconfig (обычно в ~/.kube/config). Если кластер уже доступен, выполните:",[146,1307,1309],{"className":148,"code":1308,"language":150,"meta":151,"style":151},"kubectl get nodes\n",[34,1310,1311],{"__ignoreMap":151},[155,1312,1313,1315,1318],{"class":157,"line":158},[155,1314,36],{"class":168},[155,1316,1317],{"class":172}," get",[155,1319,1320],{"class":172}," nodes\n",[21,1322,1323],{},"Если команда возвращает список нод кластера, установка прошла успешно и вы готовы управлять кластером. Если kubeconfig не настроен, вы получите ошибку подключения, но это не связано с установкой kubectl.",[21,1325,1326,1327,1329],{},"Для минимальной проверки без кластера, команда ",[34,1328,823],{}," уже подтвердила установку.",[16,1331,1333],{"id":1332},"возможные-проблемы","Возможные проблемы",[130,1335,1337],{"id":1336},"ошибка-kubectl-command-not-found-после-установки","Ошибка \"kubectl: command not found\" после установки",[21,1339,1340,1343],{},[25,1341,1342],{},"Причина",": Директория с kubectl не добавлена в PATH.",[21,1345,1346,382],{},[25,1347,1348],{},"Решение",[653,1350,1351,1357],{},[63,1352,1353,1354,91],{},"Если вы установили kubectl в /usr/local/bin, эта директория обычно уже в PATH. Если нет, добавьте её в ~/.bashrc: ",[34,1355,1356],{},"export PATH=\"/usr/local/bin:$PATH\"",[63,1358,1359,1360,91],{},"Если установили в ~/.local/bin, убедитесь, что вы добавили эту директорию в PATH и выполнили ",[34,1361,856],{},[130,1363,1365],{"id":1364},"ошибка-прав-доступа-при-перемещении-файла","Ошибка прав доступа при перемещении файла",[21,1367,1368,1370],{},[25,1369,1342],{},": Недостаточно прав для записи в системную директорию.",[21,1372,1373,1375,1376,1378],{},[25,1374,1348],{},": Используйте ",[34,1377,169],{}," для перемещения в /usr/local/bin, или установите kubectl в домашнюю директорию без sudo, как описано в шаге 3 (Вариант B).",[130,1380,1382],{"id":1381},"несовместимость-версий-kubectl-и-kubernetes-кластера","Несовместимость версий kubectl и Kubernetes кластера",[21,1384,1385,1387],{},[25,1386,1342],{},": kubectl должен быть совместим с версией API кластера. Рекомендуется, чтобы минорные версии отличались не более чем на одну.",[21,1389,1390,382],{},[25,1391,1348],{},[653,1393,1394,1401,1404],{},[63,1395,1396,1397,1400],{},"Проверьте версию кластера: ",[34,1398,1399],{},"kubectl version --short"," (если подключен) или спросите у администратора.",[63,1402,1403],{},"Скачайте соответствующую версию kubectl, указав версию явно в URL (см. шаг 1).",[63,1405,1406],{},"Например, для кластера v1.23 используйте kubectl v1.22, v1.23 или v1.24.",[130,1408,1410],{"id":1409},"проблемы-с-загрузкой-файла-curl-или-wget","Проблемы с загрузкой файла (curl или wget)",[21,1412,1413,1415],{},[25,1414,1342],{},": Сетевые проблемы или недоступность URL.",[21,1417,1418,382],{},[25,1419,1348],{},[653,1421,1422,1425,1434],{},[63,1423,1424],{},"Проверьте интернет-соединение.",[63,1426,1427,1428,91],{},"Попробуйте использовать другой браузер для загрузки вручную с ",[1429,1430,1431],"a",{"href":1431,"rel":1432},"https://dl.k8s.io/release/",[1433],"nofollow",[63,1435,1436,1437,1439,1440,1443],{},"Убедитесь, что вы используете правильную архитектуру (amd64). Для arm64 замените ",[34,1438,1024],{}," на ",[34,1441,1442],{},"arm64"," в URL.",[130,1445,1447],{"id":1446},"kubectl-работает-но-не-может-подключиться-к-кластеру","kubectl работает, но не может подключиться к кластеру",[21,1449,1450,1452],{},[25,1451,1342],{},": Отсутствует или неверный kubeconfig.",[21,1454,1455,1457,1458,1461],{},[25,1456,1348],{},": Настройте kubeconfig, получив файл конфигурации от администратора кластера или используя ",[34,1459,1460],{},"kubeadm","/облачные инструменты. Проверьте, что переменная KUBECONFIG указана правильно или файл находится в ~/.kube/config.",[708,1463,1464],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":151,"searchDepth":165,"depth":165,"links":1466},[1467,1468,1469,1475,1476],{"id":972,"depth":165,"text":973},{"id":979,"depth":165,"text":980},{"id":1028,"depth":165,"text":1029,"children":1470},[1471,1472,1473,1474],{"id":1032,"depth":179,"text":1033},{"id":1123,"depth":179,"text":1124},{"id":1143,"depth":179,"text":1144},{"id":1265,"depth":179,"text":1266},{"id":1301,"depth":165,"text":1302},{"id":1332,"depth":165,"text":1333,"children":1477},[1478,1479,1480,1481,1482],{"id":1336,"depth":179,"text":1337},{"id":1364,"depth":179,"text":1365},{"id":1381,"depth":179,"text":1382},{"id":1409,"depth":179,"text":1410},{"id":1446,"depth":179,"text":1447},"2026-02-16 10:19:49","Установите kubectl на Linux за 5 минут с нашей подробной инструкцией. Поддержка Ubuntu, CentOS, Debian и других дистрибутивов. Начните управлять Kubernetes кластерами уже сегодня!","easy","5-10 мин",[1488,1491,1494,1497],{"question":1489,"answer":1490},"Как проверить, установлен ли уже kubectl?","Выполните команду `kubectl version --client` в терминале. Если команда возвращает версию клиента, kubectl установлен корректно.",{"question":1492,"answer":1493},"Можно ли установить kubectl без sudo?","Да, можно установить kubectl в домашнюю директорию, например, в ~/.local/bin, и добавить этот путь в переменную PATH.",{"question":1495,"answer":1496},"Какая версия kubectl совместима с моим кластером Kubernetes?","kubectl должен отличаться не более чем на одну минорную версию от сервера API кластера. Например, kubectl v1.24 работает с кластерами v1.23, v1.24, v1.25.",{"question":1498,"answer":1499},"Что делать, если после установки команда kubectl не распознаётся?","Убедитесь, что директория с kubectl добавлена в PATH. Для немедленного использования можно указать полный путь, например, `/usr/local/bin/kubectl`.",[1501,1504,1507,1510],{"name":1502,"text":1503},"Скачайте бинарный файл kubectl","Используйте curl или wget для загрузки последней стабильной версии kubectl с официального сайта Kubernetes.",{"name":1505,"text":1506},"Сделайте файл исполняемым","Выполните `chmod +x kubectl`, чтобы предоставить права на выполнение бинарному файлу.",{"name":1508,"text":1509},"Переместите kubectl в директорию PATH","Переместите исполняемый файл в системную директорию, например, /usr/local/bin, с помощью sudo.",{"name":1511,"text":1512},"Проверьте установку","Запустите `kubectl version --client` для подтверждения успешной установки и проверки версии.","PT10M",[1515,1516,1517,1518,1519,1520,1521,1522,1523,1524],"установка kubectl linux","как установить kubectl на ubuntu","скачать kubectl для linux","установка kubectl на centos","kubectl команда не найдена","инструкция по kubectl для начинающих","kubectl linux terminal","установка kubernetes cli","kubectl версия установки","настройка kubectl после установки",{},[1527,776,771],"/guides/linux/install-kubernetes-on-linux","Гайды Linux",{"title":964,"description":1484},"guides/linux/install-kubectl-on-linux","Этот гайд описывает, как установить kubectl — CLI инструмент для Kubernetes — на Linux. Вы сможете выполнять команды для управления кластерами Kubernetes.",[36,784,772,786,1533,1534],"cli","devops","guide","53GmhC3aFsut__Y0NdTAb3qQ0K479EyAnjbt7U2D1us",{"id":1538,"title":1539,"appliesTo":1540,"author":11,"body":1544,"canonical":721,"code":1554,"createdAt":2374,"description":2375,"difficulty":724,"draft":725,"estimatedTime":2376,"extension":727,"faq":2377,"howToSteps":2390,"howToTotalTime":2406,"image":721,"keywords":2407,"locale":769,"meta":2416,"navigation":182,"path":775,"platform":2417,"related":2418,"section":2422,"seo":2423,"severity":779,"stem":2424,"summary":2425,"tags":2426,"twitterCreator":721,"twitterSite":721,"type":789,"updatedAt":2374,"__hash__":2432},"content_ru/errors/linux/kubectl-crashloopbackoff.md","CrashLoopBackOff в kubectl: причины и способы исправления",[1541,1542,1543],"Kubernetes 1.19+","kubectl 1.19+","Любые дистрибутивы Linux/Windows/macOS с kubectl",{"type":13,"value":1545,"toc":2362},[1546,1550,1564,1567,1581,1595,1605,1611,1613,1627,1683,1685,1689,1692,1861,1863,1867,1878,2000,2004,2019,2027,2048,2053,2072,2081,2085,2092,2182,2186,2203,2289,2291,2359],[16,1547,1549],{"id":1548},"что-означает-ошибка-crashloopbackoff","Что означает ошибка CrashLoopBackOff",[21,1551,1552,1555,1556,1559,1560,1563],{},[34,1553,1554],{},"CrashLoopBackOff"," — это не код ошибки в классическом понимании, а ",[25,1557,1558],{},"состояние пода (Pod)"," в Kubernetes. Оно означает, что контейнер внутри пода постоянно завершается (крашится), а ",[34,1561,1562],{},"kubelet"," (агент на ноде) срабатывает механизм экспоненциальной задержки (back-off) между попытками перезапуска.",[21,1565,1566],{},"Вы увидите это состояние при выполнении команды:",[146,1568,1570],{"className":148,"code":1569,"language":150,"meta":151,"style":151},"kubectl get pods\n",[34,1571,1572],{"__ignoreMap":151},[155,1573,1574,1576,1578],{"class":157,"line":158},[155,1575,36],{"class":168},[155,1577,1317],{"class":172},[155,1579,1580],{"class":172}," pods\n",[21,1582,1583,1584,1587,1588,1590,1591,1594],{},"В колонке ",[34,1585,1586],{},"STATUS"," будет ",[34,1589,1554],{},", а в ",[34,1592,1593],{},"RESTARTS"," — постоянно увеличивающееся число.",[21,1596,1597,1600,1601,1604],{},[25,1598,1599],{},"Полный текст события"," (из ",[34,1602,1603],{},"kubectl describe pod",") обычно выглядит так:",[146,1606,1609],{"className":1607,"code":1608,"language":801},[1289],"  State:          Waiting\n    Reason:       CrashLoopBackOff\n  Last State:    Terminated\n    Reason:       Error\n    Exit Code:    1\n    Started:      ...\n    Finished:     ...\n",[34,1610,1608],{"__ignoreMap":151},[16,1612,58],{"id":57},[21,1614,1615,1616,1619,1620,84,1623,1626],{},"Состояние CrashLoopBackOff почти всегда вызвано тем, что ",[25,1617,1618],{},"процесс внутри контейнера завершается с ненулевым кодом возврата"," (обычно ",[34,1621,1622],{},"1",[34,1624,1625],{},"137","). Основные причины:",[60,1628,1629,1635,1648,1661,1671,1677],{},[63,1630,1631,1634],{},[25,1632,1633],{},"Ошибка в самом приложении",": Непредвиденное исключение в коде, ошибка конфигурации, отсутствие обязательного файла или переменной окружения. Контейнер запускается, приложение падает.",[63,1636,1637,1640,1641,1644,1645,706],{},[25,1638,1639],{},"Некорректная команда запуска (CMD/ENTRYPOINT)",": В Dockerfile или спецификации Pod'а указана команда, которая завершается сразу (например, запуск скрипта без ",[34,1642,1643],{},"exec"," или запуск фонового процесса без ",[34,1646,1647],{},"wait",[63,1649,1650,1653,1654,1657,1658,91],{},[25,1651,1652],{},"Нехватка ресурсов (OOMKilled)",": Контейнеру не хватает оперативной памяти, и ядро ноды его убивает. В логах и событии будет ",[34,1655,1656],{},"Reason: OOMKilled"," и ",[34,1659,1660],{},"Exit Code: 137",[63,1662,1663,1666,1667,1670],{},[25,1664,1665],{},"Проблемы с правами доступа",": Приложение пытается записать в защищённую директорию (например, ",[34,1668,1669],{},"/root","), или не хватает прав на чтение файла.",[63,1672,1673,1676],{},[25,1674,1675],{},"Некорректно настроенные health-проб (livenessProbe)",": Проба (например, HTTP GET) постоянно возвращает неуспешный ответ, и kubelet убивает контейнер, даже если приложение в целом работает.",[63,1678,1679,1682],{},[25,1680,1681],{},"Отсутствие ожидаемого фонового процесса",": Приложение запускается, порождает дочерний процесс и завершается, оставляя дочерний процесс \"сиротой\", который затем уничтожается.",[16,1684,128],{"id":127},[130,1686,1688],{"id":1687},"способ-1-анализ-логов-и-событий-пода","Способ 1: Анализ логов и событий пода",[21,1690,1691],{},"Это первый и самый важный шаг. Команды ниже дадут точные указания на причину.",[60,1693,1694,1771],{},[63,1695,1696,382,1699,1726,1728,1729,1732,1733,84,1736,1739,1740,1657,1743,1746,1747,1750,1751,1750,1754,1757,1758,1761,1762,455,1764,1767,1768,706],{},[25,1697,1698],{},"Посмотрите детальную информацию о поде",[146,1700,1702],{"className":148,"code":1701,"language":150,"meta":151,"style":151},"kubectl describe pod \u003Cимя-вашего-pod>\n",[34,1703,1704],{"__ignoreMap":151},[155,1705,1706,1708,1711,1714,1717,1720,1723],{"class":157,"line":158},[155,1707,36],{"class":168},[155,1709,1710],{"class":172}," describe",[155,1712,1713],{"class":172}," pod",[155,1715,1716],{"class":410}," \u003C",[155,1718,1719],{"class":172},"имя-вашего-po",[155,1721,1722],{"class":447},"d",[155,1724,1725],{"class":410},">\n",[450,1727],{},"Прокрутите секцию ",[34,1730,1731],{},"Events"," вниз. Ищите последние события типа ",[34,1734,1735],{},"Failed",[34,1737,1738],{},"BackOff",". Обратите внимание на поля ",[34,1741,1742],{},"Reason",[34,1744,1745],{},"Message",". Также в секции ",[34,1748,1749],{},"Containers"," -> ",[34,1752,1753],{},"\u003Cимя-контейнера>",[34,1755,1756],{},"State"," будут указаны ",[34,1759,1760],{},"Last State"," (последнее состояние) и ",[34,1763,1742],{},[34,1765,1766],{},"Error",", ",[34,1769,1770],{},"OOMKilled",[63,1772,1773,382,1776,1839,1841,1844,1845,1767,1848,1767,1851,1767,1854,1767,1857,1860],{},[25,1774,1775],{},"Получите логи контейнера",[653,1777,1778,1808,1833],{},[63,1779,1780,1783,1784],{},[25,1781,1782],{},"Логи последнего упавшего экземпляра"," (самые важные):\n",[146,1785,1787],{"className":148,"code":1786,"language":150,"meta":151,"style":151},"kubectl logs \u003Cимя-вашего-pod> --previous\n",[34,1788,1789],{"__ignoreMap":151},[155,1790,1791,1793,1796,1798,1800,1802,1805],{"class":157,"line":158},[155,1792,36],{"class":168},[155,1794,1795],{"class":172}," logs",[155,1797,1716],{"class":410},[155,1799,1719],{"class":172},[155,1801,1722],{"class":447},[155,1803,1804],{"class":410},">",[155,1806,1807],{"class":280}," --previous\n",[63,1809,1810,1813,1814],{},[25,1811,1812],{},"Логи текущего (возможно, только что запустившегося) контейнера",":\n",[146,1815,1817],{"className":148,"code":1816,"language":150,"meta":151,"style":151},"kubectl logs \u003Cимя-вашего-pod>\n",[34,1818,1819],{"__ignoreMap":151},[155,1820,1821,1823,1825,1827,1829,1831],{"class":157,"line":158},[155,1822,36],{"class":168},[155,1824,1795],{"class":172},[155,1826,1716],{"class":410},[155,1828,1719],{"class":172},[155,1830,1722],{"class":447},[155,1832,1725],{"class":410},[63,1834,1835,1836,91],{},"Если в поде несколько контейнеров, укажите имя контейнера: ",[34,1837,1838],{},"kubectl logs \u003Cpod-name> -c \u003Ccontainer-name> --previous",[450,1840],{},[25,1842,1843],{},"На что смотреть в логах",": Исключения (Java, Python, Node.js), сообщения ",[34,1846,1847],{},"permission denied",[34,1849,1850],{},"connection refused",[34,1852,1853],{},"file not found",[34,1855,1856],{},"OutOfMemoryError",[34,1858,1859],{},"Killed",". Последние 5-10 строк часто содержат суть.",[1297,1862],{},[130,1864,1866],{"id":1865},"способ-2-проверка-и-корректировка-ресурсов-memorycpu","Способ 2: Проверка и корректировка ресурсов (Memory/CPU)",[21,1868,1869,1870,1872,1873,84,1875,1877],{},"Если в ",[34,1871,1603],{}," или логах есть упоминание ",[34,1874,1770],{},[34,1876,1660],{},", проблема, скорее всего, в нехватке памяти.",[60,1879,1880,1975,1997],{},[63,1881,1882,1885,1886],{},[25,1883,1884],{},"Временно увеличьте лимит памяти"," в манифесте YAML пода:\n",[146,1887,1891],{"className":1888,"code":1889,"language":1890,"meta":151,"style":151},"language-yaml shiki shiki-themes github-light github-dark","spec:\n  containers:\n  - name: my-app\n    image: my-image\n    resources:\n      limits:\n        memory: \"512Mi\"   # Увеличьте, например, до 1Gi\n      requests:\n        memory: \"256Mi\"\n","yaml",[34,1892,1893,1901,1908,1922,1932,1939,1946,1959,1966],{"__ignoreMap":151},[155,1894,1895,1899],{"class":157,"line":158},[155,1896,1898],{"class":1897},"s9eBZ","spec",[155,1900,1813],{"class":447},[155,1902,1903,1906],{"class":157,"line":165},[155,1904,1905],{"class":1897},"  containers",[155,1907,1813],{"class":447},[155,1909,1910,1913,1916,1919],{"class":157,"line":179},[155,1911,1912],{"class":447},"  - ",[155,1914,1915],{"class":1897},"name",[155,1917,1918],{"class":447},": ",[155,1920,1921],{"class":172},"my-app\n",[155,1923,1924,1927,1929],{"class":157,"line":186},[155,1925,1926],{"class":1897},"    image",[155,1928,1918],{"class":447},[155,1930,1931],{"class":172},"my-image\n",[155,1933,1934,1937],{"class":157,"line":192},[155,1935,1936],{"class":1897},"    resources",[155,1938,1813],{"class":447},[155,1940,1941,1944],{"class":157,"line":317},[155,1942,1943],{"class":1897},"      limits",[155,1945,1813],{"class":447},[155,1947,1948,1951,1953,1956],{"class":157,"line":322},[155,1949,1950],{"class":1897},"        memory",[155,1952,1918],{"class":447},[155,1954,1955],{"class":172},"\"512Mi\"",[155,1957,1958],{"class":161},"   # Увеличьте, например, до 1Gi\n",[155,1960,1961,1964],{"class":157,"line":328},[155,1962,1963],{"class":1897},"      requests",[155,1965,1813],{"class":447},[155,1967,1968,1970,1972],{"class":157,"line":342},[155,1969,1950],{"class":1897},[155,1971,1918],{"class":447},[155,1973,1974],{"class":172},"\"256Mi\"\n",[63,1976,1977,1813,1979],{},[25,1978,527],{},[146,1980,1982],{"className":148,"code":1981,"language":150,"meta":151,"style":151},"kubectl apply -f ваш-манифест.yaml\n",[34,1983,1984],{"__ignoreMap":151},[155,1985,1986,1988,1991,1994],{"class":157,"line":158},[155,1987,36],{"class":168},[155,1989,1990],{"class":172}," apply",[155,1992,1993],{"class":280}," -f",[155,1995,1996],{"class":172}," ваш-манифест.yaml\n",[63,1998,1999],{},"Если контейнер стабильно работает — проблема была в лимитах. Оптимизируйте приложение или установите реалистичные лимиты.",[130,2001,2003],{"id":2002},"способ-3-проверка-и-исправление-команды-запуска-cmdentrypoint","Способ 3: Проверка и исправление команды запуска (CMD/ENTRYPOINT)",[21,2005,2006,2007,2010,2011,2014,2015,2018],{},"Контейнер должен запускать ",[25,2008,2009],{},"foreground-процесс",". Если ваш скрипт-точка входа (",[34,2012,2013],{},"entrypoint.sh",") запускает демон в фоне (",[34,2016,2017],{},"&",") и завершается, контейнер умрёт.",[21,2020,2021,2024,2025,606],{},[25,2022,2023],{},"Неправильно"," (в ",[34,2026,2013],{},[146,2028,2030],{"className":148,"code":2029,"language":150,"meta":151,"style":151},"#!/bin/sh\nmy-background-service &  # Запускает в фоне и завершает скрипт\n",[34,2031,2032,2037],{"__ignoreMap":151},[155,2033,2034],{"class":157,"line":158},[155,2035,2036],{"class":161},"#!/bin/sh\n",[155,2038,2039,2042,2045],{"class":157,"line":165},[155,2040,2041],{"class":168},"my-background-service",[155,2043,2044],{"class":447}," &  ",[155,2046,2047],{"class":161},"# Запускает в фоне и завершает скрипт\n",[21,2049,2050,382],{},[25,2051,2052],{},"Правильно",[146,2054,2056],{"className":148,"code":2055,"language":150,"meta":151,"style":151},"#!/bin/sh\nexec my-background-service  # exec заменяет shell процессом и не возвращает управление\n",[34,2057,2058,2062],{"__ignoreMap":151},[155,2059,2060],{"class":157,"line":158},[155,2061,2036],{"class":161},[155,2063,2064,2066,2069],{"class":157,"line":165},[155,2065,1643],{"class":280},[155,2067,2068],{"class":172}," my-background-service",[155,2070,2071],{"class":161},"  # exec заменяет shell процессом и не возвращает управление\n",[21,2073,2074,2075,84,2078,706],{},"Или, если нужно запустить несколько процессов, используйте менеджер процессов (например, ",[34,2076,2077],{},"tini",[34,2079,2080],{},"supervisord",[130,2082,2084],{"id":2083},"способ-4-временное-отключение-или-проверка-health-пробов","Способ 4: Временное отключение или проверка health-пробов",[21,2086,2087,2088,2091],{},"Некорректный ",[34,2089,2090],{},"livenessProbe"," — частая причина, особенно на ранних этапах разработки.",[60,2093,2094,2135,2140],{},[63,2095,2096,2099,2100],{},[25,2097,2098],{},"Временно отключите пробу"," в манифесте пода, закомментировав её секцию:\n",[146,2101,2103],{"className":1888,"code":2102,"language":1890,"meta":151,"style":151},"# livenessProbe:\n#   httpGet:\n#     path: /health\n#     port: 8080\n#   initialDelaySeconds: 30\n#   periodSeconds: 10\n",[34,2104,2105,2110,2115,2120,2125,2130],{"__ignoreMap":151},[155,2106,2107],{"class":157,"line":158},[155,2108,2109],{"class":161},"# livenessProbe:\n",[155,2111,2112],{"class":157,"line":165},[155,2113,2114],{"class":161},"#   httpGet:\n",[155,2116,2117],{"class":157,"line":179},[155,2118,2119],{"class":161},"#     path: /health\n",[155,2121,2122],{"class":157,"line":186},[155,2123,2124],{"class":161},"#     port: 8080\n",[155,2126,2127],{"class":157,"line":192},[155,2128,2129],{"class":161},"#   initialDelaySeconds: 30\n",[155,2131,2132],{"class":157,"line":317},[155,2133,2134],{"class":161},"#   periodSeconds: 10\n",[63,2136,2137,2138,91],{},"Примените манифест и проверьте, исчез ли ",[34,2139,1554],{},[63,2141,2142,2143,1813,2146],{},"Если проблема ушла — ",[25,2144,2145],{},"настройте пробу правильно",[653,2147,2148,2155,2172],{},[63,2149,2150,2151,2154],{},"Увеличьте ",[34,2152,2153],{},"initialDelaySeconds",", давая приложению время на запуск.",[63,2156,2157,2158,1657,2160,2163,2164,2167,2168,2171],{},"Убедитесь, что ",[34,2159,785],{},[34,2161,2162],{},"port"," корректны и сервис действительно отвечает ",[34,2165,2166],{},"2xx","/",[34,2169,2170],{},"3xx"," на этот эндпоинт.",[63,2173,2174,2175,2178,2179,2181],{},"Для приложений с долгой инициализацией используйте ",[34,2176,2177],{},"readinessProbe"," для контроля готовности принимать трафик, а ",[34,2180,2090],{}," — только для жизнеспособности.",[130,2183,2185],{"id":2184},"способ-5-проверка-переменных-окружения-и-конфигурационных-файлов","Способ 5: Проверка переменных окружения и конфигурационных файлов",[21,2187,2188,2189,2192,2193,2167,2196,2167,2199,2202],{},"Убедитесь, что все обязательные переменные окружения (",[34,2190,2191],{},"env",") и тома (",[34,2194,2195],{},"volumes",[34,2197,2198],{},"configMap",[34,2200,2201],{},"secret",") правильно указаны и доступны внутри контейнера.",[60,2204,2205,2254,2286],{},[63,2206,2207,2208],{},"Проверьте, что переменные передаются:\n",[146,2209,2211],{"className":148,"code":2210,"language":150,"meta":151,"style":151},"kubectl exec \u003Cимя-pod> -- printenv | grep -i \u003Cимя-важной-переменной>\n",[34,2212,2213],{"__ignoreMap":151},[155,2214,2215,2217,2220,2222,2225,2227,2229,2232,2235,2238,2241,2244,2246,2249,2252],{"class":157,"line":158},[155,2216,36],{"class":168},[155,2218,2219],{"class":172}," exec",[155,2221,1716],{"class":410},[155,2223,2224],{"class":172},"имя-po",[155,2226,1722],{"class":447},[155,2228,1804],{"class":410},[155,2230,2231],{"class":280}," --",[155,2233,2234],{"class":172}," printenv",[155,2236,2237],{"class":410}," |",[155,2239,2240],{"class":168}," grep",[155,2242,2243],{"class":280}," -i",[155,2245,1716],{"class":410},[155,2247,2248],{"class":172},"имя-важной-переменно",[155,2250,2251],{"class":447},"й",[155,2253,1725],{"class":410},[63,2255,2256,2257],{},"Если используется ConfigMap или Secret, проверьте его существование и данные:\n",[146,2258,2260],{"className":148,"code":2259,"language":150,"meta":151,"style":151},"kubectl get configmap \u003Cимя-configmap> -o yaml\n",[34,2261,2262],{"__ignoreMap":151},[155,2263,2264,2266,2268,2271,2273,2276,2278,2280,2283],{"class":157,"line":158},[155,2265,36],{"class":168},[155,2267,1317],{"class":172},[155,2269,2270],{"class":172}," configmap",[155,2272,1716],{"class":410},[155,2274,2275],{"class":172},"имя-configma",[155,2277,21],{"class":447},[155,2279,1804],{"class":410},[155,2281,2282],{"class":280}," -o",[155,2284,2285],{"class":172}," yaml\n",[63,2287,2288],{},"Проверьте права на смонтированные тома, если контейнер должен в них писать.",[16,2290,651],{"id":650},[653,2292,2293,2303,2313,2322,2336,2350],{},[63,2294,2295,2298,2299,2302],{},[25,2296,2297],{},"Всегда проверяйте логи"," (",[34,2300,2301],{},"kubectl logs --previous",") при первом запуске нового пода.",[63,2304,2305,2308,2309,2312],{},[25,2306,2307],{},"Начинайте с адекватных лимитов ресурсов",". Используйте ",[34,2310,2311],{},"kubectl top pod"," для мониторинга фактического потребления.",[63,2314,2315,2318,2319,2321],{},[25,2316,2317],{},"Корректно настраивайте health-проб",". ",[34,2320,2153],{}," должен превышать время холодного старта приложения.",[63,2323,2324,2331,2332,2335],{},[25,2325,2326,2327,2330],{},"Используйте ",[34,2328,2329],{},"restartPolicy: OnFailure"," для Jobs",", а не ",[34,2333,2334],{},"Always",", чтобы избежать бесконечных циклов при ошибках в задачах.",[63,2337,2338,2345,2346,2349],{},[25,2339,2340,2341,2344],{},"Собирайте образы с ",[34,2342,2343],{},"USER"," без прав root",", если это возможно, и настройте права на директории (",[34,2347,2348],{},"chown",") на этапе сборки образа, а не в entrypoint.",[63,2351,2352,2298,2355,2358],{},[25,2353,2354],{},"Тестируйте образ локально",[34,2356,2357],{},"docker run --rm \u003Cimage> \u003Ccommand>",") перед деплоем в Kubernetes, чтобы отделить проблемы с образом от проблем с оркестрацией.",[708,2360,2361],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":151,"searchDepth":165,"depth":165,"links":2363},[2364,2365,2366,2373],{"id":1548,"depth":165,"text":1549},{"id":57,"depth":165,"text":58},{"id":127,"depth":165,"text":128,"children":2367},[2368,2369,2370,2371,2372],{"id":1687,"depth":179,"text":1688},{"id":1865,"depth":179,"text":1866},{"id":2002,"depth":179,"text":2003},{"id":2083,"depth":179,"text":2084},{"id":2184,"depth":179,"text":2185},{"id":650,"depth":165,"text":651},"2026-02-15 20:11:01","Подробное руководство по диагностике и устранению ошибки CrashLoopBackOff в Kubernetes. Пошаговые инструкции и профилактика. Узнайте, как быстро восстановить работу подов.","15-30 мин",[2378,2381,2384,2387],{"question":2379,"answer":2380},"Чем CrashLoopBackOff отличается от ImagePullBackOff?","ImagePullBackOff означает, что Kubernetes не может скачать образ контейнера (ошибка сети, неверное имя образа, нет доступа к registry). CrashLoopBackOff — образ скачан, но контейнер внутри него сразу завершается с ошибкой.",{"question":2382,"answer":2383},"Как посмотреть логи падавшего контейнера, если он уже перезапустился?","Используйте флаг `--previous` с командой `kubectl logs`. Пример: `kubectl logs \u003Cимя-пода> --previous`. Это покажет логи предыдущего экземпляра контейнера, который завершился.",{"question":2385,"answer":2386},"Что такое `restartPolicy` и как он влияет на CrashLoopBackOff?","`restartPolicy: Always` (по умолчанию для Pod'ов) заставляет kubelet бесконечно пытаться перезапустить упавший контейнер, что и приводит к состоянию CrashLoopBackOff. Для одноразовых задач (Job) используется `restartPolicy: OnFailure` или `Never`.",{"question":2388,"answer":2389},"Может ли нехватка памяти на ноде (нене pod) вызывать CrashLoopBackOff?","Да, если нода (узел) физически не имеет достаточно ресурсов для запуска контейнера, kubelet может завершать его. Однако чаще всего причина внутри самого контейнера (OOMKilled из-за лимитов памяти самого Pod'а).",[2391,2394,2397,2400,2403],{"name":2392,"text":2393},"Проверьте статус пода и текущие события","Выполните `kubectl get pod \u003Cимя-пода> -o wide` и `kubectl describe pod \u003Cимя-пода>`. В секции `Events` ищите события `Failed` или `BackOff`. Обратите внимание на последний `State` контейнера.",{"name":2395,"text":2396},"Получите логи контейнера (предыдущего и текущего)","Используйте `kubectl logs \u003Cимя-пода> --previous` для логов последнего упавшего контейнера и `kubectl logs \u003Cимя-пода>` для текущего (если он запустился на мгновение). Анализируйте последние строки на наличие исключений (stack trace) или сообщений об ошибках.",{"name":2398,"text":2399},"Проверьте корректность команды запуска (CMD/ENTRYPOINT)","Убедитесь, что в Dockerfile или манифесте Pod'а указана рабочая команда, которая запускает foreground-процесс и не завершается сразу. Проверьте, что все необходимые аргументы переданы.",{"name":2401,"text":2402},"Проверьте настройки лимитов ресурсов (requests/limits)","В манифесте пода найдите секции `resources`. Слишком низкие `limits.memory` могут привести к `OOMKilled`. Попробуйте временно убрать лимиты или значительно увеличить их, чтобы проверить гипотезу.",{"name":2404,"text":2405},"Настройте health-проб (liveness/readiness) или временно отключите их","Некорректно настроенный `livenessProbe` может постоянно убивать здоровый контейнер. Временно закомментируйте пробы в манифесте, примените (`kubectl apply -f`) и проверьте, исчезла ли проблема.","PT20M",[2408,2409,2410,2411,2412,2413,2414,2415],"CrashLoopBackOff kubectl","k8s CrashLoopBackOff исправить","поды в цикле сбоев kubernetes","контейнер постоянно падает k8s","ошибка CrashLoopBackOff причины","kubectl describe CrashLoopBackOff","kubernetes pod restart backoff","как починить CrashLoopBackOff",{},"general",[2419,2420,2421],"/errors/linux/kubectl-imagepullbackoff","/guides/linux/kubernetes-debug-pods","/errors/linux/k8s-oomkilled","Ошибки Kubernetes",{"title":1539,"description":2375},"errors/linux/kubectl-crashloopbackoff","Статья объясняет, что такое состояние CrashLoopBackOff в Kubernetes, какие основные причины вызывают бесконечный цикл падений контейнера, и предоставляет проверенные способы их устранения — от анализа логов до настройки health-проб.",[784,36,2427,2428,2429,2430,2431],"поды (pods)","контейнеры","ошибка","k8s","отладка","kSYK5ppAxDtpz_J5FK8w6I_136WeeMaDlF6ZU-dNyRM",{"id":2434,"title":2435,"appliesTo":2436,"author":11,"body":2440,"canonical":721,"code":721,"createdAt":3134,"description":3135,"difficulty":1485,"draft":725,"estimatedTime":726,"extension":727,"faq":3136,"howToSteps":3149,"howToTotalTime":757,"image":721,"keywords":3162,"locale":769,"meta":3171,"navigation":182,"path":776,"platform":772,"related":3172,"section":3175,"seo":3176,"severity":721,"stem":3177,"summary":3178,"tags":3179,"twitterCreator":721,"twitterSite":721,"type":1535,"updatedAt":3134,"__hash__":3183},"content_ru/guides/linux/configure-kubectl-context.md","Настройка контекста kubectl в Linux: полное руководство",[2437,2438,7,2439],"kubectl 1.20+","Kubernetes 1.20+","CentOS 8+",{"type":13,"value":2441,"toc":3108},[2442,2444,2451,2454,2468,2470,2473,2506,2508,2512,2515,2535,2538,2544,2555,2561,2575,2578,2582,2585,2601,2611,2650,2655,2685,2701,2705,2708,2725,2742,2746,2751,2765,2770,2775,2787,2793,2798,2810,2820,2824,2827,2843,2867,2869,2872,2903,2905,2912,2924,2930,2945,2951,2969,2973,2989,2991,2995,3011,3015,3019,3022,3064,3067,3071,3074,3101,3106],[16,2443,973],{"id":972},[21,2445,2446,2447,2450],{},"Работая с Kubernetes, особенно в продакшн-среде или при наличии нескольких кластеров (dev, staging, prod), вам постоянно нужно переключаться между ними. ",[25,2448,2449],{},"Контекст kubectl"," — это именно тот механизм, который хранит комбинацию «кластер + пользователь + namespace» и позволяет мгновенно переключаться между разными окружениями одной командой.",[21,2452,2453],{},"После выполнения этого гайда вы сможете:",[653,2455,2456,2459,2462,2465],{},[63,2457,2458],{},"Просматривать все доступные контексты.",[63,2460,2461],{},"Создавать и настраивать новые контексты.",[63,2463,2464],{},"Быстро переключаться между кластерами.",[63,2466,2467],{},"Управлять пространствами имён по умолчанию для каждого контекста.",[16,2469,980],{"id":979},[21,2471,2472],{},"Перед началом убедитесь, что:",[60,2474,2475,2481,2488,2499],{},[63,2476,2477,2478,2480],{},"Установлен и работоспособен ",[25,2479,36],{}," (версия 1.20 или выше).",[63,2482,2483,2484,2487],{},"У вас уже есть доступ как минимум к одному Kubernetes-кластеру (т.е. в ",[34,2485,2486],{},"~/.kube/config"," уже есть хотя бы один рабочий контекст).",[63,2489,2490,2491,2494,2495,2498],{},"Вы обладаете необходимыми правами для доступа к кластерам (обычно через ",[34,2492,2493],{},"kubeconfig","-файл или ",[34,2496,2497],{},"aws eks"," и т.п.).",[63,2500,2501,2502,2505],{},"Вы работаете в ",[25,2503,2504],{},"Linux","-окружении (Ubuntu, CentOS, Fedora и др.) сbash-совместимой оболочкой.",[16,2507,1029],{"id":1028},[130,2509,2511],{"id":2510},"шаг-1-проверьте-текущую-конфигурацию","Шаг 1: Проверьте текущую конфигурацию",[21,2513,2514],{},"Сначала узнайте, что уже есть в вашей конфигурации.",[146,2516,2518],{"className":148,"code":2517,"language":150,"meta":151,"style":151},"# Показать все контексты из текущего kubeconfig\nkubectl config get-contexts\n",[34,2519,2520,2525],{"__ignoreMap":151},[155,2521,2522],{"class":157,"line":158},[155,2523,2524],{"class":161},"# Показать все контексты из текущего kubeconfig\n",[155,2526,2527,2529,2532],{"class":157,"line":165},[155,2528,36],{"class":168},[155,2530,2531],{"class":172}," config",[155,2533,2534],{"class":172}," get-contexts\n",[21,2536,2537],{},"Вывод будет похож на таблицу:",[146,2539,2542],{"className":2540,"code":2541,"language":801},[1289],"CURRENT   NAME                      CLUSTER                   AUTHINFO                  NAMESPACE\n*         my-prod-cluster           prod-cluster.example.com  prod-user                 default\n          my-dev-cluster            dev-cluster.example.com   dev-user                  staging\n",[34,2543,2541],{"__ignoreMap":151},[21,2545,2546,2547,2550,2551,2554],{},"Звёздочка (",[34,2548,2549],{},"*",") в колонке ",[34,2552,2553],{},"CURRENT"," указывает на активный в данный момент контекст.",[21,2556,2557,2558,382],{},"Также полезно посмотреть ",[25,2559,2560],{},"полный файл конфигурации",[146,2562,2564],{"className":148,"code":2563,"language":150,"meta":151,"style":151},"kubectl config view\n",[34,2565,2566],{"__ignoreMap":151},[155,2567,2568,2570,2572],{"class":157,"line":158},[155,2569,36],{"class":168},[155,2571,2531],{"class":172},[155,2573,2574],{"class":172}," view\n",[21,2576,2577],{},"Этот вывод в формате YAML покажет все кластеры, пользователей (credentials) и контексты.",[130,2579,2581],{"id":2580},"шаг-2-создайте-новый-контекст","Шаг 2: Создайте новый контекст",[21,2583,2584],{},"Предположим, у вас уже есть:",[653,2586,2587,2594],{},[63,2588,2589,2590,2593],{},"Кластер с именем ",[34,2591,2592],{},"staging-cluster"," (уже добавлен в config).",[63,2595,2596,2597,2600],{},"Пользователь (auth info) с именем ",[34,2598,2599],{},"admin-staging"," (уже добавлен).",[21,2602,2603,2604,2607,2608,382],{},"Теперь создадим контекст ",[34,2605,2606],{},"staging-admin",", который по умолчанию будет использовать пространство имён ",[34,2609,2610],{},"monitoring",[146,2612,2614],{"className":148,"code":2613,"language":150,"meta":151,"style":151},"kubectl config set-context staging-admin \\\n  --cluster=staging-cluster \\\n  --user=admin-staging \\\n  --namespace=monitoring\n",[34,2615,2616,2631,2638,2645],{"__ignoreMap":151},[155,2617,2618,2620,2622,2625,2628],{"class":157,"line":158},[155,2619,36],{"class":168},[155,2621,2531],{"class":172},[155,2623,2624],{"class":172}," set-context",[155,2626,2627],{"class":172}," staging-admin",[155,2629,2630],{"class":280}," \\\n",[155,2632,2633,2636],{"class":157,"line":165},[155,2634,2635],{"class":280},"  --cluster=staging-cluster",[155,2637,2630],{"class":280},[155,2639,2640,2643],{"class":157,"line":179},[155,2641,2642],{"class":280},"  --user=admin-staging",[155,2644,2630],{"class":280},[155,2646,2647],{"class":157,"line":186},[155,2648,2649],{"class":280},"  --namespace=monitoring\n",[21,2651,2652],{},[25,2653,2654],{},"Что делает эта команда:",[653,2656,2657,2663,2668,2679],{},[63,2658,2659,2662],{},[34,2660,2661],{},"set-context"," — операция создания/обновления контекста.",[63,2664,2665,2667],{},[34,2666,2606],{}," — имя нового контекста.",[63,2669,2670,1767,2673,2676,2677,91],{},[34,2671,2672],{},"--cluster",[34,2674,2675],{},"--user"," — ссылаются на уже существующие записи в ",[34,2678,2493],{},[63,2680,2681,2684],{},[34,2682,2683],{},"--namespace"," — устанавливает пространство имён по умолчанию для этого контекста (необязательный параметр).",[2686,2687,2688],"blockquote",{},[21,2689,2690,2691,2694,2695,2697,2698,91],{},"💡 ",[25,2692,2693],{},"Совет",": Если вы хотите, чтобы контекст не имел пространства имён по умолчанию, просто не используйте флаг ",[34,2696,2683],{},". Тогда будет использоваться ",[34,2699,2700],{},"default",[130,2702,2704],{"id":2703},"шаг-3-переключитесь-на-новый-контекст","Шаг 3: Переключитесь на новый контекст",[21,2706,2707],{},"Теперь сделайте только что созданный контекст активным:",[146,2709,2711],{"className":148,"code":2710,"language":150,"meta":151,"style":151},"kubectl config use-context staging-admin\n",[34,2712,2713],{"__ignoreMap":151},[155,2714,2715,2717,2719,2722],{"class":157,"line":158},[155,2716,36],{"class":168},[155,2718,2531],{"class":172},[155,2720,2721],{"class":172}," use-context",[155,2723,2724],{"class":172}," staging-admin\n",[21,2726,2727,2728,455,2730,2733,2734,2736,2737,2739,2740,91],{},"После этого все последующие команды ",[34,2729,36],{},[34,2731,2732],{},"kubectl get pods",") будут выполняться против кластера ",[34,2735,2592],{}," с пользователем ",[34,2738,2599],{}," и в namespace ",[34,2741,2610],{},[130,2743,2745],{"id":2744},"шаг-4-проверьте-результат","Шаг 4: Проверьте результат",[60,2747,2748],{},[63,2749,2750],{},"Убедитесь, что контекст изменился:",[146,2752,2754],{"className":148,"code":2753,"language":150,"meta":151,"style":151},"kubectl config current-context\n",[34,2755,2756],{"__ignoreMap":151},[155,2757,2758,2760,2762],{"class":157,"line":158},[155,2759,36],{"class":168},[155,2761,2531],{"class":172},[155,2763,2764],{"class":172}," current-context\n",[21,2766,2767,2768],{},"Вывод должен быть: ",[34,2769,2606],{},[60,2771,2772],{"start":165},[63,2773,2774],{},"Сделайте тестовый запрос к API кластера:",[146,2776,2777],{"className":148,"code":1308,"language":150,"meta":151,"style":151},[34,2778,2779],{"__ignoreMap":151},[155,2780,2781,2783,2785],{"class":157,"line":158},[155,2782,36],{"class":168},[155,2784,1317],{"class":172},[155,2786,1320],{"class":172},[21,2788,2789,2790,2792],{},"Если вы видите список нод вашего ",[34,2791,2592],{}," — контекст работает корректно.",[60,2794,2795],{"start":179},[63,2796,2797],{},"Проверьте, что пространство имён по умолчанию установлено:",[146,2799,2800],{"className":148,"code":1569,"language":150,"meta":151,"style":151},[34,2801,2802],{"__ignoreMap":151},[155,2803,2804,2806,2808],{"class":157,"line":158},[155,2805,36],{"class":168},[155,2807,1317],{"class":172},[155,2809,1580],{"class":172},[21,2811,2812,2813,2816,2817,2819],{},"Команда покажет поды ",[25,2814,2815],{},"только"," из namespace ",[34,2818,2610],{}," (если они там есть).",[130,2821,2823],{"id":2822},"шаг-5-опционально-удалите-ненужный-контекст","Шаг 5: (Опционально) Удалите ненужный контекст",[21,2825,2826],{},"Если контекст больше не нужен, удалите его из конфигурации:",[146,2828,2830],{"className":148,"code":2829,"language":150,"meta":151,"style":151},"kubectl config delete-context staging-admin\n",[34,2831,2832],{"__ignoreMap":151},[155,2833,2834,2836,2838,2841],{"class":157,"line":158},[155,2835,36],{"class":168},[155,2837,2531],{"class":172},[155,2839,2840],{"class":172}," delete-context",[155,2842,2724],{"class":172},[2686,2844,2845],{},[21,2846,2847,2848,2851,2852,2855,2856,2859,2860,2863,2864,2866],{},"⚠️ ",[25,2849,2850],{},"Важно",": Эта команда удаляет только запись о контексте, но ",[25,2853,2854],{},"не удаляет"," сами записи о кластере (",[34,2857,2858],{},"clusters.staging-cluster",") и пользователе (",[34,2861,2862],{},"users.admin-staging",") из файла ",[34,2865,2493],{},". Они останутся и могут использоваться в других контекстах.",[16,2868,1302],{"id":1301},[21,2870,2871],{},"Критерии успешной настройки:",[60,2873,2874,2880,2887,2893],{},[63,2875,2876,2879],{},[34,2877,2878],{},"kubectl config current-context"," возвращает имя вашего нового контекста.",[63,2881,2882,2883,2886],{},"Команды ",[34,2884,2885],{},"kubectl get ..."," взаимодействуют с правильным кластером.",[63,2888,2889,2890,2892],{},"(Если задан namespace) ",[34,2891,2732],{}," показывает ресурсы только в указанном пространстве имён.",[63,2894,2895,2896,2898,2899,2902],{},"Файл ",[34,2897,2486],{}," содержит новую секцию ",[34,2900,2901],{},"contexts:"," с вашими параметрами.",[16,2904,1333],{"id":1332},[130,2906,2908,2909],{"id":2907},"ошибка-error-no-context-exists-with-name","Ошибка: ",[34,2910,2911],{},"error: no context exists with name ...",[21,2913,2914,2916,2917,2919,2920,2923],{},[25,2915,1342],{},": Контекст с таким именем не найден в конфигурации.\n",[25,2918,1348],{},": Проверьте имя через ",[34,2921,2922],{},"kubectl config get-contexts"," и используйте точное написание.",[130,2925,2908,2927],{"id":2926},"ошибка-unable-to-connect-to-the-server-dial-tcp-io-timeout",[34,2928,2929],{},"Unable to connect to the server: dial tcp ...: i/o timeout",[21,2931,2932,2934,2935,2937,2938,2940,2941,2944],{},[25,2933,1342],{},": Контекст указывает на неверный кластер или кластер недоступен.\n",[25,2936,1348],{},": Проверьте, что в ",[34,2939,2672],{}," указано правильное имя кластера из ",[34,2942,2943],{},"kubectl config get-clusters",". Убедитесь, что у вас есть сетевой доступ к API-серверу кластера.",[130,2946,2908,2948],{"id":2947},"ошибка-you-must-be-logged-in-to-the-server-unauthorized",[34,2949,2950],{},"You must be logged in to the server (Unauthorized)",[21,2952,2953,2955,2956,2958,2959,2961,2962,2964,2965,2968],{},[25,2954,1342],{},": Контекст использует пользователя (auth info), у которого нет прав или отсутствуют корректные credentials.\n",[25,2957,1348],{},": Проверьте, что пользователь (",[34,2960,2675],{},") существует в конфиге и что для него заданы правильные токены/certificates. Возможно, нужно обновить ",[34,2963,2493],{}," через ",[34,2966,2967],{},"aws eks update-kubeconfig"," или аналогичный инструмент.",[130,2970,2972],{"id":2971},"контекст-переключился-но-команды-всё-равно-идут-на-старый-кластер","Контекст переключился, но команды всё равно идут на старый кластер",[21,2974,2975,2977,2978,2981,2982,2985,2986,2988],{},[25,2976,1342],{},": В команде явно указан флаг ",[34,2979,2980],{},"--context"," или переменная окружения ",[34,2983,2984],{},"KUBECONTEXT",".\n",[25,2987,1348],{},": Убедитесь, что вы не переопределяете контекст в самой команде или в алиасах/скриптах.",[1297,2990],{},[130,2992,2994],{"id":2993},"пространство-имён-по-умолчанию-не-применяется","Пространство имён по умолчанию не применяется",[21,2996,2997,2999,3000,3002,3003,2985,3005,3007,3008,91],{},[25,2998,1342],{},": Контекст был создан без флага ",[34,3001,2683],{},", или в команде явно указан ",[34,3004,2683],{},[25,3006,1348],{},": Пересоздайте контекст с нужным namespace или явно указывайте namespace в каждой команде: ",[34,3009,3010],{},"kubectl get pods -n monitoring",[16,3012,3014],{"id":3013},"дополнительные-возможности","Дополнительные возможности",[130,3016,3018],{"id":3017},"использование-нескольких-файлов-kubeconfig","Использование нескольких файлов kubeconfig",[21,3020,3021],{},"Вы можете объединять конфигурации из разных файлов:",[146,3023,3025],{"className":148,"code":3024,"language":150,"meta":151,"style":151},"export KUBECONFIG=~/.kube/config:~/.kube/eks-config\nkubectl config view --flatten > merged-config\n",[34,3026,3027,3046],{"__ignoreMap":151},[155,3028,3029,3031,3034,3037,3040,3043],{"class":157,"line":158},[155,3030,485],{"class":410},[155,3032,3033],{"class":447}," KUBECONFIG",[155,3035,3036],{"class":410},"=~",[155,3038,3039],{"class":447},"/.kube/config:",[155,3041,3042],{"class":410},"~",[155,3044,3045],{"class":447},"/.kube/eks-config\n",[155,3047,3048,3050,3052,3055,3058,3061],{"class":157,"line":165},[155,3049,36],{"class":168},[155,3051,2531],{"class":172},[155,3053,3054],{"class":172}," view",[155,3056,3057],{"class":280}," --flatten",[155,3059,3060],{"class":410}," >",[155,3062,3063],{"class":172}," merged-config\n",[21,3065,3066],{},"Это удобно, если у вас отдельные конфиги для EKS, GKE и on-premise кластеров.",[130,3068,3070],{"id":3069},"установка-контекста-для-конкретного-namespace-без-создания-нового-контекста","Установка контекста для конкретного namespace без создания нового контекста",[21,3072,3073],{},"Если вам нужно разово выполнить команду в другом namespace, не меняя контекст, используйте:",[146,3075,3077],{"className":148,"code":3076,"language":150,"meta":151,"style":151},"kubectl get pods -n \u003Cnamespace>\n",[34,3078,3079],{"__ignoreMap":151},[155,3080,3081,3083,3085,3088,3091,3093,3096,3099],{"class":157,"line":158},[155,3082,36],{"class":168},[155,3084,1317],{"class":172},[155,3086,3087],{"class":172}," pods",[155,3089,3090],{"class":280}," -n",[155,3092,1716],{"class":410},[155,3094,3095],{"class":172},"namespac",[155,3097,3098],{"class":447},"e",[155,3100,1725],{"class":410},[21,3102,3103,3104,91],{},"Но для частого переключения между разными проектами в одном кластере всё же удобнее создать отдельные контексты с разными ",[34,3105,2683],{},[708,3107,710],{},{"title":151,"searchDepth":165,"depth":165,"links":3109},[3110,3111,3112,3119,3120,3130],{"id":972,"depth":165,"text":973},{"id":979,"depth":165,"text":980},{"id":1028,"depth":165,"text":1029,"children":3113},[3114,3115,3116,3117,3118],{"id":2510,"depth":179,"text":2511},{"id":2580,"depth":179,"text":2581},{"id":2703,"depth":179,"text":2704},{"id":2744,"depth":179,"text":2745},{"id":2822,"depth":179,"text":2823},{"id":1301,"depth":165,"text":1302},{"id":1332,"depth":165,"text":1333,"children":3121},[3122,3124,3126,3128,3129],{"id":2907,"depth":179,"text":3123},"Ошибка: error: no context exists with name ...",{"id":2926,"depth":179,"text":3125},"Ошибка: Unable to connect to the server: dial tcp ...: i/o timeout",{"id":2947,"depth":179,"text":3127},"Ошибка: You must be logged in to the server (Unauthorized)",{"id":2971,"depth":179,"text":2972},{"id":2993,"depth":179,"text":2994},{"id":3013,"depth":165,"text":3014,"children":3131},[3132,3133],{"id":3017,"depth":179,"text":3018},{"id":3069,"depth":179,"text":3070},"2026-02-16 10:33:08","Узнайте, как создавать, переключать и управлять контекстами kubectl для работы с несколькими Kubernetes-кластерами. Пошаговая инструкция с примерами команд.",[3137,3140,3143,3146],{"question":3138,"answer":3139},"Что такое контекст в kubectl и зачем он нужен?","Контекст — это набор параметров (кластер, пользователь, пространство имён), который позволяет быстро переключаться между разными окружениями Kubernetes без повторного ввода команд.",{"question":3141,"answer":3142},"Как посмотреть все доступные контексты?","Выполните команду `kubectl config get-contexts`. Она покажет список всех контекстов из вашего файла `kubeconfig` и отметит текущий активный.",{"question":3144,"answer":3145},"Где хранится файл конфигурации kubectl (kubeconfig)?","По умолчанию — в `~/.kube/config`. Вы можете задать другой путь через переменную окружения `KUBECONFIG` или флаг `--kubeconfig`.",{"question":3147,"answer":3148},"Как временно переключиться на другой контекст без изменения файла config?","Используйте флаг `--context` в команде, например: `kubectl get pods --context=my-dev-cluster`. Это не меняет текущий контекст по умолчанию.",[3150,3153,3156,3159],{"name":3151,"text":3152},"Проверьте текущую конфигурацию","Узнайте, какой контекст активен сейчас и какие контексты уже доступны в вашем файле `kubeconfig`.",{"name":3154,"text":3155},"Создайте новый контекст","Скомбинируйте существующие кластер и пользователь в новый контекст с понятным именем.",{"name":3157,"text":3158},"Переключитесь на новый контекст","Сделайте созданный контекст активным по умолчанию для всех последующих команд kubectl.",{"name":3160,"text":3161},"Убедитесь в работоспособности","Выполните простой запрос к кластеру, чтобы проверить, что контекст настроен правильно.",[3163,3164,3165,3166,3167,3168,3169,3170],"kubectl config set-context","переключение контекста kubectl","kubeconfig файл linux","как создать контекст kubectl","управление несколькими кластерами kubectl","kubectl use-context пример","kubectl get-contexts","конфигурация kubectl linux",{},[3173,3174,771],"/guides/linux/install-kubectl-linux","/guides/linux/kubectl-commands-cheatsheet","Гайды Kubernetes",{"title":2435,"description":3135},"guides/linux/configure-kubectl-context","Это руководство поможет вам настроить и использовать контексты kubectl в Linux, чтобы легко переключаться между разными Kubernetes-кластерами, пользователями и пространствами имён.",[784,36,3180,2430,3181,3182,772],"конфигурация","context","cluster","syFO4qYULEFBJLdxMYii-lqdZbRz7_uoNDqGzKmxj8E"]