{"id":47859,"date":"2024-06-25T08:46:50","date_gmt":"2024-06-25T01:46:50","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=47859"},"modified":"2024-06-25T08:47:24","modified_gmt":"2024-06-25T01:47:24","slug":"cara-install-kubernetes-cluster-di-ubuntu","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/cara-install-kubernetes-cluster-di-ubuntu\/","title":{"rendered":"Cara Install Kubernetes Cluster di Ubuntu 22.04"},"content":{"rendered":"\n<p>Kubernetes adalah salah satu teknologi paling menarik dalam dunia pengembangan dan pengelolaan aplikasi saat ini. Dengan <a href=\"https:\/\/www.rumahweb.com\/journal\/kubernetes-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"kubernetes adalah\">Kubernetes<\/a>, Anda dapat mengelola berbagai aplikasi secara lebih efisien dan dalam lingkungan komputasi modern. Dalam artikel ini, kami akan berbagi cara install cara install kubernetes <em>cluster <\/em>di Ubuntu 22.04 pada layanan VPS KVM. <\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu Kubernetes cluster?<\/h2>\n\n\n\n<p>Kubernetes cluster adalah kumpulan komputer atau server yang saling terhubung untuk menjalankan aplikasi dalam sebuah <em>container<\/em>. Kubernetes cluster memastikan bahwa semua aplikasi yang berjalan dapat didistribusikan dan dikelola dengan baik.<\/p>\n\n\n\n<p>Biasanya dalam satu <em>cluster<\/em>, terdiri dari satu computer atau server utama yang disebut dengan &#8220;master&#8221; dan beberapa komputer yang berjalan sebagai &#8220;worker&#8221;. Komputer <em>master <\/em>berfungsi untuk mengatur semua computer <em>worker <\/em>agar dapat berjalan sesuai kebutuhan.<\/p>\n\n\n\n<p>Menariknya, dengan system cluster ini Anda dapat menjalankan aplikasi secara lebih efisien, serta lebih mudah dikelola, seolah-olah semua computer atau server berada adlam satu sistem yang terintegrasi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Install Kubernetes Cluster di Ubuntu<\/h2>\n\n\n\n<p>Dalam artikel ini, kami akan berbagi cara install Kubernetes cluster di VPS Ubuntu 22.04. Untuk mulai melakukan instalasi, Anda perlu mempersiapkan beberapa hal terlebih dahulu. Berikut step by step yang perlu Anda lakukan. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Persiapan Sistem<\/h3>\n\n\n\n<p>Pastikan <a href=\"https:\/\/www.rumahweb.com\/vps-indonesia\/\" target=\"_blank\" rel=\"noopener\" title=\"VPS Indonesia\">VPS KVM<\/a> Anda telah memenuhi <em>systems requirement<\/em> berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2 CPU<\/li>\n\n\n\n<li>2 GB RAM <\/li>\n<\/ul>\n\n\n\n<p>Sistem requirement tersebut berlaku untuk masing-masing node. <\/p>\n\n\n\n<p>Pada panduan ini, kami menggunakan 3 VPS KVM yang detailnya kami namakan sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>Master <\/strong>: 203.175.8.222 : master.jurnalrw.my.id\n<strong>Worker <\/strong>: 203.175.8.101 : worker1.jurnalrw.my.id\n<strong>Worker <\/strong>: 203.175.8.102 : worker2.jurnalrw.my.id<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Install Docker service\u00a0<\/h3>\n\n\n\n<p>Sebelum melakukan installasi docker, pastikan telah membuat file hosts pada masing masing node (\/etc\/hosts) yang mengarah ke ip tiap vos server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># nano \/etc\/hosts\n\n203.175.8.222 : master.jurnalrw.my.id\n203.175.8.101 : worker1.jurnalrw.my.id\n203.175.8.102 : worker2.jurnalrw.my.id<\/code><\/pre>\n\n\n\n<p>Lakukan konfigurasi hostname VPS sesuai dengan hostname\/IP yang telah diatur sebelumya. Jalankan pada tiap VPS command berikut ini:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># hostnamectl set-hostname master.jurnalrw.my.id<\/code><\/pre>\n\n\n\n<p>Lanjutkan pada proses installasi <em>package <\/em>yang dibutuhkan.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># sudo apt update\n# sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release\ncurl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3. Install Docker<\/h3>\n\n\n\n<p>Lakukan instalasi docket dengan perintah sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \\\n\n\u00a0\u00a0\"deb &#091;arch=amd64 signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu \\\n\n\u00a0\u00a0$(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list > \/dev\/null\u00a0\n\n# sudo apt update\n# sudo apt install docker-ce docker-ce-cli containerd.io\u00a0\n# sudo groupadd docker\n# sudo usermod -aG docker $USER<\/code><\/pre>\n\n\n\n<p>Untuk memastikan apakah docker telah terinstall, periksa menggunakan perintah <em>docker version<\/em>.<\/p>\n\n\n\n<p>Apabila docker telah terinstall, langkah selanjutnya melakukan disable swap pada masing masing vps dan mengizinkan forward ip dari sysctl.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># swapoff -a\n# sed -i '\/ swap \/ s\/^\\(.*\\)$\/#\\1\/g' \/etc\/fstab\n# nano \/etc\/sysctl.conf\n\n\u00a0\u00a0net.ipv4.ip_forward = 1\n\nsysctl --system<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4. Install Kubernetes\u00a0<\/h3>\n\n\n\n<p>Setelah melakukan installasi Docker dan persiapan sistem cluster, kita akan melakukan installasi Kubernetes cluster pada semua node.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># apt install -y apt-transport-https curl\n# curl -s https:\/\/packages.cloud.google.com\/apt\/doc\/apt-key.gpg | sudo apt-key add\u00a0\n# apt-add-repository \"deb http:\/\/apt.kubernetes.io\/ kubernetes-xenial main\"\u00a0\n# apt update &amp;&amp; sudo apt install -y kubelet kubeadm kubectl kubernetes-cni &amp;&amp; systemctl enable kubelet<\/code><\/pre>\n\n\n\n<p>Jalankan Initialize kubernetes\u00a0pada node <strong>Master<\/strong>. Jika sudah selesai dan tidak terkendala, selanjutnya akan terdapat perintah <em>join cluster<\/em> untuk node workernya.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;output> ...\n\nYour Kubernetes control-plane has initialized successfully!\n\nTo start using your cluster, you need to run the following as a regular user:\n\n\u00a0\u00a0mkdir -p $HOME\/.kube\n\n\u00a0\u00a0sudo cp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\n\n\u00a0\u00a0sudo chown $(id -u):$(id -g) $HOME\/.kube\/config\n\nAlternatively, if you are the root user, you can run:\n\n\u00a0\u00a0export KUBECONFIG=\/etc\/kubernetes\/admin.conf\n\nYou should now deploy a pod network to the cluster.\n\nRun \"kubectl apply -f &#091;podnetwork].yaml\" with one of the options listed at: \nhttps:&#47;&#47;kubernetes.io\/docs\/concepts\/cluster-administration\/addons<\/code><\/pre>\n\n\n\n<p>Kemudian Anda dapat menambahkan node worker dengan menjalankan perintah berikut pada masing-masing node sebagai root:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubeadm join 203.175.8.222:6443 --token ryu2ba91.ao5vt6g4k6814xsw \\\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0--discovery-token-ca-cert-hash sha256:gyg66js12b6f686gg0c1ef6b1a4cf085f46e31ac20be575\n\nBuat file Konfigurasi Kubernetes pada node master.\n\n# mkdir -p $HOME\/.kube\n# sudo cp -i \/etc\/kubernetes\/admin.conf $HOME\/.kube\/config\n# sudo chown $(id -u):$(id -g) $HOME\/.kube\/config<\/code><\/pre>\n\n\n\n<p>Untuk kebutuhan network, Install pod calico pada node masternya dengan perintah sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl apply -f https:\/\/docs.projectcalico.org\/v3.23\/manifests\/calico.yaml<\/code><\/pre>\n\n\n\n<p>Tambahkan worker ke dalam cluster pada semua node worker. <em>Command <\/em>ini akan berjalan ketika selesai install node.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubeadm join 203.175.8.222:6443 --token r8ba91.ao5vt6g4k6814xsw \\\n\n--discovery-token-ca-cert-hash sha256:b98397015ed01dc8402b6fae86b40cb0150c1ef6b1a4cf085f46e31ac20be575\n\n... &lt;output&gt; ...\n\n&#091;preflight] Running pre-flight checks\n\n&#091;preflight] Reading configuration from the cluster...\n\n&#091;preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'\n\n&#091;kubelet-start] Writing kubelet configuration to file \"\/var\/lib\/kubelet\/config.yaml\"\n\n&#091;kubelet-start] Writing kubelet environment file with flags to file \"\/var\/lib\/kubelet\/kubeadm-flags.env\"\n\n&#091;kubelet-start] Starting the kubelet\n\n&#091;kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...\n\nThis node has joined the cluster:\n\n* Certificate signing request was sent to apiserver and a response was received.\n\n* The Kubelet was informed of the new secure connection deta\n\nLangkah selanjutnya, pastikan sistem berjalan dengan normal dengan memeriksa status health dan info components&nbsp;\n\nkubectl get componentstatus\n\n... &lt;output&gt; ...\n\nWarning: v1 ComponentStatus is deprecated in v2.78+\n\nNAME STATUS MESSAGE ERROR\n\ncontroller-manager Healthy ok\n\nscheduler Healthy ok\n\netcd-0 Healthy {\"health\":\"true\",\"reason\":\"\"}\n\nkubectl get pods --all-namespaces\n\n... &lt;output&gt; ...\n\nNAMESPACE NAME READY STATUS RESTARTS AGE\n\nkube-system calico-kube-controllers-6766647d54-7ts48 1\/1 Running 0 30m\n\nkube-system calico-node-tzdm2 1\/1 Running 0 17m\n\nkube-system calico-node-wkpl4 1\/1 Running 0 17m\n\nkube-system calico-node-wn9n6 1\/1 Running 0 30m\n\nkube-system coredns-9974cb6d-6t2jx 1\/1 Running 0 56m\n\nkube-system coredns-6d4b774853d-zx999 1\/1 Running 0 56m\n\nkube-system etcd-master.jurnalrw.my.id 1\/1 Running 0 57m\n\nkube-system kube-apiserver-master.jurnalrw.my.id 1\/1 Running 0 57m<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network.png\"><img loading=\"lazy\" decoding=\"async\" width=\"809\" height=\"146\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network.png\" alt=\"kubeadm network - cara install kubernetes cluster di ubuntu\" class=\"wp-image-47861\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network.png 809w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network-300x54.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network-768x139.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network-370x67.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network-270x49.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network-570x103.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/network-740x134.png 740w\" sizes=\"auto, (max-width: 809px) 100vw, 809px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Pengujian<\/h2>\n\n\n\n<p>Pada proses pengujian, kita akan melakukan installasi Nginx pada semua node melalui master, dengan perintah sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl create deployment nginx --image=nginx<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>... &lt;output&gt; ...\n\ndeployment.apps\/nginx created\n\nExpose service nginx agar dapat diakses dari node luar\/jaringan luar.\n\nkubectl create service nodeport nginx --tcp=80:80<\/code><\/pre>\n\n\n\n<p>Apabila service telah ter-expose dan dapat diakses, langkah selanjutnya adalah percobaan melakukan scale-up\/down pada container. Pada panduan ini, kami mencoba membuat 4 replica nginx.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl scale --replicas=4 deployment nginx<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>... &lt;output&gt; ...\n\ndeployment.apps\/nginx scaled<\/code><\/pre>\n\n\n\n<p>Setelah melakukan scale Kubernetes <em>cluster<\/em>, kita periksa dengan menjalankan <em>command <\/em>kubectl untuk memeriksa apakah container berhasil dibuat.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods -o wide<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>.. &lt;output&gt; ...\n\nNAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES\n\nnginx-8f458dc5b-7jlzp 1\/1 Running 0 11m 10.100.17.194 worker1.jurnalrw.my.id &lt;none&gt; &lt;none&gt;\n\nnginx-67258dc5b-gwbdj 1\/1 Running 0 23m 10.100.17.193 worker1.jurnalrw.my.id &lt;none&gt; &lt;none&gt;\n\nnginx-673f458dc5b-jn7t2 1\/1 Running 0 11m 10.100.91.195 worker2.jurnalrw.my.id &lt;none&gt; &lt;none&gt;\n\nnginx-672fffc5b-mc9v8 1\/1 Running 0 11m 10.100.91.194 worker2.jurnalrw.my.id &lt;none&gt; &lt;none&gt;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"138\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-1024x138.png\" alt=\"worker uji kubernetes\" class=\"wp-image-47860\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-1024x138.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-300x40.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-768x104.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-370x50.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-270x36.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-570x77.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji-740x100.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/06\/workeruji.png 1068w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Sampai tahap ini, proses install Kubernetes cluster di VPS Ubuntu 22.04 telah selesai. Selanjutnya, Anda dapat melakukan scale sesuai kebutuhan dan image yang ingin dipasang pada server.<\/p>\n\n\n\n<p>Demikian artikel kami tentang apa itu Kubernetes cluster dan bagaimana cara install Kubernetes cluster di Ubuntu 22.04 pada layanan VPS KVM. Semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes adalah salah satu teknologi paling menarik dalam dunia pengembangan dan pengelolaan aplikasi saat ini. Dengan Kubernetes, Anda dapat mengelola berbagai aplikasi secara lebih efisien dan dalam lingkungan komputasi modern. Dalam artikel ini, kami akan berbagi cara install cara install kubernetes cluster di Ubuntu 22.04 pada layanan VPS KVM. Apa itu Kubernetes cluster? Kubernetes cluster [&hellip;]<\/p>\n","protected":false},"author":349,"featured_media":47961,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[177],"tags":[2239,1119,2044],"class_list":{"0":"post-47859","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-vps","8":"tag-cluster","9":"tag-docker","10":"tag-kubernetes"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/47859","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/349"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=47859"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/47859\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/47961"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=47859"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=47859"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=47859"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}