{"id":7076,"date":"2022-11-30T21:33:10","date_gmt":"2022-11-30T12:33:10","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7076"},"modified":"2022-11-30T22:23:32","modified_gmt":"2022-11-30T13:23:32","slug":"minikube-on-ubuntu-20-04","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7076","title":{"rendered":"MiniKube on Ubuntu 20.04"},"content":{"rendered":"<h1>MiniKube on Ubuntu 20.04<\/h1>\n<p>Ubuntu \uc5d0 MiniKube \ub97c \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/spidyweb.tistory.com\/407\">\ucc38\uc870<\/a><\/p>\n<h2>Docker \uc124\uce58<\/h2>\n<p>\uc544\ub798 \ub9c1\ud06c\ub97c \ucc38\uc870\ud574\uc11c Docker \ub97c \uc124\uce58\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7073\">\uc5ec\uae30<\/a><\/p>\n<h2>MiniKube \ub2e4\uc6b4\ub85c\ub4dc<\/h2>\n<pre><code class=\"language-bash\">curl -Lo minikube https:\/\/storage.googleapis.com\/minikube\/releases\/latest\/minikube-linux-amd64 \\\n  &amp;&amp; chmod +x minikube\nls -al minikube<\/code><\/pre>\n<h2>MiniKube \uc124\uce58<\/h2>\n<pre><code class=\"language-bash\">sudo mkdir -p \/usr\/local\/bin\/\nsudo install minikube \/usr\/local\/bin\/<\/code><\/pre>\n<h2>kubelet, kubeadm, kubectl \uc124\uce58<\/h2>\n<pre><code class=\"language-bash\">cat &lt;&lt;EOF | sudo tee \/etc\/modules-load.d\/k8s.conf\nbr_netfilter\nEOF\n\ncat &lt;&lt;EOF | sudo tee \/etc\/sysctl.d\/k8s.conf\nnet.bridge.bridge-nf-call-ip6tables = 1\nnet.bridge.bridge-nf-call-iptables = 1\nEOF\n\nsudo sysctl --system<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install -y apt-transport-https ca-certificates curl\n\nsudo curl -fsSLo \/usr\/share\/keyrings\/kubernetes-archive-keyring.gpg https:\/\/packages.cloud.google.com\/apt\/doc\/apt-key.gpg\n\necho &quot;deb [signed-by=\/usr\/share\/keyrings\/kubernetes-archive-keyring.gpg] https:\/\/apt.kubernetes.io\/ kubernetes-xenial main&quot; | sudo tee \/etc\/apt\/sources.list.d\/kubernetes.list<\/code><\/pre>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get install -y kubelet kubeadm kubectl\nsudo apt-mark hold kubelet kubeadm kubectl<\/code><\/pre>\n<h2>MiniKube \uc2dc\uc791<\/h2>\n<p>sudo \uc5c6\uc774 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">minikube start \\\n    --network-plugin=cni \\\n    --cni=bridge \\\n    --container-runtime=containerd \\\n    --bootstrapper=kubeadm<\/code><\/pre>\n<p>\uc544\ub798\uc640 \uac19\uc740 \ub85c\uadf8\uac00 \ucc0d\ud788\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \uc2e4\ud589\ub41c \uac83\uc774\ub2e4.<\/p>\n<pre><code class=\"language-bash\">......\n* Done! kubectl is now configured to use &quot;minikube&quot; cluster and &quot;default&quot; namespace by default<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f https:\/\/github.com\/weaveworks\/weave\/releases\/download\/v2.8.1\/weave-daemonset-k8s.yaml<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl get nodes<\/code><\/pre>\n<h2>dashboard \ud65c\uc131\ud654<\/h2>\n<pre><code class=\"language-bash\">minikube addons list\nminikube addons enable dashboard\nminikube addons enable metrics-server\n\nminikube dashboard<\/code><\/pre>\n<h2>nginx \uc124\uce58<\/h2>\n<h3>Deployment \uc0dd\uc131<\/h3>\n<pre><code class=\"language-bash\">vi nginx-deployment.yaml\n---------------------------\napiVersion: apps\/v1\nkind: Deployment\nmetadata:\n  name: nginx-deployment\n  labels:\n    app: nginx\nspec:\n  replicas: 3                 # 3\uac1c\uc758 pod\n  selector:\n    matchLabels:\n      app: nginx\n  template:\n    metadata:\n      labels:\n        app: nginx\n    spec:\n      containers:\n      - name: nginx\n        image: nginx:1.14.2\n        ports:\n        - containerPort: 80   # \ucee8\ud14c\uc774\ub108 \ud3ec\ud2b8(pod \ud3ec\ud2b8)\n---------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f nginx-deployment.yaml<\/code><\/pre>\n<p>3 \uac1c\uc758 \uc778\uc2a4\ud134\uc2a4\uac00 \uc2e4\ud589\uc911\uc778 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl get deployments\nNAME               READY   UP-TO-DATE   AVAILABLE   AGE\nnginx-deployment   3\/3     3            3           21s<\/code><\/pre>\n<h3>Service \uc0dd\uc131<\/h3>\n<p>k8s \ub0b4\ubd80 \uc544\uc774\ud53c\ub97c \uc774\uc6a9\ud574 \uc811\uc18d\uc774 \uac00\ub2a5\ud558\uc9c0\ub9cc,<br \/>\n\ud074\ub7ec\uc2a4\ud130 \uc678\ubd80\uc5d0\uc11c \uc811\uc18d\ud558\uae30 \uc704\ud574\uc11c\ub294 \uc11c\ube44\uc2a4\ub97c \uc0dd\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">vi nginx-svc.yaml\n---------------------------\napiVersion: v1\nkind: Service\nmetadata:\n  name: my-nginx\n  labels:\n    run: my-nginx\nspec:\n  type: NodePort     # \uc11c\ube44\uc2a4 \ud0c0\uc785\n  ports:\n  - nodePort: 31001  # \uc678\ubd80 \ud3ec\ud2b8\n    port: 8080       # \uc11c\ube44\uc2a4 \ud3ec\ud2b8\n    targetPort: 80   # \ucee8\ud14c\uc774\ub108 \ud3ec\ud2b8(pod \ud3ec\ud2b8)\n    protocol: TCP\n    name: http\n  selector:\n    app: nginx\n---------------------------<\/code><\/pre>\n<pre><code class=\"language-bash\">kubectl apply -f nginx-svc.yaml<\/code><\/pre>\n<p>nodePort \uc5d0 \ud560\ub2f9\ub41c \uc678\ubd80\ud3ec\ud2b8 31001 \ub97c \ud1b5\ud574 nginx \uc5d0 \uc811\uadfc\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl get svc | grep my-nginx\nmy-nginx     NodePort    10.110.214.52   &lt;none&gt;        8080:31001\/TCP   69s\n\nminikube ip\n192.168.49.2:\ncurl http:\/\/192.168.49.2:31001\/<\/code><\/pre>\n<h3>nginx \uc0ad\uc81c<\/h3>\n<pre><code class=\"language-bash\"># service \uc0ad\uc81c\nkubectl delete -n default service my-nginx\n\n# deployments \uc0ad\uc81c\nkubectl get deployments\nkubectl delete deployments nginx-deployment<\/code><\/pre>\n<h2>MiniKube \uc0ad\uc81c<\/h2>\n<pre><code class=\"language-bash\">sudo minikube delete<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>MiniKube on Ubuntu 20.04 Ubuntu \uc5d0 MiniKube \ub97c \uc124\uce58\ud569\ub2c8\ub2e4. \ucc38\uc870 Docker \uc124\uce58 \uc544\ub798 \ub9c1\ud06c\ub97c \ucc38\uc870\ud574\uc11c Docker \ub97c \uc124\uce58\ud574 \uc90d\ub2c8\ub2e4. \uc5ec\uae30 MiniKube \ub2e4\uc6b4\ub85c\ub4dc curl -Lo minikube https:\/\/storage.googleapis.com\/minikube\/releases\/latest\/minikube-linux-amd64 \\ &amp;&amp; chmod +x minikube ls -al minikube MiniKube \uc124\uce58 sudo mkdir -p \/usr\/local\/bin\/ sudo install minikube \/usr\/local\/bin\/ kubelet, kubeadm, kubectl \uc124\uce58 cat &lt;&lt;EOF | sudo tee \/etc\/modules-load.d\/k8s.conf br_netfilter\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=7076\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":["post-7076","post","type-post","status-publish","format-standard","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7076"}],"version-history":[{"count":20,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7076\/revisions"}],"predecessor-version":[{"id":7096,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/7076\/revisions\/7096"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}