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