foomo-docs/docs/devops/kubernetes/spot-instance-node-pools.html
2022-01-16 21:38:29 +00:00

21 lines
14 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="docs-version-current" lang="en" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="Docusaurus v2.0.0-beta.14">
<link rel="alternate" type="application/rss+xml" href="/blog/rss.xml" title="foomo project docs RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="foomo project docs Atom Feed"><title data-react-helmet="true">Spot Instance Node Pools | foomo project docs</title><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"><meta data-react-helmet="true" property="og:url" content="https://www.foomo.org//docs/devops/kubernetes/spot-instance-node-pools"><meta data-react-helmet="true" name="docusaurus_locale" content="en"><meta data-react-helmet="true" name="docusaurus_version" content="current"><meta data-react-helmet="true" name="docusaurus_tag" content="docs-default-current"><meta data-react-helmet="true" property="og:title" content="Spot Instance Node Pools | foomo project docs"><meta data-react-helmet="true" name="description" content="Setting up spot instance node pools is a great way to save money on stateless applications"><meta data-react-helmet="true" property="og:description" content="Setting up spot instance node pools is a great way to save money on stateless applications"><link data-react-helmet="true" rel="icon" href="/img/favicon.ico"><link data-react-helmet="true" rel="canonical" href="https://www.foomo.org//docs/devops/kubernetes/spot-instance-node-pools"><link data-react-helmet="true" rel="alternate" href="https://www.foomo.org//docs/devops/kubernetes/spot-instance-node-pools" hreflang="en"><link data-react-helmet="true" rel="alternate" href="https://www.foomo.org//docs/devops/kubernetes/spot-instance-node-pools" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.03427991.css">
<link rel="preload" href="/assets/js/runtime~main.e38a2ff5.js" as="script">
<link rel="preload" href="/assets/js/main.ccc3e0f4.js" as="script">
</head>
<body>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div><a href="#" class="skipToContent_OuoZ">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title">foomo</b></a><a class="navbar__item navbar__link" href="/docs/general/intro">General</a><a class="navbar__item navbar__link" href="/docs/frontend/intro">Frontend</a><a class="navbar__item navbar__link" href="/docs/backend/intro">Backend</a><a class="navbar__item navbar__link navbar__link--active" href="/docs/devops/intro">DevOps</a><a class="navbar__item navbar__link" href="/docs/project-management/intro">PM</a><a class="navbar__item navbar__link" href="/docs/projects/intro">Projects</a></div><div class="navbar__items navbar__items--right"><a class="navbar__item navbar__link" href="/blog">Blog</a></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docs-wrapper docs-doc-page"><div class="docPage_lDyR"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_i9tI" type="button"></button><aside class="docSidebarContainer_0YBq"><div class="sidebar_a3j0"><nav class="menu thin-scrollbar menu_cyFh"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/devops/intro">Intro</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active hasHref_TwRn" href="/docs/devops/kubernetes/spot-instance-node-pools">Kubernetes</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/devops/kubernetes/spot-instance-node-pools">Spot Instance Node Pools</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/devops/k8s">k8s</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist hasHref_TwRn" href="/docs/devops/monitoring/intro">Monitoring</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/devops/monitoring/intro">Intro</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/devops/monitoring/grafana">Grafana</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/devops/monitoring/jaeger">Jaeger</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/devops/bookmarks">Bookmarks</a></li></ul></nav></div></aside><main class="docMainContainer_r8cw"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_zHA2"><div class="docItemContainer_oiyr"><article><div class="tocCollapsible_aw-L theme-doc-toc-mobile tocMobile_Tx6Y"><button type="button" class="clean-btn tocCollapsibleButton_zr6a">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Spot Instance Node Pools</h1></header><p>Setting up spot instance node pools is a great way to save money on stateless applications</p><h2 class="anchor anchorWithStickyNavbar_y2LR" id="setting-up-node-taints">Setting Up Node Taints<a class="hash-link" href="#setting-up-node-taints" title="Direct link to heading"></a></h2><h2 class="anchor anchorWithStickyNavbar_y2LR" id="setting-up-pod-toleration">Setting Up Pod Toleration<a class="hash-link" href="#setting-up-pod-toleration" title="Direct link to heading"></a></h2><h3 class="anchor anchorWithStickyNavbar_y2LR" id="pod-toleration">Pod Toleration<a class="hash-link" href="#pod-toleration" title="Direct link to heading"></a></h3><h3 class="anchor anchorWithStickyNavbar_y2LR" id="daemonset-toleration">DaemonSet Toleration<a class="hash-link" href="#daemonset-toleration" title="Direct link to heading"></a></h3><p>Don&#x27;t forget to set the daemonset tolerations</p><h2 class="anchor anchorWithStickyNavbar_y2LR" id="setting-up-pod-disruption-budgets">Setting Up Pod Disruption Budgets<a class="hash-link" href="#setting-up-pod-disruption-budgets" title="Direct link to heading"></a></h2><p>Setting up a pod disruption budget is important due to erratic node shutdown possibility.
What could happen is that nodes that are hosting the applications start terminating, and our application becomes
unresponsive until the application is re-located to another node.
To avoid that situation, for the instances we need to configure pod disruption budget on our helm deployments.</p><div class="codeBlockContainer_J+bg language-yaml theme-code-block"><div class="codeBlockContent_csEI yaml"><pre tabindex="0" class="prism-code language-yaml codeBlock_rtdJ thin-scrollbar" style="color:#bfc7d5;background-color:#292d3e"><code class="codeBlockLines_1zSZ"><span class="token-line" style="color:#bfc7d5"><span class="token key atrule">apiVersion</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> policy/v1</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">kind</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> PodDisruptionBudget</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">metadata</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">name</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> application</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">name</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"></span><span class="token key atrule">spec</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">maxAvailable</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> 50%</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">selector</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">matchLabels</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain"> </span><span class="token key atrule">app</span><span class="token punctuation" style="color:rgb(199, 146, 234)">:</span><span class="token plain"> application</span><span class="token punctuation" style="color:rgb(199, 146, 234)">-</span><span class="token plain">name</span><br></span><span class="token-line" style="color:#bfc7d5"><span class="token plain" style="display:inline-block"></span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_M3SB clean-btn">Copy</button></div></div><p>For more details check out <a href="https://kubernetes.io/docs/tasks/run-application/configure-pdb/" target="_blank" rel="noopener noreferrer">here</a></p><h2 class="anchor anchorWithStickyNavbar_y2LR" id="setting-up-termination-handling">Setting Up Termination Handling<a class="hash-link" href="#setting-up-termination-handling" title="Direct link to heading"></a></h2><h2 class="anchor anchorWithStickyNavbar_y2LR" id="setting-up-k8s-cron-shutdown-cleanup">Setting Up K8s Cron Shutdown Cleanup<a class="hash-link" href="#setting-up-k8s-cron-shutdown-cleanup" title="Direct link to heading"></a></h2></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/foomo/foomo-docs/tree/main/foomo/docs/devops/kubernetes/spot-instance-node-pools.md" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_mS5F" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_mt2f"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/docs/devops/intro"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Intro</div></a></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/devops/k8s"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">k8s</div></a></div></nav></div></div><div class="col col--3"><div class="tableOfContents_vrFS thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#setting-up-node-taints" class="table-of-contents__link toc-highlight">Setting Up Node Taints</a></li><li><a href="#setting-up-pod-toleration" class="table-of-contents__link toc-highlight">Setting Up Pod Toleration</a><ul><li><a href="#pod-toleration" class="table-of-contents__link toc-highlight">Pod Toleration</a></li><li><a href="#daemonset-toleration" class="table-of-contents__link toc-highlight">DaemonSet Toleration</a></li></ul></li><li><a href="#setting-up-pod-disruption-budgets" class="table-of-contents__link toc-highlight">Setting Up Pod Disruption Budgets</a></li><li><a href="#setting-up-termination-handling" class="table-of-contents__link toc-highlight">Setting Up Termination Handling</a></li><li><a href="#setting-up-k8s-cron-shutdown-cleanup" class="table-of-contents__link toc-highlight">Setting Up K8s Cron Shutdown Cleanup</a></li></ul></div></div></div></div></main></div></div><footer class="footer"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">legal</div><ul class="footer__items"><li class="footer__item"><a class="footer__link-item" href="/etc/imprint">Imprint</a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">© 2022 bestbytes</div></div></div></footer></div>
<script src="/assets/js/runtime~main.e38a2ff5.js"></script>
<script src="/assets/js/main.ccc3e0f4.js"></script>
</body>
</html>