{"id":5364,"date":"2022-03-29T11:54:46","date_gmt":"2022-03-29T09:54:46","guid":{"rendered":"https:\/\/new.cloudandheat.com\/krake-and-how-to-set-up\/"},"modified":"2023-04-03T10:11:56","modified_gmt":"2023-04-03T08:11:56","slug":"octopus-and-how-to-set-up","status":"publish","type":"post","link":"https:\/\/www.cloudandheat.com\/en\/krake-and-how-to-set-up\/","title":{"rendered":"Krake optimizes your workloads for efficiency, cost, and energy consumption"},"content":{"rendered":"<h2>What is Krake and what is it used for?<\/h2>\n<p>Krake [\u02c8k\u0280a\u02d0k\u0259] is an orchestrator engine for containerized and virtualized workloads across distributed and heterogeneous cloud platforms. It creates a thin layer of aggregation on top of the different platforms (such as OpenStack, Kubernetes or OpenShift) and presents them through a single interface to the cloud user. The user&#8217;s workloads are scheduled depending on both user requirements (hardware, latencies, cost) and platforms characteristics (energy efficiency, load). The scheduling algorithm can be optimized for example on latencies, cost, or energy. Krake can be leveraged for a wide range of application scenarios such as central management of distributed compute capacities as well as application management in Edge Cloud infrastructures.<\/p>\n<h2>Krake Overview<\/h2>\n<figure id=\"attachment_7913\" aria-describedby=\"caption-attachment-7913\" style=\"width: 812px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\"wp-image-7913 size-full\" src=\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2023\/01\/Blog_post_krake_set_up_components-1.jpg\" alt=\"Krake Components\" width=\"812\" height=\"592\"><figcaption id=\"caption-attachment-7913\" class=\"wp-caption-text\">Figure 1: Overview of Krake Components<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Krake is hosted on Gitlab: <a href=\"https:\/\/gitlab.com\/rak-n-rok\/krake\">https:\/\/gitlab.com\/rak-n-rok\/krake<\/a><\/p>\n<h2>Which way to go<\/h2>\n<p>There are three different options to get started with Krake. And let it orchestrate your virtualised workloads.<\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li>Use <a href=\"http:\/\/docs.ansible.com\" target=\"_blank\" rel=\"noopener\">Ansible<\/a> (IT automation tool for deployment and more advanced tasks)<\/li>\n<li><a href=\"https:\/\/kind.sigs.k8s.io\" target=\"_blank\" rel=\"noopener\">KinD<\/a> (local Kubernetes using Docker container)<\/li>\n<li>or <a href=\"https:\/\/minikube.sigs.k8s.io\" target=\"_blank\" rel=\"noopener\">Minikube<\/a> (local Kubernetes cluster)<\/li>\n<\/ol>\n<h3>First Steps<\/h3>\n<p>&nbsp;<\/p>\n<ol>\n<li>Clone the Krake repository from Gitlab to a folder of your choice.\n<pre>git clone https:\/\/gitlab.com\/rak-n-rok\/krake.git<\/pre>\n<\/li>\n<li>Afterwards install a python virtual environment and all pip dependencies.\n<pre>cd krake\npython3 -m venv .env\nWindows: source .env\/Scripts\/activate\nsource .env\/bin\/activate\n\n# Install \"krake\" and \"rok\" dependencies\n$ pip install rok\/\n$ pip install krake\/<\/pre>\n<\/li>\n<li>Generate necessary config files. The <em>&#8211;allow-anonymous<\/em> and <em>&#8211;static-authentication-enabled<\/em> options set the API with minimal authentication and authorization protections. It should not be used within a production deployment environment.\n<pre># first, start the generate script \nkrake_generate_config config\/*.template rok.yaml.template\n\nkrake_generate_config --allow-anonymous --static-authentication-enabled config\/api.yaml.template\n\n# afterwards create that folder which is expected:\nsudo mkdir \/etc\/krake\n\n# last, copy generated files to that directory with \nsudo cp *.yaml \/etc\/krake<\/pre>\n<\/li>\n<li>Choose a technology of your choice to get started with Krake. In this example we recommend using <strong>Minikube<\/strong>.<\/li>\n<\/ol>\n<h3><span dir=\"ltr\">Ansible<\/span><\/h3>\n<ol>\n<li style=\"list-style-type: none;\"><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>Krake provides a bunch of playbooks to automatically provision and host Krake on a local or a remote kubernetes cluster. All these files are located in a subfolder called `\/ansible`.<\/p>\n<p>&nbsp;<\/p>\n<pre><em>Prerequisites: Ansible 2.9.x<\/em><\/pre>\n<p>&nbsp;<\/p>\n<p>The infrastructure is split into multiple separate OpenStack Heat stacks. Every Heat stack is provisioned by its own Ansible playbook. The complete infrastructure can be created by the top-level <strong>site.yml<\/strong> playbook.<\/p>\n<p>&nbsp;<\/p>\n<p>Krake YAML inventory file <strong>hosts.yml<\/strong> needs to be created. Use the example file and adjust it. The only parameter that needs to be modified is the <strong>keypair variable<\/strong>. It should name an existing OpenStack keypair. If the corresponding key file is not ~\/.ssh\/id_rsa specify it in the <b>key_file<\/b> parameter.<\/p>\n<p>&nbsp;<\/p>\n<p>For detailed Ansible deployment information please refer to the official documentation of Krake hosted on <a href=\"https:\/\/rak-n-rok.readthedocs.io\/projects\/krake\/en\/latest\/admin\/setup.html\" target=\"_blank\" rel=\"noopener\">readthedocs.io<\/a>.<\/p>\n<h3><span style=\"font-family: Montserrat;\"><span dir=\"ltr\">KinD<\/span><\/span><\/h3>\n<p>&nbsp;<\/p>\n<p>Create KinD instance and save the kubeconfig file in &#8222;cluster_certs&#8220; sub-directory.<\/p>\n<p>&nbsp;<\/p>\n<pre>mkdir cluster_certs\n# the name of your k8s cluster\nCLUSTER_NAME=\"myfancycluster\"\n# start a single node k8s cluster\nkind create cluster --name $CLUSTER_NAME --kubeconfig cluster_certs\/config\/$CLUSTER_NAME.yaml\n<\/pre>\n<h3>Minikube<\/h3>\n<p>&nbsp;<\/p>\n<p>Create Minikube instance and download\/copy the kubeconfig file, as well as the certificate and key file necessary to connect to your Minikube instance.<\/p>\n<p>&nbsp;<\/p>\n<pre>mkdir cluster_certs\nminikube start\n<\/pre>\n<h3>Create a Cluster Configuration<\/h3>\n<p>&nbsp;<\/p>\n<p>Krake will later use this configuration file to register that specific cluster-backend. There are several options to get your cluster configuration depending on the cluster-technology (kinD, k8s, minikube) you are using. For KinD you already got your config file with the above command:<\/p>\n<pre>kind create .. --kubeconfig cluster_certs\/config\/$CLUSTER_NAME.yaml\n<\/pre>\n<p>&nbsp;<\/p>\n<p>If your are planning to use Minikube you could use the &#8218;kubectl&#8216; command:<\/p>\n<pre>kubectl config view &gt;&gt; krake\/cluster_certs\/minikube_conf.yaml\n<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Attention:<\/strong> If you have installed both KinD and Minikube this command would list both configurations. You then should remove the KinD configuration.<\/p>\n<p>&nbsp;<\/p>\n<p>Here you can see an example configuration of Minikube for Krake.<\/p>\n<pre>apiVersion: v1\nclusters:\n- cluster:\n    certificate-authority: \/home\/USER\/.minikube\/ca.crt\n    extensions:\n    - extension:\n        last-update: Wed, 30 Mar 2022 12:36:02 CEST\n        provider: minikube.sigs.k8s.io\n        version: v1.23.2\n      name: cluster_info\n    server: https:\/\/192.168.49.2:8443\n  name: minikube2\ncontexts:\n- context:\n    cluster: minikube2\n    extensions:\n    - extension:\n        last-update: Wed, 30 Mar 2022 12:36:02 CEST\n        provider: minikube.sigs.k8s.io\n        version: v1.23.2\n      name: context_info\n    namespace: default\n    user: minikube2\n  name: minikube2\ncurrent-context: minikube2\nkind: Config\npreferences: {}\nusers:\n- name: minikube2\n  user:\n    client-certificate: \/home\/USER\/.minikube\/profiles\/minikube\/client.crt\n    client-key: \/home\/USER\/.minikube\/profiles\/minikube\/client.key<\/pre>\n<h3>Let&#8217;s Go and Start all Together<\/h3>\n<p>&nbsp;<\/p>\n<p>For better overview start each process in a single terminal.<\/p>\n<pre># Run etcd server. This will store the data in \"tmp\/etcd\".\nsupport\/etcd\n\n# Run the API\npython -m krake.api\n\n# Run the Garbage Collector\npython -m krake.controller.gc\n\n# Run the Krake Scheduler\npython -m krake.controller.scheduler\n\n# Run the Kubernetes Application Controller\npython -m krake.controller.kubernetes<\/pre>\n<p>&nbsp;<\/p>\n<p>There is also a script provided in the git repository to start all parts of Krake using &#8222;tmux&#8220;.<\/p>\n<h3>Finally<\/h3>\n<p>&nbsp;<\/p>\n<p>Now we register the Minikube (or KinD) instance as a Krake backend and use Krake to deploy an echo-server test application.<\/p>\n<p>&nbsp;<\/p>\n<pre># list current clusters; there should be none\n$ rok kube cluster list\n+------+-----------+--------+---------+----------+---------+-------+\n| name | namespace | labels | created | modified | deleted | state |\n+======+===========+========+=========+==========+=========+=======+\n+------+-----------+--------+---------+----------+---------+-------+\n\n# register your Minikube or KinD instance by giving a cluster configuration yaml-file, see chapter \"Create a Cluster Configuration\"\n$ rok kube cluster create cluster_certs\/config\/config.yaml\n+------------------+---------------------+\n| name             | minikube2           |\n| namespace        | system:admin        |\n| labels           | None                |\n| created          | 2022-03-30 16:00:21 |\n| modified         | 2022-03-30 16:00:21 |\n| deleted          | None                |\n| state            | ONLINE              |\n| custom_resources | []                  |\n| metrics          | []                  |\n| failing_metrics  | None                |\n+------------------+---------------------+\n\n# now there is a cluster named minikube2\n$ rok kube cluster list\n+-----------+--------------+--------+---------------------+---------------------+---------+--------+\n| name      | namespace    | labels | created             | modified            | deleted | state  |\n+===========+==============+========+=====================+=====================+=========+========+\n| minikube2 | system:admin | None   | 2022-03-30 16:00:21 | 2022-03-30 16:00:21 | None    | ONLINE |\n+-----------+--------------+--------+---------------------+---------------------+---------+--------+\n\n# run an application on Krake\n$ rok kube app create -f rak\/functionals\/echo-demo.yaml echo-demo\n+-----------------------+---------------------+\n| name                  | echo-demo           |\n| namespace             | system:admin        |\n| labels                | None                |\n| created               | 2022-03-30 16:01:03 |\n| modified              | 2022-03-30 16:01:03 |\n| deleted               | None                |\n| state                 | PENDING             |\n| reason                | None                |\n| services              | None                |\n| allow migration       | True                |\n| label constraints     | []                  |\n| resources constraints | []                  |\n| hooks                 | []                  |\n| scheduled_to          | None                |\n| scheduled             | None                |\n| running_on            | None                |\n+-----------------------+---------------------+\n\n# check the status of the application\n$ rok kube app get echo-demo\n+-----------------------+-------------------------------------------------------------------------------------------+\n| name                  | echo-demo                                                                                 |\n| namespace             | system:admin                                                                              |\n| labels                | None                                                                                      |\n| created               | 2022-03-30 16:01:03                                                                       |\n| modified              | 2022-03-30 16:01:05                                                                       |\n| deleted               | None                                                                                      |\n| state                 | RUNNING                                                                                   |\n| reason                | None                                                                                      |\n| services              | echo-demo: 192.168.49.2:30285                                                             |\n| allow migration       | True                                                                                      |\n| label constraints     | []                                                                                        |\n| resources constraints | []                                                                                        |\n| hooks                 | []                                                                                        |\n| scheduled_to          | {'kind': 'Cluster', 'api': 'kubernetes', 'name': 'minikube2', 'namespace': 'system:admin'}|\n| scheduled             | 2022-03-30 16:01:04                                                                       |\n| running_on            | {'kind': 'Cluster', 'api': 'kubernetes', 'name': 'minikube2', 'namespace': 'system:admin'}|\n+-----------------------+-------------------------------------------------------------------------------------------+\n\n# access the application\n$ curl 192.168.49.2:30285\n\nHostname: echo-demo-6ff4d6b744-mcxhb\n\nPod Information:\n-no pod information available-\n\nServer values:\nserver_version=nginx: 1.13.3 - lua: 10008\n\nRequest Information:\nclient_address=172.17.0.1\nmethod=GET\nreal path=\/\nquery=\nrequest_version=1.1\nrequest_scheme=http\nrequest_uri=http:\/\/192.168.49.2:8080\/\n\nRequest Headers:\naccept=*\/*\nhost=192.168.49.2:30285\nuser-agent=curl\/7.74.0\n\nRequest Body:\n-no body in request-\n\n# delete the application\n$ rok kube app delete echo-demo\n+-----------------------+-----------------------------------------------+\n| name                  | echo-demo                                     |\n| namespace             | system:admin                                  |\n| labels                | None                                          |\n| created               | 2022-03-30 16:09:34                           |\n| modified              | 2022-03-30 16:09:34                           |\n| deleted               | 2022-03-30 16:11:30                           |\n| state                 | FAILED                                        |\n| reason                | code: NO_SUITABLE_RESOURCE                    |\n|                       | message: No matching Kubernetes cluster found |\n| services              | None                                          |\n| allow migration       | True                                          |\n| label constraints     | []                                            |\n| resources constraints | []                                            |\n| hooks                 | []                                            |\n| scheduled_to          | None                                          |\n| scheduled             | None                                          |\n| running_on            | None                                          |\n+-----------------------+-----------------------------------------------+\n\n# delete the cluster\n$ rok kube cluster delete minikube2\n+------------------+---------------------+\n| name             | minikube2           |\n| namespace        | system:admin        |\n| labels           | None                |\n| created          | 2022-03-30 16:00:21 |\n| modified         | 2022-03-30 16:00:21 |\n| deleted          | 2022-03-30 16:08:18 |\n| state            | ONLINE              |\n| custom_resources | []                  |\n| metrics          | []                  |\n| failing_metrics  | None                |\n+------------------+---------------------+\n\n# check that cluster is deleted\n$ rok kube cluster list\n+------+-----------+--------+---------+----------+---------+-------+\n| name | namespace | labels | created | modified | deleted | state |\n+======+===========+========+=========+==========+=========+=======+\n+------+-----------+--------+---------+----------+---------+-------+<\/pre>\n<h3>Command Overview<\/h3>\n<p>&nbsp;<\/p>\n<p>The following figure shows all Krake commands to control parts of either Kubernetes, Openstack or some core elements of Krake.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_7916\" aria-describedby=\"caption-attachment-7916\" style=\"width: 961px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-7916 size-full\" src=\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2023\/01\/Blog_post_krake_set_up_commands.jpg\" alt=\"Krake Commands\" width=\"961\" height=\"601\"><figcaption id=\"caption-attachment-7916\" class=\"wp-caption-text\">Figure 2: Overview Krake Commands<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>A complete documentation of Krake can be found at: <a href=\"https:\/\/rak-n-rok.readthedocs.io\/projects\/krake\/en\/latest\/index.html\" target=\"_blank\" rel=\"noopener\">https:\/\/rak-n-rok.readthedocs.io\/projects\/krake\/en\/latest\/index.html<\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to set up Krake using Ansible, KinD, or Minikube<\/p>","protected":false},"author":2,"featured_media":8657,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"5236,5282,5377,5298,5345,5323","_relevanssi_noindex_reason":"","inline_featured_image":false,"footnotes":""},"categories":[83,26],"tags":[],"class_list":["post-5364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-services","category-kubernetes"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Learn how to set up Krake using Ansible, KinD, or Minikube<\/title>\n<meta name=\"description\" content=\"Cloud&amp;Heat | Blog | There are three different options to set up Krake and let it orchestrate your virtualised workloads. Learn how.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cloudandheat.com\/en\/octopus-and-how-to-set-up\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learn how to set up Krake using Ansible, KinD, or Minikube\" \/>\n<meta property=\"og:description\" content=\"Cloud&amp;Heat | Blog | There are three different options to set up Krake and let it orchestrate your virtualised workloads. Learn how.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cloudandheat.com\/en\/octopus-and-how-to-set-up\/\" \/>\n<meta property=\"og:site_name\" content=\"Cloud &amp; Heat\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/CloudandHeat\" \/>\n<meta property=\"article:published_time\" content=\"2022-03-29T09:54:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-03T08:11:56+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2292\" \/>\n\t<meta property=\"og:image:height\" content=\"1313\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Clemens M\u00fcller\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@cloudandheat\" \/>\n<meta name=\"twitter:site\" content=\"@cloudandheat\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Clemens M\u00fcller\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/\"},\"author\":{\"name\":\"Clemens M\u00fcller\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/ba09b0c184d05469ca875d2cb5ba730a\"},\"headline\":\"Krake optimizes your workloads for efficiency, cost, and energy consumption\",\"datePublished\":\"2022-03-29T09:54:46+00:00\",\"dateModified\":\"2023-04-03T08:11:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/\"},\"wordCount\":664,\"publisher\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png\",\"articleSection\":[\"Cloud Services\",\"Kubernetes\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/\",\"url\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/\",\"name\":\"Learn how to set up Krake using Ansible, KinD, or Minikube\",\"isPartOf\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png\",\"datePublished\":\"2022-03-29T09:54:46+00:00\",\"dateModified\":\"2023-04-03T08:11:56+00:00\",\"description\":\"Cloud&Heat | Blog | There are three different options to set up Krake and let it orchestrate your virtualised workloads. Learn how.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage\",\"url\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png\",\"contentUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png\",\"width\":2292,\"height\":1313,\"caption\":\"Krake optimizes your workloads for efficiency, cost, and energy consumption\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/www.cloudandheat.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Krake optimizes your workloads for efficiency, cost, and energy consumption\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cloudandheat.com\/#website\",\"url\":\"https:\/\/www.cloudandheat.com\/\",\"name\":\"Cloud & Heat Technolgies GmbH\",\"description\":\"Cloud-Service- und Cloud-Technologie-Provider\",\"publisher\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\"},\"alternateName\":\"Cloud and Heat Technologies GmbH\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cloudandheat.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.cloudandheat.com\/#organization\",\"name\":\"Cloud&Heat Technologies GmbH\",\"url\":\"https:\/\/www.cloudandheat.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg\",\"contentUrl\":\"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg\",\"width\":907,\"height\":1782,\"caption\":\"Cloud&Heat Technologies GmbH\"},\"image\":{\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/CloudandHeat\",\"https:\/\/x.com\/cloudandheat\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/ba09b0c184d05469ca875d2cb5ba730a\",\"name\":\"Clemens M\u00fcller\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.cloudandheat.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/350f97f507a0c231669ebf507b516e705ead54569fde6f8537dee0acc251ee2d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/350f97f507a0c231669ebf507b516e705ead54569fde6f8537dee0acc251ee2d?s=96&d=mm&r=g\",\"caption\":\"Clemens M\u00fcller\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Learn how to set up Krake using Ansible, KinD, or Minikube","description":"Cloud&amp;Heat | Blog | There are three different options to set up Krake and let it orchestrate your virtualised workloads. Learn how.","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:\/\/www.cloudandheat.com\/en\/octopus-and-how-to-set-up\/","og_locale":"en_GB","og_type":"article","og_title":"Learn how to set up Krake using Ansible, KinD, or Minikube","og_description":"Cloud&Heat | Blog | There are three different options to set up Krake and let it orchestrate your virtualised workloads. Learn how.","og_url":"https:\/\/www.cloudandheat.com\/en\/octopus-and-how-to-set-up\/","og_site_name":"Cloud &amp; Heat","article_publisher":"https:\/\/www.facebook.com\/CloudandHeat","article_published_time":"2022-03-29T09:54:46+00:00","article_modified_time":"2023-04-03T08:11:56+00:00","og_image":[{"width":2292,"height":1313,"url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png","type":"image\/png"}],"author":"Clemens M\u00fcller","twitter_card":"summary_large_image","twitter_creator":"@cloudandheat","twitter_site":"@cloudandheat","twitter_misc":{"Written by":"Clemens M\u00fcller"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#article","isPartOf":{"@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/"},"author":{"name":"Clemens M\u00fcller","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/ba09b0c184d05469ca875d2cb5ba730a"},"headline":"Krake optimizes your workloads for efficiency, cost, and energy consumption","datePublished":"2022-03-29T09:54:46+00:00","dateModified":"2023-04-03T08:11:56+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/"},"wordCount":664,"publisher":{"@id":"https:\/\/www.cloudandheat.com\/#organization"},"image":{"@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png","articleSection":["Cloud Services","Kubernetes"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/","url":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/","name":"Learn how to set up Krake using Ansible, KinD, or Minikube","isPartOf":{"@id":"https:\/\/www.cloudandheat.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage"},"image":{"@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png","datePublished":"2022-03-29T09:54:46+00:00","dateModified":"2023-04-03T08:11:56+00:00","description":"Cloud&amp;Heat | Blog | There are three different options to set up Krake and let it orchestrate your virtualised workloads. Learn how.","breadcrumb":{"@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#primaryimage","url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png","contentUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/03\/2023-Cloud-and-Heat-Krake-Header.png","width":2292,"height":1313,"caption":"Krake optimizes your workloads for efficiency, cost, and energy consumption"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cloudandheat.com\/krake-and-how-to-set-up\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/www.cloudandheat.com\/"},{"@type":"ListItem","position":2,"name":"Krake optimizes your workloads for efficiency, cost, and energy consumption"}]},{"@type":"WebSite","@id":"https:\/\/www.cloudandheat.com\/#website","url":"https:\/\/www.cloudandheat.com\/","name":"Cloud &amp; Heat Technolgies GmbH","description":"Cloud service and cloud technology providers","publisher":{"@id":"https:\/\/www.cloudandheat.com\/#organization"},"alternateName":"Cloud and Heat Technologies GmbH","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cloudandheat.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.cloudandheat.com\/#organization","name":"Cloud&amp;Heat Technologies GmbH","url":"https:\/\/www.cloudandheat.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg","contentUrl":"https:\/\/www.cloudandheat.com\/wp-content\/uploads\/2022\/08\/logo.svg","width":907,"height":1782,"caption":"Cloud&Heat Technologies GmbH"},"image":{"@id":"https:\/\/www.cloudandheat.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/CloudandHeat","https:\/\/x.com\/cloudandheat"]},{"@type":"Person","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/ba09b0c184d05469ca875d2cb5ba730a","name":"Clemens M\u00fcller","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.cloudandheat.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/350f97f507a0c231669ebf507b516e705ead54569fde6f8537dee0acc251ee2d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/350f97f507a0c231669ebf507b516e705ead54569fde6f8537dee0acc251ee2d?s=96&d=mm&r=g","caption":"Clemens M\u00fcller"}}]}},"_links":{"self":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/5364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/comments?post=5364"}],"version-history":[{"count":0,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/posts\/5364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/media\/8657"}],"wp:attachment":[{"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/media?parent=5364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/categories?post=5364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cloudandheat.com\/en\/wp-json\/wp\/v2\/tags?post=5364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}