blob: f47542df7a2e55260560233f8f620d6e43767957 [file] [log] [blame]
<!DOCTYPE html>
<html lang="1.3" class="js csstransforms3d">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Hugo 0.81.0" />
<meta name="description" content="A set of micro-services for connecting millions of devices.">
<meta name="author" content="The Eclipse Hono Project">
<link rel="apple-touch-icon" sizes="180x180" href="/hono/docs/favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="48x48" href="/hono/docs/favicon/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="32x32" href="/hono/docs/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/hono/docs/favicon/favicon-16x16.png">
<link rel="manifest" href="/hono/docs/favicon/site.webmanifest">
<link rel="mask-icon" href="/hono/docs/favicon/safari-pinned-tab.svg" color="#5bbad5">
<link rel="shortcut icon" href="/hono/docs/favicon/favicon.ico">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-config" content="/hono/docs/favicon/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<title>Setting up a Kubernetes Cluster :: Eclipse Hono&trade; Vers.: 1.3</title>
<link href="/hono/docs/css/nucleus.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/fontawesome-all.min.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/hybrid.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/featherlight.min.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/perfect-scrollbar.min.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/auto-complete.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/atom-one-dark-reasonable.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/theme.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/hugo-theme.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/theme-hono.css?1626138729" rel="stylesheet">
<link href="/hono/docs/css/hono.css?1626138729" rel="stylesheet">
<script src="/hono/docs/js/jquery-3.3.1.min.js?1626138729"></script>
<style>
:root #header + #content > #left > #rlblock_left{
display:none !important;
}
:not(pre) > code + span.copy-to-clipboard {
display: none;
}
</style>
<link rel="stylesheet" href="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/stylesheets/vendor/cookieconsent/cookieconsent.min.css">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@EclipseHono">
<meta name="twitter:title" content="Setting up a Kubernetes Cluster :: Eclipse Hono&amp;trade; Vers.: 1.3">
<meta name="twitter:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png">
<meta name="twitter:description" content="A set of micro-services for connecting millions of devices.">
<meta property="og:title" content="Setting up a Kubernetes Cluster :: Eclipse Hono&amp;trade; Vers.: 1.3" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://www.eclipse.org/hono/docs/1.3/deployment/create-kubernetes-cluster//" />
<meta property="og:image" content="https://www.eclipse.org/hono/docs/images/twitter_image.png" />
</head>
<body class="" data-url="/hono/docs/1.3/deployment/create-kubernetes-cluster/">
<nav id="sidebar" class="">
<div id="header-wrapper">
<div id="header">
<a href="https://www.eclipse.org/hono/">
<img src="/hono/docs/images/HONO-Logo_Bild-Wort_quer-w-310x120px.svg" alt="Hono logo" class="logo-img">
</a>
</div>
<div class="searchbox">
<label for="search-by"><i class="fas fa-search"></i></label>
<input data-search-input id="search-by" type="search" placeholder="Search...">
<span data-search-clear=""><i class="fas fa-times"></i></span>
</div>
<script type="text/javascript" src="/hono/docs/js/lunr.min.js?1626138729"></script>
<script type="text/javascript" src="/hono/docs/js/auto-complete.js?1626138729"></script>
<script type="text/javascript">
var baseurl = "https:\/\/www.eclipse.org\/hono\/docs\/\/1.3";
</script>
<script type="text/javascript" src="/hono/docs/js/search.js?1626138729"></script>
</div>
<div class="highlightable">
<ul class="topics">
<li data-nav-id="/hono/docs/1.3/concepts/" title="Concepts" class="dd-item
">
<a href="/hono/docs/1.3/concepts/">
<i class="far fa-lightbulb"></i> Concepts
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/concepts/device-identity/" title="Device Identity" class="dd-item ">
<a href="/hono/docs/1.3/concepts/device-identity/">
Device Identity
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/tenancy/" title="Multi-Tenancy" class="dd-item ">
<a href="/hono/docs/1.3/concepts/tenancy/">
Multi-Tenancy
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/device-provisioning/" title="Device Provisioning" class="dd-item ">
<a href="/hono/docs/1.3/concepts/device-provisioning/">
Device Provisioning
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/connecting-devices/" title="Connecting Devices" class="dd-item ">
<a href="/hono/docs/1.3/concepts/connecting-devices/">
Connecting Devices
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/device-notifications/" title="Device Notifications" class="dd-item ">
<a href="/hono/docs/1.3/concepts/device-notifications/">
Device Notifications
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/command-and-control/" title="Command &amp; Control" class="dd-item ">
<a href="/hono/docs/1.3/concepts/command-and-control/">
Command &amp; Control
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/resource-limits/" title="Resource limits" class="dd-item ">
<a href="/hono/docs/1.3/concepts/resource-limits/">
Resource limits
</a>
</li>
<li data-nav-id="/hono/docs/1.3/concepts/connection-events/" title="Connection Events" class="dd-item ">
<a href="/hono/docs/1.3/concepts/connection-events/">
Connection Events
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/" title="User Guide" class="dd-item
">
<a href="/hono/docs/1.3/user-guide/">
<i class="fas fa-book-reader"></i> User Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/user-guide/mongodb-based-device-registry/" title="MongoDB Based Device Registry" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/mongodb-based-device-registry/">
MongoDB Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/file-based-device-registry/" title="File Based Device Registry" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/file-based-device-registry/">
File Based Device Registry
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/http-adapter/" title="HTTP Adapter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/http-adapter/">
HTTP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/mqtt-adapter/" title="MQTT Adapter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/mqtt-adapter/">
MQTT Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/amqp-adapter/" title="AMQP Adapter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/amqp-adapter/">
AMQP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/coap-adapter/" title="CoAP Adapter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/coap-adapter/">
CoAP Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/kura-adapter/" title="Kura Adapter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/kura-adapter/">
Kura Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/sigfox-adapter/" title="Sigfox Adapter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/sigfox-adapter/">
Sigfox Adapter
</a>
</li>
<li data-nav-id="/hono/docs/1.3/user-guide/jmeter_load_tests/" title="Load Tests with JMeter" class="dd-item ">
<a href="/hono/docs/1.3/user-guide/jmeter_load_tests/">
Load Tests with JMeter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/" title="Admin Guide" class="dd-item
">
<a href="/hono/docs/1.3/admin-guide/">
<i class="fas fa-sliders-h"></i> Admin Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/admin-guide/common-config/" title="Common Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/common-config/">
Common Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/auth-server-config/" title="Auth Server Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/auth-server-config/">
Auth Server Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/mongodb-device-registry-config/" title="MongoDB Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/mongodb-device-registry-config/">
MongoDB Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/file-based-device-registry-config/" title="File Based Device Registry Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/file-based-device-registry-config/">
File Based Device Registry Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/device-connection-config/" title="Configuring the Device Connection Service" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/device-connection-config/">
Device Connection Service Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/http-adapter-config/" title="HTTP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/http-adapter-config/">
HTTP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/mqtt-adapter-config/" title="MQTT Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/mqtt-adapter-config/">
MQTT Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/amqp-adapter-config/" title="AMQP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/amqp-adapter-config/">
AMQP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/coap-adapter-config/" title="CoAP Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/coap-adapter-config/">
CoAP Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/kura-adapter-config/" title="Kura Adapter Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/kura-adapter-config/">
Kura Adapter Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/hono-client-configuration/" title="Hono Client Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/hono-client-configuration/">
Hono Client Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/amqp-network-config/" title="AMQP 1.0 Messaging Network Configuration" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/amqp-network-config/">
AMQP 1.0 Messaging Network Configuration
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/secure_communication/" title="Secure Communication" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/secure_communication/">
Secure Communication
</a>
</li>
<li data-nav-id="/hono/docs/1.3/admin-guide/monitoring-tracing-config/" title="Monitoring &amp; Tracing" class="dd-item ">
<a href="/hono/docs/1.3/admin-guide/monitoring-tracing-config/">
Monitoring &amp; Tracing
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.3/dev-guide/" title="Developer Guide" class="dd-item
">
<a href="/hono/docs/1.3/dev-guide/">
<i class="fas fa-tools"></i> Developer Guide
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/dev-guide/building_hono/" title="Building from Source" class="dd-item ">
<a href="/hono/docs/1.3/dev-guide/building_hono/">
Building from Source
</a>
</li>
<li data-nav-id="/hono/docs/1.3/dev-guide/amqp_adapter_client/" title="AMQP Adapter Client for Java" class="dd-item ">
<a href="/hono/docs/1.3/dev-guide/amqp_adapter_client/">
AMQP Adapter Client for Java
</a>
</li>
<li data-nav-id="/hono/docs/1.3/dev-guide/java_client_consumer/" title="Consuming Messages from Java" class="dd-item ">
<a href="/hono/docs/1.3/dev-guide/java_client_consumer/">
Consuming Messages from Java
</a>
</li>
<li data-nav-id="/hono/docs/1.3/dev-guide/custom_http_adapter/" title="Implement a Custom Hono HTTP Protocol Adapter" class="dd-item ">
<a href="/hono/docs/1.3/dev-guide/custom_http_adapter/">
Implement a Custom Hono HTTP Protocol Adapter
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.3/api/" title="API" class="dd-item
">
<a href="/hono/docs/1.3/api/">
&nbsp;<i class='fas fa-plug'></i>&nbsp;API
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/api/telemetry/" title="Telemetry API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/telemetry/">
Telemetry API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/event/" title="Event API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/event/">
Event API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/command-and-control/" title="Command &amp; Control API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/command-and-control/">
Command &amp; Control API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/tenant/" title="Tenant API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/tenant/">
Tenant API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/device-connection/" title="Device Connection API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/device-connection/">
Device Connection API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/device-registration/" title="Device Registration API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/device-registration/">
Device Registration API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/credentials/" title="Credentials API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/credentials/">
Credentials API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/authentication/" title="Authentication API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/authentication/">
Authentication API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/management/" title="Device Registry Management API Specification" class="dd-item ">
<a href="/hono/docs/1.3/api/management/">
Device Registry Management API
</a>
</li>
<li data-nav-id="/hono/docs/1.3/api/metrics/" title="Metrics" class="dd-item ">
<a href="/hono/docs/1.3/api/metrics/">
Metrics
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.3/deployment/" title="Deployment" class="dd-item
parent
">
<a href="/hono/docs/1.3/deployment/">
<i class="fas fa-shipping-fast"></i> Deployment
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/deployment/helm-based-deployment/" title="Helm based Deployment" class="dd-item ">
<a href="/hono/docs/1.3/deployment/helm-based-deployment/">
Helm based Deployment
</a>
</li>
<li data-nav-id="/hono/docs/1.3/deployment/openshift/" title="OpenShift / OKD" class="dd-item ">
<a href="/hono/docs/1.3/deployment/openshift/">
OpenShift / OKD
</a>
</li>
<li data-nav-id="/hono/docs/1.3/deployment/create-kubernetes-cluster/" title="Setting up a Kubernetes Cluster" class="dd-item active">
<a href="/hono/docs/1.3/deployment/create-kubernetes-cluster/">
Setting up a Kubernetes Cluster
</a>
</li>
<li data-nav-id="/hono/docs/1.3/deployment/resource-limitation/" title="Limiting Resource Usage" class="dd-item ">
<a href="/hono/docs/1.3/deployment/resource-limitation/">
Limiting Resource Usage
</a>
</li>
</ul>
</li>
<li data-nav-id="/hono/docs/1.3/architecture/" title="Architecture" class="dd-item
">
<a href="/hono/docs/1.3/architecture/">
<i class="fas fa-landmark"></i> Architecture
</a>
<ul>
<li data-nav-id="/hono/docs/1.3/architecture/component-view/" title="Component View" class="dd-item ">
<a href="/hono/docs/1.3/architecture/component-view/">
Component View
</a>
</li>
<li data-nav-id="/hono/docs/1.3/architecture/auth/" title="Authentication/Authorization" class="dd-item ">
<a href="/hono/docs/1.3/architecture/auth/">
Authentication/Authorization
</a>
</li>
</ul>
</li>
</ul>
<section id="shortcuts">
<h3></h3>
<ul>
<li>
<a class="padding" href="https://www.eclipse.org/hono/" title="Hono&#39;s Homepage"><i class='fas fa-home'></i> Hono Home</a>
</li>
<li>
<a class="padding" href="https://www.eclipse.org/hono/getting-started/" title="Getting started with Eclipse Hono"><i class='fas fa-plane-departure'></i> Getting Started</a>
</li>
</ul>
</section>
<section id="prefooter">
<hr/>
<ul>
<li>
<div id="select-box-wrapper">
<div id="select-box">
<a class="padding">
Version:&nbsp;
<div class="select-style">
<select id="select-language" onchange="location = this.value;">
<option id="stable" value="https://www.eclipse.org/hono/docs/deployment/create-kubernetes-cluster/">stable (1.8)</option>
<option id="1.8" value="https://www.eclipse.org/hono/docs/1.8/deployment/create-kubernetes-cluster/">1.8</option>
<option id="1.7" value="https://www.eclipse.org/hono/docs/1.7/deployment/create-kubernetes-cluster/">1.7</option>
<option id="1.6" value="https://www.eclipse.org/hono/docs/1.6/deployment/create-kubernetes-cluster/">1.6</option>
<option id="1.5" value="https://www.eclipse.org/hono/docs/1.5/deployment/create-kubernetes-cluster/">1.5</option>
<option id="1.4" value="https://www.eclipse.org/hono/docs/1.4/deployment/create-kubernetes-cluster/">1.4</option>
<option id="1.3" value="https://www.eclipse.org/hono/docs/1.3/deployment/create-kubernetes-cluster/" selected>1.3</option>
<option id="1.2" value="https://www.eclipse.org/hono/docs/1.2/deployment/create-kubernetes-cluster/">1.2</option>
<option id="1.1" value="https://www.eclipse.org/hono/docs/1.1/deployment/create-kubernetes-cluster/">1.1</option>
<option id="1.0" value="https://www.eclipse.org/hono/docs/1.0/deployment/create-kubernetes-cluster/">1.0</option>
<option id="dev" value="https://www.eclipse.org/hono/docs/dev/deployment/create-kubernetes-cluster/">dev</option>
</select>
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="255px" height="255px" viewBox="0 0 255 255" style="enable-background:new 0 0 255 255;" xml:space="preserve">
<g>
<g id="arrow-drop-down">
<polygon points="0,63.75 127.5,191.25 255,63.75 " />
</g>
</g>
</svg>
</div>
</a>
</div>
</div>
</li>
</ul>
</section>
<section id="footer">
<p>&copy; 2021 <a href="https://www.eclipse.org/hono/">The Eclipse Hono Project</a></p>
<p>
Documentation built with
<a href="https://gohugo.io/" target="_blank">Hugo</a>
using the
<a href="https://github.com/matcornic/hugo-theme-learn" target="_blank">Learn</a> theme.
</p>
<div class="eclipse-logo">
<a href="https://www.eclipse.org" target="_blank">
<img src="https://www.eclipse.org/hono/docs/images/eclipse_foundation_logo.svg"/>
</a>
</div>
</section>
</div>
</nav>
<section id="body">
<div id="overlay"></div>
<div class="old-version-hint">
<p>This page refers to version <em>1.3</em>.
You might want to use the <a href="https://www.eclipse.org/hono/docs/">current stable</a> version.
</p>
</div>
<div class="padding highlightable">
<div>
<div id="top-bar">
<div id="top-github-link">
<a class="github-link" title='Edit this page' href="https://github.com/eclipse/hono/edit/master/site/documentation/content/deployment/create-kubernetes-cluster.md" target="blank">
<i class="fas fa-code-branch"></i>
<span id="top-github-link-text">Edit this page</span>
</a>
</div>
<div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" data-sidebar-toggle="">
<i class="fas fa-bars"></i>
</a>
</span>
<span id="toc-menu"><i class="fas fa-list-alt"></i></span>
<span class="links">
<a href='/hono/docs/1.3/'>Documentation</a> > <a href='/hono/docs/1.3/deployment/'>Deployment</a> > Setting up a Kubernetes Cluster
</span>
</div>
<div class="progress">
<div class="wrapper">
<nav id="TableOfContents">
<ul>
<li><a href="#setting-up-a-local-development-environment">Setting up a local Development Environment</a></li>
<li><a href="#setting-up-a-production-environment">Setting up a Production Environment</a></li>
<li><a href="#setting-up-an-environment-on-microsoft-azure">Setting up an Environment on Microsoft Azure</a>
<ul>
<li><a href="#prerequisites">Prerequisites</a></li>
<li><a href="#setup">Setup</a></li>
<li><a href="#monitoring">Monitoring</a></li>
<li><a href="#cleaning-up">Cleaning up</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="head-tags">
</div>
<div id="body-inner">
<h1>
Setting up a Kubernetes Cluster
</h1>
<p>This guide describes how to set up a Kubernetes cluster which can be used to run Eclipse Honoâ„¢.</p>
<p>Hono can be deployed to any Kubernetes cluster running version 1.11 or newer. This includes <a href="https://www.okd.io/">OpenShift (Origin)</a> which is built on top of Kubernetes.</p>
<p>The <a href="https://kubernetes.io/docs/setup/">Kubernetes web site</a> provides instructions for setting up a (local) cluster on bare metal and/or virtual infrastructure from scratch or for provisioning a managed Kubernetes cluster from one of the popular cloud providers.</p>
<p><a name="Local Development"></a></p>
<h2 id="setting-up-a-local-development-environment">Setting up a local Development Environment</h2>
<p>The easiest option is to set up a single-node cluster running on a local VM using the <a href="https://minikube.sigs.k8s.io/">Minikube</a> project.
This kind of setup is sufficient for evaluation and development purposes.
Please refer to Minikube&rsquo;s <a href="https://minikube.sigs.k8s.io/docs/start/">getting started guide</a> for instructions on how to set up a cluster locally.</p>
<p>The recommended settings for a Minikube VM used for running Hono&rsquo;s example setup are as follows:</p>
<ul>
<li><strong>cpus</strong>: 2</li>
<li><strong>memory</strong>: 8192 (MB)</li>
</ul>
<p>The command to start the VM will look something like this:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">minikube start --cpus <span style="color:#ae81ff">2</span> --memory <span style="color:#ae81ff">8192</span>
</code></pre></div><p>After the Minikube VM has started successfully, the <code>minikube tunnel</code> command should be run in order to support Hono&rsquo;s services being deployed using the <em>LoadBalancer</em> type. Please refer to the <a href="https://minikube.sigs.k8s.io/docs/tasks/loadbalancer/">Minikube Loadbalancer docs</a> for details.</p>
<div class="alert alert-notice">
<h4 class="alert-heading"><i class="fas fa-info-circle"></i> Setting Kubernetes Version</h4>
<div>Minikube will use the most recent Kubernetes version that was available when it has been compiled by default.
Hono <em>should</em> run on any version of Kubernetes starting with 1.13.6. However, it has been tested with several
specific versions only. The most recent version known to work is 1.15.4 so if you experience any issues with
running Hono on another version, please try to deploy to 1.15.4 before raising an issue.
You can use Minikube&rsquo;s <code>--kubernetes-version</code> command line switch to set a particular version.</div>
</div>
<h2 id="setting-up-a-production-environment">Setting up a Production Environment</h2>
<p>Setting up a multi-node Kubernetes cluster is a more advanced topic. Please follow the corresponding links provided in the <a href="https://kubernetes.io/docs/setup/#production-environment">Kubernetes documentation</a>.</p>
<h2 id="setting-up-an-environment-on-microsoft-azure">Setting up an Environment on Microsoft Azure</h2>
<p>This chapter describes how Hono can be deployed on Microsoft Azure. It includes:</p>
<ul>
<li><a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview">Azure Resource Manager (ARM)</a>
templates for an automated infrastructure deployment.</li>
<li>Helm based deployment of Hono to <a href="https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes">Azure Kubernetes Service (AKS)</a>.</li>
<li>Push Hono docker images to an <a href="https://azure.microsoft.com/en-us/services/container-registry/">Azure Container Registry (ACR)</a>.</li>
<li>Optional <a href="https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview">Azure Service Bus</a> as
broker for the <a href="/hono/docs/1.3/architecture/component-view/#amqp-1-0-messaging-network">Hono AMQP 1.0 Messaging Network</a>
instead of a self hosted ActiveMQ Artemis.</li>
<li><a href="https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoints-overview">Virtual Network (VNet) service endpoints</a>
ensure protected communication between AKS and Azure Service Bus.</li>
</ul>
<div class="alert alert-warning">
<h4 class="alert-heading"><i class="fas fa-exclamation-triangle"></i> Use for demos only</h4>
<div>This deployment model is not meant for productive use but rather for evaluation as well as demonstration purposes or as a baseline to evolve a production grade <a href="https://docs.microsoft.com/en-us/azure/architecture/guide/">Application architecture</a> out of it which includes Hono.</div>
</div>
<h3 id="prerequisites">Prerequisites</h3>
<ul>
<li>An <a href="https://azure.microsoft.com/en-us/get-started/">Azure subscription</a>.</li>
<li><a href="https://docs.microsoft.com/en-us/cli/azure/install-azure-cli">Azure CLI</a> installed to setup the infrastructure.</li>
<li><a href="https://kubernetes.io/docs/tasks/tools/install-kubectl/">kubectl</a> and <a href="https://helm.sh/docs/using_helm/#installing-helm">helm</a>
installed to deploy Hono into <a href="https://docs.microsoft.com/en-us/azure/aks/intro-kubernetes">Azure Kubernetes Service (AKS)</a></li>
</ul>
<h3 id="setup">Setup</h3>
<p>As described <a href="https://docs.microsoft.com/en-gb/azure/aks/kubernetes-service-principal">here</a> we will create an explicit service principal. Later we add roles to this principal to access the <a href="https://docs.microsoft.com/en-us/azure/container-registry/container-registry-intro">Azure Container Registry (ACR)</a>.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># Create service principal</span>
service_principal<span style="color:#f92672">=</span><span style="color:#e6db74">`</span>az ad sp create-for-rbac --name http://honoServicePrincipal --skip-assignment --output tsv<span style="color:#e6db74">`</span>
app_id_principal<span style="color:#f92672">=</span><span style="color:#e6db74">`</span>echo $service_principal | cut -f1 -d <span style="color:#e6db74">&#39; &#39;</span><span style="color:#e6db74">`</span>
password_principal<span style="color:#f92672">=</span><span style="color:#e6db74">`</span>echo $service_principal | cut -f4 -d <span style="color:#e6db74">&#39; &#39;</span><span style="color:#e6db74">`</span>
object_id_principal<span style="color:#f92672">=</span><span style="color:#e6db74">`</span>az ad sp show --id $app_id_principal --query objectId --output tsv<span style="color:#e6db74">`</span>
</code></pre></div><p>Note: it might take a few seconds until the principal is available for the next steps.</p>
<p>Now we create the Azure Container Registry instance and provide read access to the service principal.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#75715e"># Resource group where the ACR is deployed.</span>
acr_resourcegroupname<span style="color:#f92672">={</span>YOUR_ACR_RG<span style="color:#f92672">}</span>
<span style="color:#75715e"># Name of your ACR.</span>
acr_registry_name<span style="color:#f92672">={</span>YOUR_ACR_NAME<span style="color:#f92672">}</span>
<span style="color:#75715e"># Full name of the ACR.</span>
acr_login_server<span style="color:#f92672">=</span>$acr_registry_name.azurecr.io
az acr create --resource-group $acr_resourcegroupname --name $acr_registry-name --sku Basic
acr_id_access_registry<span style="color:#f92672">=</span><span style="color:#e6db74">`</span>az acr show --resource-group $acr_resourcegroupname --name $acr_registry_name --query <span style="color:#e6db74">&#34;id&#34;</span> --output tsv<span style="color:#e6db74">`</span>
az role assignment create --assignee $app_id_principal --scope $acr_id_access_registry --role Reader
</code></pre></div><p>With the next command we will use the provided <a href="https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-overview">Azure Resource Manager (ARM)</a> templates to setup the AKS cluster. This might take a while.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">resourcegroup_name<span style="color:#f92672">=</span>hono
az group create --name $resourcegroup_name --location <span style="color:#e6db74">&#34;westeurope&#34;</span>
unique_solution_prefix<span style="color:#f92672">=</span>myprefix
cd deploy/src/main/deploy/azure/
az group deployment create --name HonoBasicInfrastructure --resource-group $resourcegroup_name --template-file arm/honoInfrastructureDeployment.json --parameters uniqueSolutionPrefix<span style="color:#f92672">=</span>$unique_solution_prefix servicePrincipalObjectId<span style="color:#f92672">=</span>$object_id_principal servicePrincipalClientId<span style="color:#f92672">=</span>$app_id_principal servicePrincipalClientSecret<span style="color:#f92672">=</span>$password_principal
</code></pre></div><p>Notes:</p>
<ul>
<li>add the following parameter in case you want to opt for the Azure Service Bus as broker in the
<a href="/hono/docs/1.3/architecture/component-view/#amqp-1-0-messaging-network">Hono AMQP 1.0 Messaging Network</a> instead of
deploying a (self-hosted) ActiveMQ Artemis into AKS: <em>serviceBus=true</em></li>
<li>add the following parameter to define the k8s version of the AKS cluster. The default as defined in the
template <a href="https://docs.microsoft.com/en-us/azure/aks/supported-kubernetes-versions">might not be supported</a> in your
target Azure region, e.g. <em>kubernetesVersion=1.14.6</em></li>
</ul>
<p>After the deployment is complete you can set your cluster in <em>kubectl</em>.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">az aks get-credentials --resource-group $resourcegroup_name --name $aks_cluster_name
</code></pre></div><p>Next create retain storage for the device registry.</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">kubectl apply -f managed-premium-retain.yaml
</code></pre></div><p>Now Hono can be installed to the AKS cluster as describe in the <a href="/hono/docs/1.3/deployment/helm-based-deployment/">Helm based installation</a>
guide.</p>
<h3 id="monitoring">Monitoring</h3>
<p>You can monitor your cluster using
<a href="https://docs.microsoft.com/en-us/azure/azure-monitor/insights/container-insights-overview">Azure Monitor for containers</a>.</p>
<p>Navigate to <a href="https://portal.azure.com">https://portal.azure.com</a> -&gt; your resource group -&gt; your kubernetes cluster</p>
<p>On an overview tab you fill find an information about your cluster (status, location, version, etc.). Also, here
you will find a <em>Monitor Containers</em> link. Navigate to <em>Monitor Containers</em> and explore metrics and statuses of
your Cluster, Nodes, Controllers and Containers.</p>
<h3 id="cleaning-up">Cleaning up</h3>
<p>Use the following command to delete all created resources once they are no longer needed:</p>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">az group delete --name $resourcegroup_name --yes --no-wait
</code></pre></div>
<footer class="footline">
</footer>
</div>
</div>
<div id="navigation">
</div>
</section>
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
<script src="/hono/docs/js/clipboard.min.js?1626138730"></script>
<script src="/hono/docs/js/perfect-scrollbar.min.js?1626138730"></script>
<script src="/hono/docs/js/perfect-scrollbar.jquery.min.js?1626138730"></script>
<script src="/hono/docs/js/jquery.sticky.js?1626138730"></script>
<script src="/hono/docs/js/featherlight.min.js?1626138730"></script>
<script src="/hono/docs/js/highlight.pack.js?1626138730"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script src="/hono/docs/js/modernizr.custom-3.6.0.js?1626138730"></script>
<script src="/hono/docs/js/learn.js?1626138730"></script>
<script src="/hono/docs/js/hugo-learn.js?1626138730"></script>
<link href="/hono/docs/mermaid/mermaid.css?1626138730" rel="stylesheet" />
<script src="/hono/docs/mermaid/mermaid.js?1626138730"></script>
<script>
mermaid.initialize({ startOnLoad: true });
</script>
<script>
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-5WLCZXC');
</script>
<script src="https://www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
</body>
</html>