{"id":9809,"date":"2023-05-07T12:31:27","date_gmt":"2023-05-07T04:31:27","guid":{"rendered":"https:\/\/jpuyy.com\/?p=9809"},"modified":"2023-06-10T21:11:52","modified_gmt":"2023-06-10T13:11:52","slug":"local-k8s-kind","status":"publish","type":"post","link":"https:\/\/jpuyy.com\/?p=9809","title":{"rendered":"Local K8s cluster: kind"},"content":{"rendered":"<p>Use kind to spin up a new cluster<\/p>\n<p>brew install kind<\/p>\n<p><strong>Create an ha cluster, 3 control-plane, 3 nodes<\/strong><\/p>\n<p>$ mkdir kind-cluster<br \/>\n$ cd kind-cluster<br \/>\n$ bash -x ha-bootstrap.sh<\/p>\n<p>kubectl cluster-info &#8211;context kind-ha-dev<\/p>\n<p>It&#8217;s not stable after docker desktop restarted<\/p>\n<p>$ kubectx<br \/>\nSwitched to context &#8220;kind-ha-dev&#8221;.<br \/>\n$ kubectl get pods<br \/>\nE0515 09:10:08.836178   38742 memcache.go:265] couldn&#8217;t get current server API group list: Get &#8220;https:\/\/127.0.0.1:50016\/api?timeout=32s&#8221;: EOF<\/p>\n<p>$ kind delete cluster &#8211;name ha-dev<br \/>\nDeleting cluster &#8220;dev&#8221; &#8230;<br \/>\nDeleted nodes: [&#8220;dev-external-load-balancer&#8221; &#8220;dev-control-plane3&#8221; &#8220;dev-control-plane2&#8221; &#8220;dev-worker&#8221; &#8220;dev-worker2&#8221; &#8220;dev-worker3&#8221; &#8220;dev-control-plane&#8221;]<\/p>\n<p><strong>Create 1 control-plane, 1 node cluster<\/strong><\/p>\n<p>$ bash -x single-bootstrap.sh<\/p>\n<p><strong>Get clusters<\/strong><\/p>\n<p>$ kind get clusters<br \/>\ndev<br \/>\nha-dev<\/p>\n<p>source code: https:\/\/github.com\/jpuyy\/local-k8s-gitops\/tree\/main\/kind-cluster<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use kind to spin up a new cluster brew install kind Create an ha cluster, 3 control-plane, 3 nodes $ mkdir kind-cluster $ cd kind-cluster $ bash -x ha-bootstrap.sh kubectl cluster-info &#8211;context kind-ha-dev It&#8217;s not stable after docker desktop restarted $ kubectx Switched to context &#8220;kind-ha-dev&#8221;. $ kubectl get pods E0515 09:10:08.836178 38742 memcache.go:265] couldn&#8217;t [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[185],"tags":[],"class_list":["post-9809","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts\/9809","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=9809"}],"version-history":[{"count":9,"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts\/9809\/revisions"}],"predecessor-version":[{"id":9848,"href":"https:\/\/jpuyy.com\/index.php?rest_route=\/wp\/v2\/posts\/9809\/revisions\/9848"}],"wp:attachment":[{"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=9809"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=9809"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jpuyy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=9809"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}