blob: 89eb8b129565deb90f53b527f4c307ef1c544557 [file] [log] [blame]
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3909],{3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return b}});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),b=a,k=p["".concat(c,".").concat(b)]||p[b]||d[b]||o;return n?r.createElement(k,i(i({ref:t},u),{},{components:n})):r.createElement(k,i({ref:t},u))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l<o;l++)i[l]=n[l];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}p.displayName="MDXCreateElement"},2519:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return c},default:function(){return b},frontMatter:function(){return s},metadata:function(){return l},toc:function(){return d}});var r=n(7462),a=n(3366),o=(n(7294),n(3905)),i=["components"],s={title:"Setup a Kubernetes cluster using KinD"},c=void 0,l={unversionedId:"gettingStarted/kind",id:"version-0.6.0/gettingStarted/kind",title:"Setup a Kubernetes cluster using KinD",description:"\x3c!--",source:"@site/versioned_docs/version-0.6.0/gettingStarted/kind.md",sourceDirName:"gettingStarted",slug:"/gettingStarted/kind",permalink:"/docs/gettingStarted/kind",editUrl:"https://github.com/apache/submarine/edit/master/website/versioned_docs/version-0.6.0/gettingStarted/kind.md",tags:[],version:"0.6.0",frontMatter:{title:"Setup a Kubernetes cluster using KinD"}},u={},d=[{value:"Create Kubernetes cluster with KinD",id:"create-kubernetes-cluster-with-kind",level:2},{value:"Kubernetes Dashboard (optional)",id:"kubernetes-dashboard-optional",level:2},{value:"Deploy",id:"deploy",level:3},{value:"Create RBAC",id:"create-rbac",level:3},{value:"Get access token (optional)",id:"get-access-token-optional",level:3},{value:"Start dashboard service",id:"start-dashboard-service",level:3}],p={toc:d};function b(e){var t=e.components,s=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"create-kubernetes-cluster-with-kind"},"Create Kubernetes cluster with KinD"),(0,o.kt)("p",null,"We recommend users developing Submarine with minikube. However, ",(0,o.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/"},(0,o.kt)("inlineCode",{parentName:"a"},"KinD"))," is also an option to setup a Kubernetes cluster on your local machine."),(0,o.kt)("p",null,"Run the following command, and specify the KinD version and Kubernetes version ",(0,o.kt)("a",{parentName:"p",href:"../devDocs/Dependencies"},(0,o.kt)("inlineCode",{parentName:"a"},"here")),"."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"# Download the specific version of KinD (must >= v0.6.0)\nexport KIND_VERSION=v0.11.1\ncurl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-linux-amd64\n# Make the binary executable\nchmod +x ./kind\n# Move the binary to your executable path\nsudo mv ./kind /usr/local/bin/\n# Create cluster with specific version of kubernetes\nexport KUBE_VERSION=v1.15.12\nkind create cluster --image kindest/node:${KUBE_VERSION}\n")),(0,o.kt)("h2",{id:"kubernetes-dashboard-optional"},"Kubernetes Dashboard (optional)"),(0,o.kt)("h3",{id:"deploy"},"Deploy"),(0,o.kt)("p",null,"To deploy Dashboard, execute the following command:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta8/aio/deploy/recommended.yaml\n")),(0,o.kt)("h3",{id:"create-rbac"},"Create RBAC"),(0,o.kt)("p",null,"Run the following commands to grant the cluster access permission of dashboard:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"kubectl create serviceaccount dashboard-admin-sa\nkubectl create clusterrolebinding dashboard-admin-sa --clusterrole=cluster-admin --serviceaccount=default:dashboard-admin-sa\n")),(0,o.kt)("h3",{id:"get-access-token-optional"},"Get access token (optional)"),(0,o.kt)("p",null,"If you want to use the token to login the dashboard, run the following commands to get key:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"kubectl get secrets\n# select the right dashboard-admin-sa-token to describe the secret\nkubectl describe secret dashboard-admin-sa-token-6nhkx\n")),(0,o.kt)("h3",{id:"start-dashboard-service"},"Start dashboard service"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"kubectl proxy\n")),(0,o.kt)("p",null,"Now access Dashboard at:"),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/")),(0,o.kt)("p",null,"Dashboard screenshot:"),(0,o.kt)("p",null,(0,o.kt)("img",{src:n(7335).Z,width:"1920",height:"892"})))}b.isMDXComponent=!0},7335:function(e,t,n){t.Z=n.p+"assets/images/kind-dashboard-96b734dca17dd1d6043efad54f4c4725.png"}}]);