main
  1<!DOCTYPE html>
  2<html lang="en">
  3<head>
  4<!-- Oct 07, 2022 -->
  5<meta charset="utf-8" />
  6<meta name="viewport" content="width=device-width, initial-scale=1" />
  7<title>kind</title>
  8<meta name="author" content="Vincent Demeester" />
  9<meta name="generator" content="Org Mode" />
 10<link rel='icon' type='image/x-icon' href='/images/favicon.ico'/>
 11<meta name='viewport' content='width=device-width, initial-scale=1'>
 12<link rel='stylesheet' href='/css/new.css' type='text/css'/>
 13<link rel='stylesheet' href='/css/syntax.css' type='text/css'/>
 14<link href='/index.xml' rel='alternate' type='application/rss+xml' title='Vincent Demeester' />
 15</head>
 16<body>
 17<main id="content" class="content">
 18<header>
 19<h1 class="title">kind</h1>
 20</header><p>
 21<a href="https://kind.sigs.k8s.io/"><code>kind</code></a> runs <a href="kubernetes.html">Kubernetes</a> in <a href="docker.html">Docker</a> containers, and maybe more in the future.
 22</p>
 23
 24<section id="outline-container-Multi-node%20setup" class="outline-2">
 25<h2 id="Multi-node%20setup">Multi-node setup</h2>
 26<div class="outline-text-2" id="text-Multi-node%20setup">
 27<p>
 28I am using the following configuration to be able to run a <code>kind</code> cluster on one of my local
 29server and target it from my laptop.
 30</p>
 31
 32<div class='drawer note'>
 33<h6>Note</h6>
 34<p>
 35wakasu.home IP is <code>192.168.1.77</code>
 36</p>
 37</div>
 38
 39<div class="org-src-container">
 40<pre class="src src-yaml"><span class="org-variable-name">kind</span>: Cluster
 41<span class="org-variable-name">apiVersion</span>: kind.x-k8s.io/v1alpha4
 42<span class="org-variable-name">networking</span>:
 43  <span class="org-variable-name">apiServerAddress</span>: <span class="org-string">"192.168.1.77"</span>
 44  <span class="org-variable-name">apiServerPort</span>: 8443
 45<span class="org-variable-name">containerdConfigPatches</span>:
 46- |-
 47  [plugins.<span class="org-string">"io.containerd.grpc.v1.cri"</span>.registry.mirrors.<span class="org-string">"localhost:5000"</span>]
 48    endpoint = [<span class="org-string">"http://sakhalin.home:5000"</span>]
 49<span class="org-variable-name">nodes</span>:
 50- <span class="org-variable-name">role</span>: control-plane
 51  <span class="org-variable-name">kubeadmConfigPatches</span>:
 52  - |
 53    <span class="org-string">kind: InitConfiguration</span>
 54    <span class="org-variable-name">nodeRegistration</span>:
 55      <span class="org-variable-name">kubeletExtraArgs</span>:
 56        <span class="org-variable-name">node-labels</span>: <span class="org-string">"ingress-ready=true"</span>
 57  <span class="org-variable-name">extraPortMappings</span>:
 58  - <span class="org-variable-name">containerPort</span>: 80
 59    <span class="org-variable-name">hostPort</span>: 80
 60    <span class="org-variable-name">protocol</span>: TCP
 61  - <span class="org-variable-name">containerPort</span>: 443
 62    <span class="org-variable-name">hostPort</span>: 443
 63    <span class="org-variable-name">protocol</span>: TCP
 64- <span class="org-variable-name">role</span>: worker
 65- <span class="org-variable-name">role</span>: worker
 66</pre>
 67</div>
 68
 69<p>
 70Then, to provision this and get the configuration file, it&rsquo;s a matter of 2 commands.
 71</p>
 72
 73<div class="org-src-container">
 74<pre class="src src-shell">ssh wakasu.home kind create cluster --config ~/var/kind/wakasu.kind.yaml --name wakasu
 75ssh wakasu.home kind get kubeconfig --name wakasu &gt; ~/.kube/config.wakasu.kind
 76cat &lt;&lt;EOF | kubectl --kubeconfig=$<span class="org-variable-name">HOME</span>/.kube/config.wakasu.kind apply -f -
 77<span class="org-sh-heredoc">apiVersion: v1</span>
 78<span class="org-sh-heredoc">kind: ConfigMap</span>
 79<span class="org-sh-heredoc">metadata:</span>
 80<span class="org-sh-heredoc">  name: local-registry-hosting</span>
 81<span class="org-sh-heredoc">  namespace: kube-public</span>
 82<span class="org-sh-heredoc">data:</span>
 83<span class="org-sh-heredoc">  localRegistryHosting.v1: |</span>
 84<span class="org-sh-heredoc">    host: "localhost:5000"</span>
 85<span class="org-sh-heredoc">    help: "https://kind.sigs.k8s.io/docs/user/local-registry/"</span>
 86<span class="org-sh-heredoc">EOF</span>
 87</pre>
 88</div>
 89</div>
 90</section>
 91</main>
 92<footer id="postamble" class="status">
 93<footer>
 94     <small><a href="/" rel="history">Index</a><a href="/sitemap.html">Sitemap</a><a href="https://dl.sbr.pm/">Files</a></small><br/>
 95     <small class='questions'>Questions, comments ? Please use my <a href="https://lists.sr.ht/~vdemeester/public-inbox">public inbox</a> by sending a plain-text email to <a href="mailto:~vdemeester/public-inbox@lists.sr.ht">~vdemeester/public-inbox@lists.sr.ht</a>.</small><br/>
 96     <small class='copyright'>
 97      Content and design by Vincent Demeester
 98      (<a rel='licence' href='http://creativecommons.org/licenses/by-nc-sa/3.0/'>Some rights reserved</a>)
 99    </small><br />
100</footer>
101</footer>
102</body>
103</html>