[{"data":1,"prerenderedAt":726},["ShallowReactive",2],{"i-lucide:chevron-down":3,"i-lucide:search":8,"i-lucide:sun":10,"i-lucide:moon":12,"i-lucide:arrow-right":14,"i-lucide:menu":16,"i-lucide:panel-left":18,"i-lucide:mail":20,"i-simple-icons:x":22,"i-simple-icons:linkedin":24,"i-simple-icons:dribbble":27,"i-simple-icons:github":29,"sidebar-course-\u002Flearn\u002Fen\u002Fcourses\u002Fpods":31,"learn-topic-\u002Flearn\u002Fen\u002Fcourses\u002Fpods":70,"prereq-":82,"sidebar-quiz-\u002Flearn\u002Fen\u002Fcourses\u002Fpods":58,"lessons-\u002Flearn\u002Fen\u002Fcourses\u002Fpods":83,"i-lucide:blocks":696,"i-lucide:printer":698,"i-lucide:graduation-cap":700,"i-lucide:book-marked":702,"i-lucide:notebook-pen":704,"learn-quiz-\u002Flearn\u002Fen\u002Fcourses\u002Fpods":58,"i-lucide:file-down":706,"i-lucide:chevron-right":708,"i-simple-icons:kubernetes":710,"i-lucide:clock":712,"i-lucide:lock-open":714,"i-lucide:calendar":716,"i-lucide:link":718,"i-lucide:scroll-text":720,"i-lucide:book-open":722,"i-lucide:download":724},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M9 3v18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25,"hidden":26},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":28},"\u003Cpath fill=\"currentColor\" d=\"M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12s-5.385 12-12 12m10.12-10.358c-.35-.11-3.17-.953-6.384-.438c1.34 3.684 1.887 6.684 1.992 7.308a10.28 10.28 0 0 0 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4a10.16 10.16 0 0 0 6.29 2.166c1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765q.202-.067.405-.12q-.392-.879-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248a66 66 0 0 0-3.8-5.928a10.28 10.28 0 0 0-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6c3.645-1.365 5.19-3.44 5.373-3.702A10.2 10.2 0 0 0 12 1.764c-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04c.24.49.47.985.68 1.486c.08.18.15.36.22.53c3.41-.43 6.8.26 7.14.33c-.02-2.42-.88-4.64-2.31-6.38z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":30},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"id":32,"title":33,"access":34,"body":35,"description":42,"draft":6,"estimatedMinutes":43,"extension":44,"featured":6,"icon":45,"lang":46,"level":47,"meta":48,"navigation":26,"order":49,"path":50,"prerequisites":51,"resources":52,"seo":57,"sku":58,"stem":59,"subjects":60,"summary":62,"tags":63,"updated":68,"__hash__":69},"courses\u002Flearn\u002Fen\u002Fcourses\u002Fpods\u002Findex.md","Pods and workloads","free",{"type":36,"value":37,"toc":38},"minimark",[],{"title":39,"searchDepth":40,"depth":40,"links":41},"",3,[],"The smallest deployable unit, and the controllers that manage sets of them.",25,"md","lucide:blocks","en","beginner",{},1,"\u002Flearn\u002Fen\u002Fcourses\u002Fpods",[],[53],{"label":54,"file":55,"access":34,"size":56},"Workload controller decision tree","k8s-workload-controllers.pdf","120 KB",{"title":33,"description":42},null,"learn\u002Fen\u002Fcourses\u002Fpods\u002Findex",[61],"kubernetes","A pod is one or more containers sharing a network namespace and a lifecycle.\nYou rarely create one directly — Deployments, StatefulSets, DaemonSets and Jobs\neach manage pods with different guarantees about identity, ordering and\nreplacement. Choosing the wrong controller is the root of a surprising number\nof production problems, because the guarantee you assumed was never offered.\n",[64,65,66,67],"pods","deployments","statefulsets","workloads","2026-08-04","m76OXiUC-jLIAp9S_k3i7kuptZfYW5jrdGa40vEITF8",{"id":32,"title":33,"access":34,"body":71,"description":42,"draft":6,"estimatedMinutes":43,"extension":44,"featured":6,"icon":45,"lang":46,"level":47,"meta":75,"navigation":26,"order":49,"path":50,"prerequisites":76,"resources":77,"seo":79,"sku":58,"stem":59,"subjects":80,"summary":62,"tags":81,"updated":68,"__hash__":69},{"type":36,"value":72,"toc":73},[],{"title":39,"searchDepth":40,"depth":40,"links":74},[],{},[],[78],{"label":54,"file":55,"access":34,"size":56},{"title":33,"description":42},[61],[64,65,66,67],[],[84,404],{"id":85,"title":86,"access":34,"body":87,"description":398,"extension":44,"lang":46,"meta":399,"navigation":26,"order":49,"partial":6,"path":400,"seo":401,"stem":402,"__hash__":403},"lessons\u002Flearn\u002Fen\u002Fcourses\u002Fpods\u002F01.the-pod.md","The pod",{"type":36,"value":88,"toc":393},[89,93,97,100,105,113,272,279,285,289,292,355,358,362,382,389],[90,91,86],"h1",{"id":92},"the-pod",[94,95,96],"p",{},"Kubernetes does not schedule containers. It schedules pods.",[94,98,99],{},"A pod is a group of containers that share a network namespace, share IPC, and can\nshare volumes. They are always placed on the same node, always started together,\nand always terminated together.",[101,102,104],"h2",{"id":103},"what-sharing-a-network-namespace-means","What sharing a network namespace means",[94,106,107,108,112],{},"Every container in a pod sees the same IP address and the same port space. They\nreach each other over ",[109,110,111],"code",{},"localhost",", and they cannot both bind the same port.",[114,115,119],"pre",{"className":116,"code":117,"language":118,"meta":39,"style":39},"language-yaml shiki shiki-themes github-dark-dimmed github-dark-dimmed","apiVersion: v1\nkind: Pod\nmetadata:\n  name: web\nspec:\n  containers:\n    - name: app\n      image: myapp:1.4\n      ports:\n        - containerPort: 8080\n    - name: metrics-proxy\n      image: proxy:2.0\n      ports:\n        - containerPort: 9090\n","yaml",[109,120,121,137,148,156,167,175,183,197,208,216,231,243,253,260],{"__ignoreMap":39},[122,123,125,129,133],"span",{"class":124,"line":49},"line",[122,126,128],{"class":127},"sza-u","apiVersion",[122,130,132],{"class":131},"sM9_K",": ",[122,134,136],{"class":135},"szYpP","v1\n",[122,138,140,143,145],{"class":124,"line":139},2,[122,141,142],{"class":127},"kind",[122,144,132],{"class":131},[122,146,147],{"class":135},"Pod\n",[122,149,150,153],{"class":124,"line":40},[122,151,152],{"class":127},"metadata",[122,154,155],{"class":131},":\n",[122,157,159,162,164],{"class":124,"line":158},4,[122,160,161],{"class":127},"  name",[122,163,132],{"class":131},[122,165,166],{"class":135},"web\n",[122,168,170,173],{"class":124,"line":169},5,[122,171,172],{"class":127},"spec",[122,174,155],{"class":131},[122,176,178,181],{"class":124,"line":177},6,[122,179,180],{"class":127},"  containers",[122,182,155],{"class":131},[122,184,186,189,192,194],{"class":124,"line":185},7,[122,187,188],{"class":131},"    - ",[122,190,191],{"class":127},"name",[122,193,132],{"class":131},[122,195,196],{"class":135},"app\n",[122,198,200,203,205],{"class":124,"line":199},8,[122,201,202],{"class":127},"      image",[122,204,132],{"class":131},[122,206,207],{"class":135},"myapp:1.4\n",[122,209,211,214],{"class":124,"line":210},9,[122,212,213],{"class":127},"      ports",[122,215,155],{"class":131},[122,217,219,222,225,227],{"class":124,"line":218},10,[122,220,221],{"class":131},"        - ",[122,223,224],{"class":127},"containerPort",[122,226,132],{"class":131},[122,228,230],{"class":229},"sQdni","8080\n",[122,232,234,236,238,240],{"class":124,"line":233},11,[122,235,188],{"class":131},[122,237,191],{"class":127},[122,239,132],{"class":131},[122,241,242],{"class":135},"metrics-proxy\n",[122,244,246,248,250],{"class":124,"line":245},12,[122,247,202],{"class":127},[122,249,132],{"class":131},[122,251,252],{"class":135},"proxy:2.0\n",[122,254,256,258],{"class":124,"line":255},13,[122,257,213],{"class":127},[122,259,155],{"class":131},[122,261,263,265,267,269],{"class":124,"line":262},14,[122,264,221],{"class":131},[122,266,224],{"class":127},[122,268,132],{"class":131},[122,270,271],{"class":229},"9090\n",[94,273,274,275,278],{},"The proxy scrapes ",[109,276,277],{},"http:\u002F\u002Flocalhost:8080"," — no service discovery, no DNS, no\nnetwork hop. This is the sidecar pattern, and the shared namespace is the whole\nreason it works.",[280,281,282],"note",{},[94,283,284],{},"Two containers in one pod is a design decision, not a packaging convenience. The\nright question is whether they must scale together and die together. If either\nanswer is no, they belong in separate pods.",[101,286,288],{"id":287},"init-containers","Init containers",[94,290,291],{},"Init containers run to completion, in order, before any app container starts. If\none fails, the pod restarts according to its policy and the sequence begins again.",[114,293,295],{"className":116,"code":294,"language":118,"meta":39,"style":39},"spec:\n  initContainers:\n    - name: wait-for-db\n      image: busybox:1.36\n      command: ['sh', '-c', 'until nc -z db 5432; do sleep 1; done']\n",[109,296,297,303,310,321,330],{"__ignoreMap":39},[122,298,299,301],{"class":124,"line":49},[122,300,172],{"class":127},[122,302,155],{"class":131},[122,304,305,308],{"class":124,"line":139},[122,306,307],{"class":127},"  initContainers",[122,309,155],{"class":131},[122,311,312,314,316,318],{"class":124,"line":40},[122,313,188],{"class":131},[122,315,191],{"class":127},[122,317,132],{"class":131},[122,319,320],{"class":135},"wait-for-db\n",[122,322,323,325,327],{"class":124,"line":158},[122,324,202],{"class":127},[122,326,132],{"class":131},[122,328,329],{"class":135},"busybox:1.36\n",[122,331,332,335,338,341,344,347,349,352],{"class":124,"line":169},[122,333,334],{"class":127},"      command",[122,336,337],{"class":131},": [",[122,339,340],{"class":135},"'sh'",[122,342,343],{"class":131},", ",[122,345,346],{"class":135},"'-c'",[122,348,343],{"class":131},[122,350,351],{"class":135},"'until nc -z db 5432; do sleep 1; done'",[122,353,354],{"class":131},"]\n",[94,356,357],{},"They are the correct place for migrations, waiting on a dependency, or fetching\nconfiguration — anything that must be finished before the app process begins.",[101,359,361],{"id":360},"restart-policy-is-per-pod-not-per-container","Restart policy is per pod, not per container",[94,363,364,367,368,343,371,374,375,378,379,381],{},[109,365,366],{},"restartPolicy"," applies to the pod as a whole: ",[109,369,370],{},"Always",[109,372,373],{},"OnFailure"," or ",[109,376,377],{},"Never",".\nDeployments require ",[109,380,370],{},". Jobs require one of the other two.",[94,383,384,385,388],{},"A crashing container is restarted in place by the kubelet, with exponential backoff\nup to five minutes. That backoff is what ",[109,386,387],{},"CrashLoopBackOff"," means — the pod is not\nbroken beyond repair, the kubelet is simply waiting before its next attempt.",[390,391,392],"style",{},"html pre.shiki code .sza-u, html code.shiki .sza-u{--shiki-default:#8DDB8C;--shiki-dark:#8DDB8C}html pre.shiki code .sM9_K, html code.shiki .sM9_K{--shiki-default:#ADBAC7;--shiki-dark:#ADBAC7}html pre.shiki code .szYpP, html code.shiki .szYpP{--shiki-default:#96D0FF;--shiki-dark:#96D0FF}html pre.shiki code .sQdni, html code.shiki .sQdni{--shiki-default:#6CB6FF;--shiki-dark:#6CB6FF}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);}",{"title":39,"searchDepth":40,"depth":40,"links":394},[395,396,397],{"id":103,"depth":139,"text":104},{"id":287,"depth":139,"text":288},{"id":360,"depth":139,"text":361},"Shared network and storage namespaces, and why the unit is not the container.",{},"\u002Flearn\u002Fen\u002Fcourses\u002Fpods\u002Fthe-pod",{"title":86,"description":398},"learn\u002Fen\u002Fcourses\u002Fpods\u002F01.the-pod","MxEnNnEovq7oJ35S9_DH8RQtcRph-8E1rjzvVskgg5U",{"id":405,"title":406,"access":34,"body":407,"description":690,"extension":44,"lang":46,"meta":691,"navigation":26,"order":139,"partial":6,"path":692,"seo":693,"stem":694,"__hash__":695},"lessons\u002Flearn\u002Fen\u002Fcourses\u002Fpods\u002F02.controllers.md","Choosing a controller",{"type":36,"value":408,"toc":685},[409,412,415,503,507,510,513,517,527,530,536,540,656,669,683],[90,410,406],{"id":411},"choosing-a-controller",[94,413,414],{},"Each workload controller manages pods. They differ in what they promise about\nidentity, ordering and placement.",[416,417,418,434],"table",{},[419,420,421],"thead",{},[422,423,424,428,431],"tr",{},[425,426,427],"th",{},"Controller",[425,429,430],{},"Use when",[425,432,433],{},"Guarantee",[435,436,437,451,464,477,490],"tbody",{},[422,438,439,445,448],{},[440,441,442],"td",{},[109,443,444],{},"Deployment",[440,446,447],{},"Stateless replicas",[440,449,450],{},"Interchangeable pods, rolling updates",[422,452,453,458,461],{},[440,454,455],{},[109,456,457],{},"StatefulSet",[440,459,460],{},"Stateful members",[440,462,463],{},"Stable name, stable storage, ordered rollout",[422,465,466,471,474],{},[440,467,468],{},[109,469,470],{},"DaemonSet",[440,472,473],{},"Node-level agents",[440,475,476],{},"One pod per matching node",[422,478,479,484,487],{},[440,480,481],{},[109,482,483],{},"Job",[440,485,486],{},"Run to completion",[440,488,489],{},"Retries until the success count is met",[422,491,492,497,500],{},[440,493,494],{},[109,495,496],{},"CronJob",[440,498,499],{},"Scheduled work",[440,501,502],{},"Creates Jobs on a schedule",[101,504,506],{"id":505},"deployments-give-you-no-identity","Deployments give you no identity",[94,508,509],{},"Deployment pods get random name suffixes and are replaced freely. Nothing about a\ngiven pod persists across a restart — not its name, not its storage, not its\nposition in a cluster.",[94,511,512],{},"This is exactly right for a web server and exactly wrong for a database replica.",[101,514,516],{"id":515},"statefulsets-trade-speed-for-identity","StatefulSets trade speed for identity",[94,518,519,520,343,523,526],{},"A StatefulSet gives each pod an ordinal name (",[109,521,522],{},"db-0",[109,524,525],{},"db-1","), a stable DNS entry\nvia a headless Service, and its own PersistentVolumeClaim that survives rescheduling.",[94,528,529],{},"Rollouts happen one pod at a time, in reverse ordinal order, waiting for each to\nbecome ready before continuing.",[531,532,533],"warning",{},[94,534,535],{},"That serial rollout is a feature, not a limitation — but it means a StatefulSet\nwith fifty replicas and a slow readiness probe can take an hour to roll. Budget\nfor it before choosing StatefulSet for something that did not need identity.",[101,537,539],{"id":538},"jobs-and-the-completion-count","Jobs and the completion count",[114,541,543],{"className":116,"code":542,"language":118,"meta":39,"style":39},"apiVersion: batch\u002Fv1\nkind: Job\nmetadata:\n  name: migrate\nspec:\n  backoffLimit: 3\n  template:\n    spec:\n      restartPolicy: Never\n      containers:\n        - name: migrate\n          image: myapp:1.4\n          command: ['.\u002Fmigrate']\n",[109,544,545,554,563,569,578,584,594,601,608,618,625,635,644],{"__ignoreMap":39},[122,546,547,549,551],{"class":124,"line":49},[122,548,128],{"class":127},[122,550,132],{"class":131},[122,552,553],{"class":135},"batch\u002Fv1\n",[122,555,556,558,560],{"class":124,"line":139},[122,557,142],{"class":127},[122,559,132],{"class":131},[122,561,562],{"class":135},"Job\n",[122,564,565,567],{"class":124,"line":40},[122,566,152],{"class":127},[122,568,155],{"class":131},[122,570,571,573,575],{"class":124,"line":158},[122,572,161],{"class":127},[122,574,132],{"class":131},[122,576,577],{"class":135},"migrate\n",[122,579,580,582],{"class":124,"line":169},[122,581,172],{"class":127},[122,583,155],{"class":131},[122,585,586,589,591],{"class":124,"line":177},[122,587,588],{"class":127},"  backoffLimit",[122,590,132],{"class":131},[122,592,593],{"class":229},"3\n",[122,595,596,599],{"class":124,"line":185},[122,597,598],{"class":127},"  template",[122,600,155],{"class":131},[122,602,603,606],{"class":124,"line":199},[122,604,605],{"class":127},"    spec",[122,607,155],{"class":131},[122,609,610,613,615],{"class":124,"line":210},[122,611,612],{"class":127},"      restartPolicy",[122,614,132],{"class":131},[122,616,617],{"class":135},"Never\n",[122,619,620,623],{"class":124,"line":218},[122,621,622],{"class":127},"      containers",[122,624,155],{"class":131},[122,626,627,629,631,633],{"class":124,"line":233},[122,628,221],{"class":131},[122,630,191],{"class":127},[122,632,132],{"class":131},[122,634,577],{"class":135},[122,636,637,640,642],{"class":124,"line":245},[122,638,639],{"class":127},"          image",[122,641,132],{"class":131},[122,643,207],{"class":135},[122,645,646,649,651,654],{"class":124,"line":255},[122,647,648],{"class":127},"          command",[122,650,337],{"class":131},[122,652,653],{"class":135},"'.\u002Fmigrate'",[122,655,354],{"class":131},[94,657,658,661,662,665,666,668],{},[109,659,660],{},"backoffLimit"," counts failed pods, not failed containers. With\n",[109,663,664],{},"restartPolicy: Never"," a failure creates a new pod; with ",[109,667,373],{}," the container\nrestarts inside the existing pod. The two produce different pod counts for the same\nnumber of failures, which makes debugging confusing if you are not expecting it.",[670,671,672],"tip",{},[94,673,674,675,678,679,682],{},"Set ",[109,676,677],{},"ttlSecondsAfterFinished"," on Jobs. Without it, completed Job pods accumulate\nindefinitely and eventually make ",[109,680,681],{},"kubectl get pods"," unusable.",[390,684,392],{},{"title":39,"searchDepth":40,"depth":40,"links":686},[687,688,689],{"id":505,"depth":139,"text":506},{"id":515,"depth":139,"text":516},{"id":538,"depth":139,"text":539},"Deployment, StatefulSet, DaemonSet and Job — what each one actually guarantees.",{},"\u002Flearn\u002Fen\u002Fcourses\u002Fpods\u002Fcontrollers",{"title":406,"description":690},"learn\u002Fen\u002Fcourses\u002Fpods\u002F02.controllers","VSCelnVYA4VGJd0fBOn99YCc4llCWJ8uDyfJB4DOFKM",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":697},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\"\u002F>\u003Crect width=\"8\" height=\"8\" x=\"14\" y=\"2\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":699},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6\"\u002F>\u003Crect width=\"12\" height=\"8\" x=\"6\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":701},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0zM22 10v6\"\u002F>\u003Cpath d=\"M6 12.5V16a6 3 0 0 0 12 0v-3.5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":703},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 2v8l3-3l3 3V2\"\u002F>\u003Cpath d=\"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":705},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4M2 6h4m-4 4h4m-4 4h4m-4 4h4\"\u002F>\u003Cpath d=\"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":707},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5m-8 10v-6m-3 3l3 3l3-3\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":709},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":711},"\u003Cpath fill=\"currentColor\" d=\"m10.204 14.35l.007.01l-.999 2.413a5.17 5.17 0 0 1-2.075-2.597l2.578-.437l.004.005a.44.44 0 0 1 .484.606zm-.833-2.129a.44.44 0 0 0 .173-.756l.002-.011L7.585 9.7a5.14 5.14 0 0 0-.73 3.255l2.514-.725zm1.145-1.98a.44.44 0 0 0 .699-.337l.01-.005l.15-2.62a5.14 5.14 0 0 0-3.01 1.442l2.147 1.523zm.76 2.75l.723.349l.722-.347l.18-.78l-.5-.623h-.804l-.5.623l.179.779zm1.5-3.095a.44.44 0 0 0 .7.336l.008.003l2.134-1.513a5.2 5.2 0 0 0-2.992-1.442l.148 2.615zm10.876 5.97l-5.773 7.181a1.6 1.6 0 0 1-1.248.594l-9.261.003a1.6 1.6 0 0 1-1.247-.596l-5.776-7.18a1.58 1.58 0 0 1-.307-1.34L2.1 5.573c.108-.47.425-.864.863-1.073L11.305.513a1.6 1.6 0 0 1 1.385 0l8.345 3.985c.438.209.755.604.863 1.073l2.062 8.955c.108.47-.005.963-.308 1.34m-3.289-2.057c-.042-.01-.103-.026-.145-.034c-.174-.033-.315-.025-.479-.038c-.35-.037-.638-.067-.895-.148c-.105-.04-.18-.165-.216-.216l-.201-.059a6.5 6.5 0 0 0-.105-2.332a6.5 6.5 0 0 0-.936-2.163c.052-.047.15-.133.177-.159c.008-.09.001-.183.094-.282c.197-.185.444-.338.743-.522c.142-.084.273-.137.415-.242c.032-.024.076-.062.11-.089c.24-.191.295-.52.123-.736s-.506-.236-.745-.045c-.034.027-.08.062-.111.088c-.134.116-.217.23-.33.35c-.246.25-.45.458-.673.609c-.097.056-.239.037-.303.033l-.19.135a6.55 6.55 0 0 0-4.146-2.003l-.012-.223c-.065-.062-.143-.115-.163-.25c-.022-.268.015-.557.057-.905c.023-.163.061-.298.068-.475c.001-.04-.001-.099-.001-.142c0-.306-.224-.555-.5-.555c-.275 0-.499.249-.499.555l.001.014c0 .041-.002.092 0 .128c.006.177.044.312.067.475c.042.348.078.637.056.906a.55.55 0 0 1-.162.258l-.012.211a6.42 6.42 0 0 0-4.166 2.003l-.18-.128c-.09.012-.18.04-.297-.029c-.223-.15-.427-.358-.673-.608c-.113-.12-.195-.234-.329-.349l-.111-.088a.6.6 0 0 0-.348-.132a.48.48 0 0 0-.398.176c-.172.216-.117.546.123.737l.007.005l.104.083c.142.105.272.159.414.242c.299.185.546.338.743.522c.076.082.09.226.1.288l.16.143a6.46 6.46 0 0 0-1.02 4.506l-.208.06c-.055.072-.133.184-.215.217c-.257.081-.546.11-.895.147c-.164.014-.305.006-.48.039c-.037.007-.09.02-.133.03l-.004.002l-.007.002c-.295.071-.484.342-.423.608c.061.267.349.429.645.365l.007-.001l.01-.003l.129-.029c.17-.046.294-.113.448-.172c.33-.118.604-.217.87-.256c.112-.009.23.069.288.101l.217-.037a6.5 6.5 0 0 0 2.88 3.596l-.09.218c.033.084.069.199.044.282c-.097.252-.263.517-.452.813c-.091.136-.185.242-.268.399c-.02.037-.045.095-.064.134c-.128.275-.034.591.213.71c.248.12.556-.007.69-.282v-.002c.02-.039.046-.09.062-.127c.07-.162.094-.301.144-.458c.132-.332.205-.68.387-.897c.05-.06.13-.082.215-.105l.113-.205a6.45 6.45 0 0 0 4.609.012l.106.192c.086.028.18.042.256.155c.136.232.229.507.342.84c.05.156.074.295.145.457c.016.037.043.09.062.129c.133.276.442.402.69.282c.247-.118.341-.435.213-.71c-.02-.039-.045-.096-.065-.134c-.083-.156-.177-.261-.268-.398c-.19-.296-.346-.541-.443-.793c-.04-.13.007-.21.038-.294c-.018-.022-.059-.144-.083-.202a6.5 6.5 0 0 0 2.88-3.622c.064.01.176.03.213.038c.075-.05.144-.114.28-.104c.266.039.54.138.87.256c.154.06.277.128.448.173c.036.01.088.019.13.028l.009.003l.007.001c.297.064.584-.098.645-.365c.06-.266-.128-.537-.423-.608M16.4 9.701l-1.95 1.746v.005a.44.44 0 0 0 .173.757l.003.01l2.526.728a5.2 5.2 0 0 0-.108-1.674A5.2 5.2 0 0 0 16.4 9.7zm-4.013 5.325a.44.44 0 0 0-.404-.232a.44.44 0 0 0-.372.233h-.002l-1.268 2.292a5.16 5.16 0 0 0 3.326.003l-1.27-2.296zm1.888-1.293a.44.44 0 0 0-.27.036a.44.44 0 0 0-.214.572l-.003.004l1.01 2.438a5.15 5.15 0 0 0 2.081-2.615l-2.6-.44z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":713},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 6v6l4 2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":715},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"11\" x=\"3\" y=\"11\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M7 11V7a5 5 0 0 1 9.9-1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":717},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8 2v3m8-3v3\"\u002F>\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M3 9h18\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":719},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"\u002F>\u003Cpath d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":721},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 12h-5m5-4h-5m9 9V5a2 2 0 0 0-2-2H4\"\u002F>\u003Cpath d=\"M8 21h12a2 2 0 0 0 2-2v-1a1 1 0 0 0-1-1H11a1 1 0 0 0-1 1v1a2 2 0 1 1-4 0V5a2 2 0 1 0-4 0v2a1 1 0 0 0 1 1h3\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":723},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":725},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"\u002F>\u003Cpath d=\"m7 10l5 5l5-5\"\u002F>\u003C\u002Fg>",1787597894829]