{"id":1026,"date":"2025-05-29T06:00:00","date_gmt":"2025-05-29T04:00:00","guid":{"rendered":"https:\/\/ahmed-nasr.info\/?p=1026"},"modified":"2025-05-23T12:05:21","modified_gmt":"2025-05-23T10:05:21","slug":"bootstrapping-your-kubernetes-cluster-with-ansible-and-kubeadm","status":"publish","type":"post","link":"https:\/\/ahmed-nasr.info\/?p=1026","title":{"rendered":"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\" id=\"h-introduction-to-kubernetes-setup-for-odoo\">Introduction to Kubernetes Setup for Odoo<\/h4>\n\n\n\n<p>With your virtual infrastructure already built using Proxmox, the next major step is setting up your Kubernetes cluster \u2014 the core of your containerized <strong>Odoo ERP environment<\/strong>. In this post, we\u2019ll walk through automating the <strong>Kubernetes setup for Odoo<\/strong> using <strong>kubeadm<\/strong> and <strong>Ansible<\/strong>. This ensures repeatability, consistency, and production-grade scalability.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png\" alt=\"\" class=\"wp-image-1048\" srcset=\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png 1024w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-300x300.png 300w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-150x150.png 150w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-768x768.png 768w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-333x333.png 333w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-490x490.png 490w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-370x370.png 370w, https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM-900x900.png 900w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Kubernetes setup for Odoo ERP with Ansible, kubeadm, and Longhorn storage<\/em><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-why-use-kubernetes-for-odoo\">Why Use Kubernetes for Odoo?<\/h4>\n\n\n\n<p>Here\u2019s why Kubernetes is ideal for Odoo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scalability<\/strong>: Instantly spin up or scale down Odoo pods.<\/li>\n\n\n\n<li><strong>Self-Healing<\/strong>: Automatically restarts failed containers.<\/li>\n\n\n\n<li><strong>Load Balancing<\/strong>: Evenly distributes traffic across Odoo replicas.<\/li>\n\n\n\n<li><strong>Resource Isolation<\/strong>: Securely separates Odoo, PostgreSQL, GitLab, and monitoring tools.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-tools-used-in-kubernetes-setup-for-odoo\">Tools Used in Kubernetes Setup for Odoo<\/h4>\n\n\n\n<p>To automate the deployment:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>kubeadm<\/strong> \u2013 Bootstraps the Kubernetes control plane<\/li>\n\n\n\n<li><strong>Ansible<\/strong> \u2013 Provisions VMs, installs OS packages, and configures Kubernetes<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udd17 <a>Read about kubeadm<\/a><\/p>\n<\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-cluster-topology-for-odoo-deployment\">Cluster Topology for Odoo Deployment<\/h4>\n\n\n\n<p>We recommend starting with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>1x Master Node<\/strong><\/li>\n\n\n\n<li><strong>2x Worker Nodes<\/strong><\/li>\n<\/ul>\n\n\n\n<p>All nodes should run Ubuntu 22.04 or Debian 12 with static IPs.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-step-1-define-your-ansible-inventory\">Step 1: Define Your Ansible Inventory<\/h4>\n\n\n\n<p>Create <code>inventory\/hosts.ini<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;master]\nk8s-master ansible_host=192.168.100.10 ansible_user=ubuntu<\/code><\/pre>\n\n\n<p>[workers]<\/p>\n\n\n\n<p>k8s-worker-1 ansible_host=192.168.100.11 ansible_user=ubuntu k8s-worker-2 ansible_host=192.168.100.12 ansible_user=ubuntu<\/p>\n\n\n<p>[k8s:children]<\/p>\n\n\n\n<p>master workers<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-step-2-prepare-the-os-with-ansible\">Step 2: Prepare the OS with Ansible<\/h4>\n\n\n\n<p>Run the base playbook:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook -i inventory\/hosts.ini playbooks\/02-init-base-os.yml<\/code><\/pre>\n\n\n\n<p>This automates:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Installing <code>curl<\/code>, <code>containerd<\/code>, and Kubernetes prerequisites<\/li>\n\n\n\n<li>Disabling swap<\/li>\n\n\n\n<li>Configuring hostname and <code>\/etc\/hosts<\/code> resolution<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-step-3-bootstrap-the-kubernetes-cluster\">Step 3: Bootstrap the Kubernetes Cluster<\/h4>\n\n\n\n<p>Initialize the cluster and join nodes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook -i inventory\/hosts.ini playbooks\/03-install-k8s.yml<\/code><\/pre>\n\n\n\n<p>This covers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Running <code>kubeadm init<\/code><\/li>\n\n\n\n<li>Setting up kubectl config<\/li>\n\n\n\n<li>Installing Calico or Flannel<\/li>\n\n\n\n<li>Joining worker nodes<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-step-4-enable-persistent-storage-with-longhorn\">Step 4: Enable Persistent Storage with Longhorn<\/h4>\n\n\n\n<p>Use the following playbook:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ansible-playbook -i inventory\/hosts.ini playbooks\/04-deploy-longhorn.yml<\/code><\/pre>\n\n\n\n<p>Longhorn ensures distributed storage for Odoo and PostgreSQL pods.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udd17 <a>Longhorn Storage Docs<\/a><\/p>\n<\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-step-5-verify-your-kubernetes-setup\">Step 5: Verify Your Kubernetes Setup<\/h4>\n\n\n\n<p>From your master node:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get nodes\nkubectl get pods --all-namespaces<\/code><\/pre>\n\n\n\n<p>You should see all nodes in <strong>Ready<\/strong> state and essential services running smoothly.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-what-s-next\">What\u2019s Next?<\/h4>\n\n\n\n<p>In the next article, we\u2019ll walk through deploying Odoo and PostgreSQL inside Kubernetes using Helm \u2014 a critical step in creating a high-performance ERP backend.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udd01 <a href=\"Previous: Setting Up Proxmox for Odoo\">Previous: Setting Up Proxmox for Odoo<\/a><br>\ud83d\udd01 <a href=\"https:\/\/ahmed-nasr.info\/?p=1028\">Next: Deploying Odoo with Helm<\/a><\/p>\n<\/blockquote>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\ud83d\udee0\ufe0f Need the full Ansible automation repo? <a href=\"https:\/\/wa.me\/201009991455\">Contact me<\/a> or <a href=\"https:\/\/github.com\/analogic2004\">view the GitHub<\/a><\/p>\n<\/blockquote>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction to Kubernetes Setup for Odoo With your virtual infrastructure already built using Proxmox, the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1048,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[30,31],"tags":[173,180,176,178,171,38,182,177,172,148,174,170,181,175,87,137,179,141,149],"class_list":["post-1026","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-erp","category-odoo","tag-ansible-automation","tag-ansible-playbooks","tag-ci-cd-with-gitlab","tag-container-orchestration","tag-devops-for-erp","tag-erp-automation","tag-helm-deployments","tag-infrastructure-as-code","tag-kubeadm","tag-kubernetes","tag-kubernetes-cluster","tag-kubernetes-setup-for-odoo","tag-linux-server-setup","tag-longhorn-storage","tag-odoo-erp","tag-on-premise-infrastructure","tag-open-source-erp","tag-private-cloud-erp","tag-proxmox"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.8 (Yoast SEO v25.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm - AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646<\/title>\n<meta name=\"description\" content=\"Automate your Kubernetes setup for Odoo using Ansible. Simplify and scale your containerized environment easily.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahmed-nasr.info\/?p=1026\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm\" \/>\n<meta property=\"og:description\" content=\"Automate your Kubernetes setup for Odoo using Ansible. Simplify and scale your containerized environment easily.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahmed-nasr.info\/?p=1026\" \/>\n<meta property=\"og:site_name\" content=\"AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-29T04:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin.anm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin.anm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#article\",\"isPartOf\":{\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026\"},\"author\":{\"name\":\"admin.anm\",\"@id\":\"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998\"},\"headline\":\"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm\",\"datePublished\":\"2025-05-29T04:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026\"},\"wordCount\":342,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998\"},\"image\":{\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png\",\"keywords\":[\"Ansible automation\",\"Ansible playbooks\",\"CI\/CD with GitLab\",\"Container orchestration\",\"DevOps for ERP\",\"ERP Automation\",\"Helm deployments\",\"Infrastructure as Code\",\"kubeadm\",\"Kubernetes\",\"Kubernetes cluster\",\"Kubernetes setup for Odoo\",\"Linux server setup\",\"Longhorn storage\",\"Odoo ERP\",\"On-Premise Infrastructure\",\"Open source ERP\",\"Private Cloud ERP\",\"Proxmox\"],\"articleSection\":[\"ERP\",\"Odoo\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ahmed-nasr.info\/?p=1026#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026\",\"url\":\"https:\/\/ahmed-nasr.info\/?p=1026\",\"name\":\"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm - AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646\",\"isPartOf\":{\"@id\":\"https:\/\/ahmed-nasr.info\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png\",\"datePublished\":\"2025-05-29T04:00:00+00:00\",\"description\":\"Automate your Kubernetes setup for Odoo using Ansible. Simplify and scale your containerized environment easily.\",\"breadcrumb\":{\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ahmed-nasr.info\/?p=1026\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage\",\"url\":\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png\",\"contentUrl\":\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ahmed-nasr.info\/?p=1026#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/ahmed-nasr.info\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ahmed-nasr.info\/#website\",\"url\":\"https:\/\/ahmed-nasr.info\/\",\"name\":\"AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646\",\"description\":\"Envision. Lead. Execute\",\"publisher\":{\"@id\":\"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ahmed-nasr.info\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998\",\"name\":\"admin.anm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahmed-nasr.info\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2022\/12\/MADA_IMG2018_BW.png\",\"contentUrl\":\"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2022\/12\/MADA_IMG2018_BW.png\",\"width\":1078,\"height\":990,\"caption\":\"admin.anm\"},\"logo\":{\"@id\":\"https:\/\/ahmed-nasr.info\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/ahmed-nasr.info\"],\"url\":\"https:\/\/ahmed-nasr.info\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm - AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646","description":"Automate your Kubernetes setup for Odoo using Ansible. Simplify and scale your containerized environment easily.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahmed-nasr.info\/?p=1026","og_locale":"en_US","og_type":"article","og_title":"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm","og_description":"Automate your Kubernetes setup for Odoo using Ansible. Simplify and scale your containerized environment easily.","og_url":"https:\/\/ahmed-nasr.info\/?p=1026","og_site_name":"AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646","article_published_time":"2025-05-29T04:00:00+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png","type":"image\/png"}],"author":"admin.anm","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin.anm","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahmed-nasr.info\/?p=1026#article","isPartOf":{"@id":"https:\/\/ahmed-nasr.info\/?p=1026"},"author":{"name":"admin.anm","@id":"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998"},"headline":"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm","datePublished":"2025-05-29T04:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/ahmed-nasr.info\/?p=1026"},"wordCount":342,"commentCount":0,"publisher":{"@id":"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998"},"image":{"@id":"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage"},"thumbnailUrl":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png","keywords":["Ansible automation","Ansible playbooks","CI\/CD with GitLab","Container orchestration","DevOps for ERP","ERP Automation","Helm deployments","Infrastructure as Code","kubeadm","Kubernetes","Kubernetes cluster","Kubernetes setup for Odoo","Linux server setup","Longhorn storage","Odoo ERP","On-Premise Infrastructure","Open source ERP","Private Cloud ERP","Proxmox"],"articleSection":["ERP","Odoo"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ahmed-nasr.info\/?p=1026#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ahmed-nasr.info\/?p=1026","url":"https:\/\/ahmed-nasr.info\/?p=1026","name":"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm - AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646","isPartOf":{"@id":"https:\/\/ahmed-nasr.info\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage"},"image":{"@id":"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage"},"thumbnailUrl":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png","datePublished":"2025-05-29T04:00:00+00:00","description":"Automate your Kubernetes setup for Odoo using Ansible. Simplify and scale your containerized environment easily.","breadcrumb":{"@id":"https:\/\/ahmed-nasr.info\/?p=1026#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahmed-nasr.info\/?p=1026"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmed-nasr.info\/?p=1026#primaryimage","url":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png","contentUrl":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2025\/05\/ChatGPT-Image-May-23-2025-12_42_49-PM.png","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/ahmed-nasr.info\/?p=1026#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ahmed-nasr.info\/"},{"@type":"ListItem","position":2,"name":"Bootstrapping Your Kubernetes Cluster with Ansible and Kubeadm"}]},{"@type":"WebSite","@id":"https:\/\/ahmed-nasr.info\/#website","url":"https:\/\/ahmed-nasr.info\/","name":"AHMED NASRELDIN | \u0623\u062d\u0645\u062f \u0646\u0635\u0631\u0627\u0644\u062f\u064a\u0646","description":"Envision. Lead. Execute","publisher":{"@id":"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahmed-nasr.info\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/ahmed-nasr.info\/#\/schema\/person\/0febfc0570431674375c401bf0ade998","name":"admin.anm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahmed-nasr.info\/#\/schema\/person\/image\/","url":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2022\/12\/MADA_IMG2018_BW.png","contentUrl":"https:\/\/ahmed-nasr.info\/wp-content\/uploads\/2022\/12\/MADA_IMG2018_BW.png","width":1078,"height":990,"caption":"admin.anm"},"logo":{"@id":"https:\/\/ahmed-nasr.info\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/ahmed-nasr.info"],"url":"https:\/\/ahmed-nasr.info\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/posts\/1026","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1026"}],"version-history":[{"count":3,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/posts\/1026\/revisions"}],"predecessor-version":[{"id":1055,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/posts\/1026\/revisions\/1055"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=\/wp\/v2\/media\/1048"}],"wp:attachment":[{"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahmed-nasr.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}