[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/kubernetes-getting-started":3,"mdc--vt9bt-key":654,"mdc--44v66x-key":665,"mdc--mddv6m-key":673,"mdc--dbqll-key":698,"mdc--tuj6fy-key":706,"mdc-lbqwz3-key":714,"mdc--jh1jtv-key":722,"mdc-dhqo8r-key":730,"mdc--xb00hl-key":738,"related-/guides/linux/docker-compose-setup,/guides/linux/ubuntu-server-hardening,/guides/linux/ssh-key-auth":746},{"id":4,"title":5,"appliesTo":6,"author":10,"body":11,"canonical":587,"code":587,"createdAt":588,"description":589,"difficulty":590,"draft":591,"estimatedTime":592,"extension":593,"faq":594,"howToSteps":607,"howToTotalTime":623,"image":587,"keywords":624,"locale":632,"meta":633,"navigation":634,"path":635,"platform":636,"related":637,"section":641,"seo":642,"severity":587,"stem":643,"summary":644,"tags":645,"twitterCreator":587,"twitterSite":587,"type":652,"updatedAt":588,"__hash__":653},"content_ru/guides/linux/kubernetes-getting-started.md","Запускаем Kubernetes на Linux: полный гайд для начинающих",[7,8,9],"Ubuntu 22.04/24.04 LTS","Debian 12 Bookworm","Fedora 39+","FixPedia Team",{"type":12,"value":13,"toc":576},"minimark",[14,19,28,32,35,58,62,65,110,117,149,159,163,170,225,232,273,276,280,283,311,314,336,342,346,352,374,388,392,399,437,440,457,464,468,471,500,514,518,572],[15,16,18],"h2",{"id":17},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,21,22,23,27],"p",{},"Kubernetes стал отраслевым стандартом оркестрации контейнеров. Понимание его архитектуры и умение управлять кластером открывает прямой путь к DevOps-инженерии и современным практикам CI/CD. В этом руководстве вы развернёте полностью рабочий локальный кластер на Linux, познакомитесь с утилитой ",[24,25,26],"code",{},"kubectl"," и запустите своё первое приложение. После прохождения гайда вы сможете безопасно экспериментировать с деплоями, сервисами и масштабированием, не затрагивая рабочие среды.",[15,29,31],{"id":30},"требования-подготовка","Требования / Подготовка",[20,33,34],{},"Перед началом убедитесь, что ваша система соответствует минимальным параметрам:",[36,37,38,42,45,48,51],"ul",{},[39,40,41],"li",{},"Linux-дистрибутив на базе Debian или Ubuntu (22.04/24.04)",[39,43,44],{},"Минимум 2 ГБ ОЗУ и 2 ядра процессора",[39,46,47],{},"20 ГБ свободного дискового пространства",[39,49,50],{},"Стабильное подключение к интернету",[39,52,53,54,57],{},"Права ",[24,55,56],{},"sudo"," или прямой root-доступ",[15,59,61],{"id":60},"шаг-1-обновление-системы-и-отключение-swap","Шаг 1: Обновление системы и отключение swap",[20,63,64],{},"Kubernetes не поддерживает работу с активным файлом подкачки. Сначала обновите списки пакетов и установите базовые утилиты:",[66,67,72],"pre",{"className":68,"code":69,"language":70,"meta":71,"style":71},"language-bash shiki shiki-themes github-light github-dark","sudo apt update && sudo apt install -y curl apt-transport-https\n","bash","",[24,73,74],{"__ignoreMap":71},[75,76,79,82,86,89,93,95,97,100,104,107],"span",{"class":77,"line":78},"line",1,[75,80,56],{"class":81},"sScJk",[75,83,85],{"class":84},"sZZnC"," apt",[75,87,88],{"class":84}," update",[75,90,92],{"class":91},"sVt8B"," && ",[75,94,56],{"class":81},[75,96,85],{"class":84},[75,98,99],{"class":84}," install",[75,101,103],{"class":102},"sj4cs"," -y",[75,105,106],{"class":84}," curl",[75,108,109],{"class":84}," apt-transport-https\n",[20,111,112,113,116],{},"Отключите swap для текущей сессии и закомментируйте соответствующую строку в ",[24,114,115],{},"/etc/fstab",", чтобы отключение сохранялось после перезагрузки:",[66,118,120],{"className":68,"code":119,"language":70,"meta":71,"style":71},"sudo swapoff -a\nsudo sed -i '/ swap / s/^\\(.*\\)$/#\\1/g' /etc/fstab\n",[24,121,122,132],{"__ignoreMap":71},[75,123,124,126,129],{"class":77,"line":78},[75,125,56],{"class":81},[75,127,128],{"class":84}," swapoff",[75,130,131],{"class":102}," -a\n",[75,133,135,137,140,143,146],{"class":77,"line":134},2,[75,136,56],{"class":81},[75,138,139],{"class":84}," sed",[75,141,142],{"class":102}," -i",[75,144,145],{"class":84}," '/ swap / s/^\\(.*\\)$/#\\1/g'",[75,147,148],{"class":84}," /etc/fstab\n",[150,151,152],"blockquote",{},[20,153,154,155,158],{},"💡 Совет: При использовании виртуальных машин выделяйте под гостевую ОС минимум 4 ГБ ОЗУ. Это предотвратит падение ",[24,156,157],{},"etcd"," и обеспечит стабильную работу API-сервера.",[15,160,162],{"id":161},"шаг-2-установка-и-настройка-containerd","Шаг 2: Установка и настройка containerd",[20,164,165,166,169],{},"Современные версии Kubernetes работают с CRI-совместимыми средами выполнения. Установим ",[24,167,168],{},"containerd"," и подготовим конфигурацию:",[66,171,173],{"className":68,"code":172,"language":70,"meta":71,"style":71},"sudo apt install -y containerd\nsudo mkdir -p /etc/containerd\ncontainerd config default | sudo tee /etc/containerd/config.toml\n",[24,174,175,188,201],{"__ignoreMap":71},[75,176,177,179,181,183,185],{"class":77,"line":78},[75,178,56],{"class":81},[75,180,85],{"class":84},[75,182,99],{"class":84},[75,184,103],{"class":102},[75,186,187],{"class":84}," containerd\n",[75,189,190,192,195,198],{"class":77,"line":134},[75,191,56],{"class":81},[75,193,194],{"class":84}," mkdir",[75,196,197],{"class":102}," -p",[75,199,200],{"class":84}," /etc/containerd\n",[75,202,204,206,209,212,216,219,222],{"class":77,"line":203},3,[75,205,168],{"class":81},[75,207,208],{"class":84}," config",[75,210,211],{"class":84}," default",[75,213,215],{"class":214},"szBVR"," |",[75,217,218],{"class":81}," sudo",[75,220,221],{"class":84}," tee",[75,223,224],{"class":84}," /etc/containerd/config.toml\n",[20,226,227,228,231],{},"Включите поддержку ",[24,229,230],{},"systemd"," cgroup драйвера. Это рекомендуемый способ управления ресурсами, который гарантирует корректное взаимодействие с планировщиком:",[66,233,235],{"className":68,"code":234,"language":70,"meta":71,"style":71},"sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml\nsudo systemctl restart containerd\nsudo systemctl enable containerd\n",[24,236,237,250,262],{"__ignoreMap":71},[75,238,239,241,243,245,248],{"class":77,"line":78},[75,240,56],{"class":81},[75,242,139],{"class":84},[75,244,142],{"class":102},[75,246,247],{"class":84}," 's/SystemdCgroup = false/SystemdCgroup = true/g'",[75,249,224],{"class":84},[75,251,252,254,257,260],{"class":77,"line":134},[75,253,56],{"class":81},[75,255,256],{"class":84}," systemctl",[75,258,259],{"class":84}," restart",[75,261,187],{"class":84},[75,263,264,266,268,271],{"class":77,"line":203},[75,265,56],{"class":81},[75,267,256],{"class":84},[75,269,270],{"class":84}," enable",[75,272,187],{"class":84},[274,275],"in-article-ad",{},[15,277,279],{"id":278},"шаг-3-развёртывание-локального-кластера","Шаг 3: Развёртывание локального кластера",[20,281,282],{},"Minikube предоставляет быструю изолированную среду, идеально подходящую для обучения. Скачайте актуальный бинарник и сделайте его исполняемым:",[66,284,286],{"className":68,"code":285,"language":70,"meta":71,"style":71},"curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64\nsudo install minikube-linux-amd64 /usr/local/bin/minikube\n",[24,287,288,299],{"__ignoreMap":71},[75,289,290,293,296],{"class":77,"line":78},[75,291,292],{"class":81},"curl",[75,294,295],{"class":102}," -LO",[75,297,298],{"class":84}," https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64\n",[75,300,301,303,305,308],{"class":77,"line":134},[75,302,56],{"class":81},[75,304,99],{"class":84},[75,306,307],{"class":84}," minikube-linux-amd64",[75,309,310],{"class":84}," /usr/local/bin/minikube\n",[20,312,313],{},"Инициализируйте кластер, явно указав ресурсы и драйвер запуска:",[66,315,317],{"className":68,"code":316,"language":70,"meta":71,"style":71},"minikube start --driver=none --cpus=2 --memory=2048\n",[24,318,319],{"__ignoreMap":71},[75,320,321,324,327,330,333],{"class":77,"line":78},[75,322,323],{"class":81},"minikube",[75,325,326],{"class":84}," start",[75,328,329],{"class":102}," --driver=none",[75,331,332],{"class":102}," --cpus=2",[75,334,335],{"class":102}," --memory=2048\n",[20,337,338,339,341],{},"Процесс инициализации займёт 2–4 минуты. Успешное завершение сопровождается сообщением ",[24,340,26],{}," configured to use \"minikube\" cluster and \"default\" namespace.",[15,343,345],{"id":344},"шаг-4-настройка-kubectl-и-проверка-статуса","Шаг 4: Настройка kubectl и проверка статуса",[20,347,348,349,351],{},"Minikube автоматически настраивает контекст. Проверьте, что ",[24,350,26],{}," видит кластер и узел перешёл в рабочее состояние:",[66,353,355],{"className":68,"code":354,"language":70,"meta":71,"style":71},"kubectl cluster-info\nkubectl get nodes\n",[24,356,357,364],{"__ignoreMap":71},[75,358,359,361],{"class":77,"line":78},[75,360,26],{"class":81},[75,362,363],{"class":84}," cluster-info\n",[75,365,366,368,371],{"class":77,"line":134},[75,367,26],{"class":81},[75,369,370],{"class":84}," get",[75,372,373],{"class":84}," nodes\n",[20,375,376,377,379,380,383,384,387],{},"В выводе вы должны увидеть строку с именем узла ",[24,378,323],{}," и статусом ",[24,381,382],{},"Ready",". Если статус отличается, подождите ещё минуту или проверьте логи компонента через ",[24,385,386],{},"journalctl -u kubelet",".",[15,389,391],{"id":390},"шаг-5-запуск-тестового-приложения","Шаг 5: Запуск тестового приложения",[20,393,394,395,398],{},"Создайте деплоймент с веб-сервером Nginx и откройте к нему доступ через Service типа ",[24,396,397],{},"NodePort",":",[66,400,402],{"className":68,"code":401,"language":70,"meta":71,"style":71},"kubectl create deployment nginx-test --image=nginx:stable\nkubectl expose deployment nginx-test --type=NodePort --port=80\n",[24,403,404,420],{"__ignoreMap":71},[75,405,406,408,411,414,417],{"class":77,"line":78},[75,407,26],{"class":81},[75,409,410],{"class":84}," create",[75,412,413],{"class":84}," deployment",[75,415,416],{"class":84}," nginx-test",[75,418,419],{"class":102}," --image=nginx:stable\n",[75,421,422,424,427,429,431,434],{"class":77,"line":134},[75,423,26],{"class":81},[75,425,426],{"class":84}," expose",[75,428,413],{"class":84},[75,430,416],{"class":84},[75,432,433],{"class":102}," --type=NodePort",[75,435,436],{"class":102}," --port=80\n",[20,438,439],{},"Получите внешний URL для прямого доступа к приложению:",[66,441,443],{"className":68,"code":442,"language":70,"meta":71,"style":71},"minikube service nginx-test --url\n",[24,444,445],{"__ignoreMap":71},[75,446,447,449,452,454],{"class":77,"line":78},[75,448,323],{"class":81},[75,450,451],{"class":84}," service",[75,453,416],{"class":84},[75,455,456],{"class":102}," --url\n",[20,458,459,460,463],{},"Откройте полученную ссылку в браузере или выполните ",[24,461,462],{},"curl \u003CURL>"," в терминале. Вы увидите стандартную приветственную страницу Nginx.",[15,465,467],{"id":466},"проверка-результата","Проверка результата",[20,469,470],{},"Убедитесь, что все компоненты работают штатно, выполнив комплексную диагностику:",[66,472,474],{"className":68,"code":473,"language":70,"meta":71,"style":71},"kubectl get pods,svc,deployments\nkubectl get events --sort-by='.lastTimestamp'\n",[24,475,476,485],{"__ignoreMap":71},[75,477,478,480,482],{"class":77,"line":78},[75,479,26],{"class":81},[75,481,370],{"class":84},[75,483,484],{"class":84}," pods,svc,deployments\n",[75,486,487,489,491,494,497],{"class":77,"line":134},[75,488,26],{"class":81},[75,490,370],{"class":84},[75,492,493],{"class":84}," events",[75,495,496],{"class":102}," --sort-by=",[75,498,499],{"class":84},"'.lastTimestamp'\n",[20,501,502,503,506,507,509,510,513],{},"Здоровый кластер покажет статус ",[24,504,505],{},"Running"," для пода, ",[24,508,397],{}," для сервиса и отсутствие критических событий в последних строках вывода. Попробуйте масштабировать деплоймент командой ",[24,511,512],{},"kubectl scale deployment nginx-test --replicas=3"," и наблюдайте, как оркестратор автоматически создаёт новые контейнеры.",[15,515,517],{"id":516},"возможные-проблемы","Возможные проблемы",[36,519,520,542,562],{},[39,521,522,533,534,537,538,541],{},[523,524,525,526,529,530],"strong",{},"Ошибка ",[24,527,528],{},"ErrImagePull"," или ",[24,531,532],{},"ImagePullBackOff",": Проверьте подключение к интернету и корректность имени образа. Если используете приватный реестр, настройте ",[24,535,536],{},"imagePullSecrets"," или выполните ",[24,539,540],{},"minikube image pull \u003Cimage>"," перед деплоем.",[39,543,544,550,551,554,555,558,559,387],{},[523,545,546,547],{},"Узел в статусе ",[24,548,549],{},"NotReady",": Чаще всего проблема в драйвере сети или оставшемся активным swap. Выполните ",[24,552,553],{},"sudo cat /proc/swaps",". Если вы видите файлы подкачки, отключите их повторно и перезапустите ",[24,556,557],{},"kubelet"," через ",[24,560,561],{},"sudo systemctl restart kubelet",[39,563,564,567,568,571],{},[523,565,566],{},"Порты заняты",": Minikube требует свободных портов 8443, 10250 и ряда других. Используйте ",[24,569,570],{},"ss -tulnp | grep -E '8443|10250'"," для поиска конфликтов и остановите мешающий сервис перед повторным запуском.",[573,574,575],"style",{},"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 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 .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}",{"title":71,"searchDepth":134,"depth":134,"links":577},[578,579,580,581,582,583,584,585,586],{"id":17,"depth":134,"text":18},{"id":30,"depth":134,"text":31},{"id":60,"depth":134,"text":61},{"id":161,"depth":134,"text":162},{"id":278,"depth":134,"text":279},{"id":344,"depth":134,"text":345},{"id":390,"depth":134,"text":391},{"id":466,"depth":134,"text":467},{"id":516,"depth":134,"text":517},null,"2026-04-05 22:10:30","Пошаговая инструкция по установке и настройке Kubernetes на Linux. Разверните локальный кластер за 15 минут и начните управлять контейнерами.","medium",false,"15-20 мин","md",[595,598,601,604],{"question":596,"answer":597},"Сколько ресурсов нужно для локального кластера K8s?","Минимум 2 ГБ ОЗУ и 20 ГБ диска на виртуальной машине или bare-metal сервере. Для комфортной работы с несколькими подами рекомендуем 4 ГБ ОЗУ и 2 ядра CPU.",{"question":599,"answer":600},"Можно ли использовать Docker и Kubernetes одновременно?","Да, но начиная с версии 1.24 Kubernetes перестал использовать Docker как runtime. Вместо этого применяется containerd или CRI-O, которые работают параллельно с Docker Engine.",{"question":602,"answer":603},"Как безопасно удалить кластер, если эксперимент не удался?","Используйте команду `minikube delete --all` или очистите конфигурацию `kubectl config delete-cluster`, чтобы избежать конфликтов при повторной установке.",{"question":605,"answer":606},"Подойдёт ли этот гайд для production-среды?","Нет. Для продакшена требуются инструменты вроде kubeadm, k3s или Rancher, а также настройка балансировщиков и сетевых политик. Этот материал предназначен только для локального обучения.",[608,611,614,617,620],{"name":609,"text":610},"Подготовка системы и установка зависимостей","Обновите пакеты, установите curl и отключите swap, так как Kubernetes требует стабильной работы без файла подкачки.",{"name":612,"text":613},"Установка containerd и настройка CRI","Установите среду выполнения контейнеров и создайте конфигурационный файл для корректного взаимодействия с kubelet.",{"name":615,"text":616},"Развёртывание локального кластера","Скачайте Minikube, запустите виртуальную машину с Kubernetes и дождитесь инициализации компонентов.",{"name":618,"text":619},"Настройка kubectl и проверка подключения","Скопируйте конфигурацию в домашнюю директорию и убедитесь, что узел перешёл в статус Ready.",{"name":621,"text":622},"Запуск тестового приложения","Создайте деплоймент с Nginx, откройте доступ через Service и проверьте отклик в браузере или через curl.","PT20M",[625,626,627,628,629,630,631],"kubernetes для начинающих","установка k8s на linux","развернуть кластер kubernetes","настройка minikube linux","управление контейнерами kubectl","запуск первого пода kubernetes","локальный k8s на ubuntu","ru_RU",{},true,"/guides/linux/kubernetes-getting-started","linux",[638,639,640],"/guides/linux/docker-compose-setup","/guides/linux/ubuntu-server-hardening","/guides/linux/ssh-key-auth","Гайды Linux и контейнеризация",{"title":5,"description":589},"guides/linux/kubernetes-getting-started","В этом руководстве вы настроите рабочий кластер Kubernetes на Linux с нуля. Вы научитесь устанавливать необходимые компоненты, запускать первый под и проверять работоспособность оркестратора.",[646,647,648,649,323,650,651],"kubernetes","k8s","контейнеры","linux-администрирование","оркестрация","devops","guide","W8MQ2ftFM_6bTLWAa3wAPlKNT0_Cfnbu9Ph-S27L_EU",{"data":655,"body":656},{},{"type":657,"children":658},"root",[659],{"type":660,"tag":20,"props":661,"children":662},"element",{},[663],{"type":664,"value":597},"text",{"data":666,"body":667},{},{"type":657,"children":668},[669],{"type":660,"tag":20,"props":670,"children":671},{},[672],{"type":664,"value":600},{"data":674,"body":675},{},{"type":657,"children":676},[677],{"type":660,"tag":20,"props":678,"children":679},{},[680,682,688,690,696],{"type":664,"value":681},"Используйте команду ",{"type":660,"tag":24,"props":683,"children":685},{"className":684},[],[686],{"type":664,"value":687},"minikube delete --all",{"type":664,"value":689}," или очистите конфигурацию ",{"type":660,"tag":24,"props":691,"children":693},{"className":692},[],[694],{"type":664,"value":695},"kubectl config delete-cluster",{"type":664,"value":697},", чтобы избежать конфликтов при повторной установке.",{"data":699,"body":700},{},{"type":657,"children":701},[702],{"type":660,"tag":20,"props":703,"children":704},{},[705],{"type":664,"value":606},{"data":707,"body":708},{},{"type":657,"children":709},[710],{"type":660,"tag":20,"props":711,"children":712},{},[713],{"type":664,"value":610},{"data":715,"body":716},{},{"type":657,"children":717},[718],{"type":660,"tag":20,"props":719,"children":720},{},[721],{"type":664,"value":613},{"data":723,"body":724},{},{"type":657,"children":725},[726],{"type":660,"tag":20,"props":727,"children":728},{},[729],{"type":664,"value":616},{"data":731,"body":732},{},{"type":657,"children":733},[734],{"type":660,"tag":20,"props":735,"children":736},{},[737],{"type":664,"value":619},{"data":739,"body":740},{},{"type":657,"children":741},[742],{"type":660,"tag":20,"props":743,"children":744},{},[745],{"type":664,"value":622},[]]