<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kodakademik</title>
    <description>The latest articles on DEV Community by kodakademik (@kodakademik).</description>
    <link>https://dev.to/kodakademik</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F281476%2F484629d0-b7d2-4cc7-a917-a48b733d5ea4.png</url>
      <title>DEV Community: kodakademik</title>
      <link>https://dev.to/kodakademik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kodakademik"/>
    <language>en</language>
    <item>
      <title>Asas Kubernetes - Hari 4. Bagaimana pentadbir Kubernetes mengawalselia sumber komponen.</title>
      <dc:creator>kodakademik</dc:creator>
      <pubDate>Sat, 25 Jan 2025 03:22:39 +0000</pubDate>
      <link>https://dev.to/kodakademik/asas-kubernetes-hari-4-bagaimana-pentadbir-kubernetes-mengawalselia-sumber-komponen-a9n</link>
      <guid>https://dev.to/kodakademik/asas-kubernetes-hari-4-bagaimana-pentadbir-kubernetes-mengawalselia-sumber-komponen-a9n</guid>
      <description>&lt;p&gt;&lt;strong&gt;Peranan API Server dalam Kubernetes dan interaksinya dengan komponen lain&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bagaimana pentadbir Kubernetes menjalankan kerja kawal selia "resources" didalam cluster?&lt;/p&gt;

&lt;p&gt;Dalam senibina Kubernetes laluan yang menghubungkan bagaimana komunikasi berlaku antara pentadbir dan komponen-komponen lain ialah melalui Kube API Server.&lt;/p&gt;

&lt;p&gt;Kube API Server menyediakan fungsi tersebut dengan persekitaran selamat iaitu dengan penggunaan CLI dikenali "kubectl". Sebelum kubectl boleh berhubung dengan API-Server, pentadbir perlu mendapatkan kebenaran akses dan secure &lt;strong&gt;apikey&lt;/strong&gt;. Maklumat tersebut akan diletakkan didalam file config.&lt;/p&gt;

&lt;p&gt;API Server (&lt;code&gt;kube-apiserver&lt;/code&gt;) adalah komponen utama dalam Kubernetes yang berfungsi sebagai pintu masuk (gateway) untuk semua komunikasi dalam cluster. Ia bertindak sebagai pusat kawalan yang mengurus permintaan dari pengguna, alat (seperti &lt;code&gt;kubectl&lt;/code&gt;), dan komponen Kubernetes lain. API Server memastikan semua interaksi dalam cluster adalah konsisten, selamat, dan mengikut polisi yang ditetapkan.&lt;/p&gt;

&lt;p&gt;Gambarajah dibawah menunjukkan 2 cara bagaimana kubernetes cluster diakses  melalui kubectl dan juga web-admin portal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0l9d2nj0xnjpw5yvixpm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0l9d2nj0xnjpw5yvixpm.png" alt="Image description" width="549" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Berikut adalah penjelasan tentang bagaimana API Server berfungsi dan berinteraksi dengan komponen-komponen lain dalam Kubernetes cluster:&lt;/p&gt;




&lt;h3&gt;
  
  
  1. &lt;strong&gt;Fungsi Utama API Server&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;API Server mempunyai beberapa peranan penting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Menerima dan Memproses Permintaan&lt;/strong&gt;: API Server menerima permintaan RESTful API dari pengguna atau komponen lain, seperti &lt;code&gt;kubectl&lt;/code&gt;, Dashboard Kubernetes, atau alat automasi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mengesahkan dan Membenarkan Permintaan&lt;/strong&gt;: API Server memastikan permintaan adalah sah dengan mengesahkan identiti pengguna (authentication) dan memeriksa kebenaran (authorization) menggunakan mekanisme seperti RBAC.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mengemas Kini State Cluster&lt;/strong&gt;: API Server menyimpan state terkini cluster dalam etcd, sebuah penyimpanan key-value yang terdistribusi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Menyediakan Antaramuka Konsisten&lt;/strong&gt;: API Server menyediakan antaramuka yang konsisten untuk semua komponen Kubernetes, memudahkan komunikasi antara komponen.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  2. &lt;strong&gt;Interaksi API Server dengan Komponen Lain&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  a. &lt;strong&gt;etcd&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peranan&lt;/strong&gt;: etcd adalah penyimpanan key-value terdistribusi yang menyimpan semua data konfigurasi dan state cluster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interaksi dengan API Server&lt;/strong&gt;: API Server berkomunikasi dengan etcd untuk membaca dan menulis data. Setiap perubahan dalam cluster (seperti mencipta Pod atau Deployment) akan disimpan dalam etcd melalui API Server.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  b. &lt;strong&gt;Controller Manager (&lt;code&gt;kube-controller-manager&lt;/code&gt;)&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peranan&lt;/strong&gt;: Controller Manager mengurus pelbagai controller yang memastikan state cluster sepadan dengan konfigurasi yang diinginkan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interaksi dengan API Server&lt;/strong&gt;: Controller Manager sentiasa memantau state cluster melalui API Server. Contohnya, jika bilangan Pod dalam Deployment tidak sepadan dengan konfigurasi, Controller Manager akan meminta API Server untuk mencipta atau memadam Pod.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  c. &lt;strong&gt;Scheduler (&lt;code&gt;kube-scheduler&lt;/code&gt;)&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peranan&lt;/strong&gt;: Scheduler bertanggungjawab untuk menempatkan Pod pada nod yang sesuai berdasarkan keperluan sumber dan polisi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interaksi dengan API Server&lt;/strong&gt;: Scheduler menerima maklumat tentang Pod yang perlu dijadualkan melalui API Server. Selepas memilih nod yang sesuai, Scheduler akan memaklumkan API Server untuk mengemas kini state Pod.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  d. &lt;strong&gt;Kubelet&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peranan&lt;/strong&gt;: Kubelet adalah agen yang berjalan pada setiap nod dan bertanggungjawab untuk memastikan kontena berjalan seperti yang ditetapkan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interaksi dengan API Server&lt;/strong&gt;: Kubelet sentiasa berkomunikasi dengan API Server untuk menerima arahan (seperti menjalankan Pod) dan melaporkan status nod dan Pod.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  e. &lt;strong&gt;Kube Proxy&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peranan&lt;/strong&gt;: Kube Proxy mengurus peraturan rangkaian untuk membolehkan komunikasi antara Pod dan Service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interaksi dengan API Server&lt;/strong&gt;: Kube Proxy menerima maklumat tentang Service dan Endpoints dari API Server dan mengemas kini peraturan rangkaian pada nod.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  f. &lt;strong&gt;Pengguna dan Alat (seperti &lt;code&gt;kubectl&lt;/code&gt;)&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Peranan&lt;/strong&gt;: Pengguna dan alat seperti &lt;code&gt;kubectl&lt;/code&gt; berinteraksi dengan Kubernetes untuk mengurus sumber seperti Pod, Deployment, dan Service.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interaksi dengan API Server&lt;/strong&gt;: Semua permintaan dari pengguna atau alat dihantar ke API Server. API Server akan memproses permintaan tersebut dan mengemas kini state cluster jika perlu.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  3. &lt;strong&gt;Proses Komunikasi API Server&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Berikut adalah contoh aliran komunikasi antara API Server dan komponen lain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pengguna Menghantar Permintaan&lt;/strong&gt;: Pengguna menggunakan &lt;code&gt;kubectl&lt;/code&gt; untuk mencipta Deployment.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   kubectl create deployment nginx &lt;span class="nt"&gt;--image&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;nginx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;API Server Mengesahkan dan Membenarkan&lt;/strong&gt;: API Server mengesahkan identiti pengguna dan memeriksa kebenaran menggunakan RBAC.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Server Menyimpan Data dalam etcd&lt;/strong&gt;: API Server menyimpan maklumat Deployment dalam etcd.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Controller Manager Memantau Perubahan&lt;/strong&gt;: Controller Manager memerhatikan perubahan dalam etcd melalui API Server dan memastikan bilangan Pod yang diperlukan dicipta.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scheduler Menjadualkan Pod&lt;/strong&gt;: Scheduler menerima maklumat tentang Pod yang perlu dijadualkan dan memilih nod yang sesuai.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kubelet Menjalankan Pod&lt;/strong&gt;: Kubelet pada nod yang dipilih menerima arahan dari API Server dan memulakan kontena.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kube Proxy Mengemas Kini Peraturan Rangkaian&lt;/strong&gt;: Kube Proxy menerima maklumat tentang Service dan mengemas kini peraturan rangkaian untuk membolehkan komunikasi.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  4. &lt;strong&gt;Keselamatan API Server&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;API Server dilindungi oleh beberapa lapisan keselamatan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Authentication&lt;/strong&gt;: Mengesahkan identiti pengguna menggunakan token, sertifikat, atau kaedah lain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authorization&lt;/strong&gt;: Memeriksa kebenaran pengguna menggunakan RBAC atau polisi lain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admission Control&lt;/strong&gt;: Memproses permintaan tambahan seperti mengesahkan konfigurasi atau mengubah permintaan sebelum diterima.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  5. &lt;strong&gt;Kelebihan API Server&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pusat Kawalan Tunggal&lt;/strong&gt;: Semua komunikasi dalam cluster melalui API Server, memudahkan pengurusan dan pemantauan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Konsistensi&lt;/strong&gt;: API Server memastikan state cluster sentiasa konsisten dengan menyelaraskan semua perubahan melalui etcd.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keselamatan&lt;/strong&gt;: API Server menyediakan lapisan keselamatan yang kukuh untuk melindungi cluster.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Untuk infra developer yang ingin membangunkan aplikasi UI untuk berinteraksi dengan API-Server boleh menggunakan protokol RESTFul. Terdapat beberapa aplikasi &lt;strong&gt;Admin Management&lt;/strong&gt; dipasaran untuk memudahkan  kerja kawal selia pentadbir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Kubernetes Dashboard&lt;/strong&gt;&lt;br&gt;
Kubernetes Dashboard adalah antara muka pengguna web yang rasmi untuk Kubernetes. Ia menyediakan antara muka yang mudah digunakan untuk mengurus cluster Kubernetes, termasuk melihat dan mengurus "resources" seperti Pod, Services, Deployment, dan lain-lain.&lt;br&gt;
&lt;strong&gt;2. Lens&lt;/strong&gt;&lt;br&gt;
Lens adalah IDE Kubernetes yang menyediakan antara muka pengguna yang kaya dan interaktif untuk mengurus cluster Kubernetes. Ia tersedia untuk Windows, macOS, dan Linux.&lt;br&gt;
&lt;strong&gt;3. Rancher&lt;/strong&gt;&lt;br&gt;
Rancher adalah platform pengurusan cluster Kubernetes yang menyediakan antara muka pengguna yang menarik untuk mengurus cluster Kubernetes. Ia juga menyediakan ciri-ciri tambahan seperti pengurusan akses dan keselamatan.&lt;br&gt;
&lt;strong&gt;4. Octant&lt;/strong&gt;&lt;br&gt;
Octant adalah antara muka pengguna web yang ringan untuk Kubernetes yang menyediakan antara muka yang mudah digunakan untuk mengurus dan memantau kluster Kubernetes.&lt;br&gt;
&lt;strong&gt;5. KubeSphere&lt;/strong&gt;&lt;br&gt;
KubeSphere adalah platform pengurusan kluster Kubernetes yang menyediakan antara muka pengguna yang kuat untuk mengurus cluster Kubernetes. &lt;br&gt;
&lt;strong&gt;6. OpenShift Console&lt;/strong&gt;&lt;br&gt;
OpenShift Console adalah antara muka pengguna web untuk Red Hat OpenShift, sebuah platform Kubernetes yang dikembangkan oleh Red Hat. Ia menyediakan antara muka yang interaktif untuk mengurus dan memantau cluster Kubernetes.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Asas Kubernetes - Hari 3. Komponen penting didalam Master Node atau dikenali sebagai Control-Plane</title>
      <dc:creator>kodakademik</dc:creator>
      <pubDate>Fri, 24 Jan 2025 01:11:41 +0000</pubDate>
      <link>https://dev.to/kodakademik/asas-kubernetes-hari-3-komponen-penting-didalam-master-node-atau-dikenali-sebagai-control-plane-4bn3</link>
      <guid>https://dev.to/kodakademik/asas-kubernetes-hari-3-komponen-penting-didalam-master-node-atau-dikenali-sebagai-control-plane-4bn3</guid>
      <description>&lt;h3&gt;
  
  
  Komponen Utama Master Node (Control-Plane Node) dalam Kubernetes
&lt;/h3&gt;

&lt;p&gt;Terdapat 2 jenis node iaitu Master Node dan Worker Node.Terdapat 2 jenis node iaitu Master Node dan Worker Node.&lt;/p&gt;

&lt;p&gt;Dalam dunia Kubernetes, master node atau control-plane node merupakan komponen penting yang bertanggungjawab untuk menguruskan dan mengawal seluruh cluster. Ia memainkan peranan kritikal dalam memastikan bahawa semua aplikasi dan perkhidmatan berjalan dengan lancar. Berikut adalah penerangan mengenai komponen-komponen utama yang terdapat dalam master node beserta fungsi dan cara kerja mereka.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssl6iqb0vrbion5xzlyn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fssl6iqb0vrbion5xzlyn.png" alt="Image description" width="544" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;kube-apiserver&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Fungsi:&lt;/strong&gt;&lt;br&gt;
kube-apiserver adalah komponen yang menyediakan antara muka API untuk Kubernetes. Ia bertindak sebagai pintu masuk utama untuk semua operasi pengurusan cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cara Kerja:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menerima permintaan dari pengguna, aplikasi, dan komponen lain dalam cluster.&lt;/li&gt;
&lt;li&gt;Memproses permintaan dan memastikan bahawa hanya permintaan yang sah dan berkuasa dibenarkan.&lt;/li&gt;
&lt;li&gt;Menyimpan dan mengemaskini keadaan cluster dalam etcd, yang merupakan storan data teragih.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. &lt;strong&gt;etcd&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Fungsi:&lt;/strong&gt;&lt;br&gt;
etcd adalah storan data teragih yang digunakan oleh Kubernetes untuk menyimpan semua data konfigurasi dan keadaan cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cara Kerja:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menyimpan maklumat seperti konfigurasi pod, perkhidmatan, dan pengawal.&lt;/li&gt;
&lt;li&gt;Memastikan bahawa data tersebut tersedia dan konsisten di seluruh cluster.&lt;/li&gt;
&lt;li&gt;Menyediakan akses cepat dan boleh dipercayai kepada data yang diperlukan oleh komponen-komponen lain.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. &lt;strong&gt;kube-scheduler&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Fungsi:&lt;/strong&gt;&lt;br&gt;
kube-scheduler bertanggungjawab untuk menjadualkan pod kepada node yang sesuai dalam cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cara Kerja:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Menganalisis keperluan sumber dan keutamaan setiap pod.&lt;/li&gt;
&lt;li&gt;Memilih node yang paling sesuai untuk menjalankan pod berdasarkan keperluan tersebut.&lt;/li&gt;
&lt;li&gt;Memastikan bahawa pod dijadualkan dengan cekap dan seimbang di seluruh cluster.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. &lt;strong&gt;kube-controller-manager&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Fungsi:&lt;/strong&gt;&lt;br&gt;
kube-controller-manager menguruskan pelbagai pengawal yang memastikan bahawa keadaan cluster sentiasa mencerminkan keadaan yang diingini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cara Kerja:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mengawal pengawal seperti Replication Controller, Node Controller, dan Endpoints Controller.&lt;/li&gt;
&lt;li&gt;Memastikan bahawa jumlah pod yang diingini sentiasa berada dalam keadaan yang diharapkan.&lt;/li&gt;
&lt;li&gt;Menangani kegagalan node dan memastikan bahawa pod dijadualkan semula kepada node lain jika perlu.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  5. &lt;strong&gt;cloud-controller-manager&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Fungsi:&lt;/strong&gt;&lt;br&gt;
cloud-controller-manager menguruskan interaksi antara Kubernetes dan pembekal awan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cara Kerja:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mengawal pengawal seperti Node Controller, Route Controller, dan Service Controller yang berkaitan dengan awan.&lt;/li&gt;
&lt;li&gt;Memastikan bahawa sumber awan seperti Load Balancer dan alamat IP awam dikonfigurasi dengan betul.&lt;/li&gt;
&lt;li&gt;Menyediakan integrasi yang lancar antara Kubernetes dan perkhidmatan awan.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Kesimpulan
&lt;/h3&gt;

&lt;p&gt;Master node dalam Kubernetes memainkan peranan penting dalam memastikan bahawa semua komponen dan aplikasi berjalan dengan lancar. Setiap komponen dalam master node mempunyai fungsi yang unik dan penting, dan kerjasama antara komponen-komponen ini memastikan bahawa cluster Kubernetes beroperasi dengan cekap dan boleh dipercayai. Dengan memahami komponen-komponen ini, kita dapat memahami dengan lebih baik bagaimana Kubernetes berfungsi dan bagaimana ia dapat membantu dalam pengurusan aplikasi dan perkhidmatan dalam skala besar.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Asas Kubernetes - Hari 2. Fahami apa itu Kubernetes Cluster</title>
      <dc:creator>kodakademik</dc:creator>
      <pubDate>Sat, 04 Jan 2025 03:30:28 +0000</pubDate>
      <link>https://dev.to/kodakademik/asas-kubernetes-hari-2-fahami-apa-itu-kubernetes-cluster-4jia</link>
      <guid>https://dev.to/kodakademik/asas-kubernetes-hari-2-fahami-apa-itu-kubernetes-cluster-4jia</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F14pxt0mve6bpyvhxnds4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F14pxt0mve6bpyvhxnds4.png" alt="Image description" width="401" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Memahami apa itu Kubernetes Cluster adalah antara topik permulaan asas yang dikira perlu kepada mereka yang ingin melibatkan diri sebagai &lt;em&gt;DevOps&lt;/em&gt; engineer masa kini.&lt;/p&gt;

&lt;p&gt;Makna cluster secara umum itu sendiri ialah gabungan kecil komponen-komponen secara fizikal atau maya(virtual) yang membina satu unit/kumpulan yang lebih berkuasa.&lt;/p&gt;

&lt;p&gt;Kubernetes cluster pula ialah gabungan komputer(mesin) sama ada fizikal atau maya(virtual) dan membentuk satu entiti yang bekerjasama sebagai satu sistem untuk menjalan dan mengawal &lt;em&gt;lifecycle&lt;/em&gt; aplikasi yang berasaskan teknologi kontena (&lt;em&gt;containerize&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;Individual mesin dikenali sebagai node.&lt;/p&gt;

&lt;p&gt;Node didalam Kubernetes cluster terbahagi kepada:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;MasterNode (ControlPlane)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WorkerNode&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Manfaat utama membina aplikasi yang boleh dikawal selia didalam Kubernetes Cluster ialah:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scalability&lt;/strong&gt;: Automasi dalam menambah atau mengurangkan workload berdasarkan keperluan.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fault Tolerance&lt;/strong&gt;: Jika satu node gagal, workload boleh dipindahkan ke node lain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resource Efficiency&lt;/strong&gt;: Menggunakan sumber node dengan lebih efisien.&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Asas Kubernetes - Hari 1. Apa itu Kubernetes</title>
      <dc:creator>kodakademik</dc:creator>
      <pubDate>Thu, 02 Jan 2025 15:17:16 +0000</pubDate>
      <link>https://dev.to/kodakademik/asas-kubernetes-hari-1-apa-itu-kubernetes-56l6</link>
      <guid>https://dev.to/kodakademik/asas-kubernetes-hari-1-apa-itu-kubernetes-56l6</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv63q69wd6oifnddq6624.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv63q69wd6oifnddq6624.png" alt="Image description" width="142" height="137"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Antara sumber terbuka yang mendapat tinggi pengiktirafan ialah projek &lt;em&gt;Kubernetes&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Kubernetes&lt;/em&gt; (biasanya disingkatkan sebagai K8s) adalah platform sumber terbuka yang pada permulaannya dibina untuk keperluan dalaman Google bagi mengawal selia beribu-ribu server di data-denter mereka oleh beberapa orang saintis dan developer di Google.&lt;/p&gt;

&lt;p&gt;Fungsi utama yang direka adalah untuk mengautomasi proses deployment, scaling, dan pengurusan aplikasi berasaskan kontena. &lt;/p&gt;

&lt;p&gt;Kubernetes membolehkan anda menguruskan cluster kontena dengan mudah, menjadikannya popular dalam persekitaran DevOps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ciri-Ciri Utama Kubernetes -
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Penskalaan Automatik&lt;/strong&gt;: Menambah atau mengurangkan bilangan pod berdasarkan keperluan yang ditentukan oleh DevOps/Admin dan juga pengguna.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pemulihan Kendiri&lt;/strong&gt;: Secara automatik menggantikan pod yang gagal. Fungsi ini menambat hati banyak developer dan infra engineer kerana kebolehupayaan kubernetes untuk menjalankan semula sistem yang terhenti tanpa perlu mereka secara manual memberi arahan untuk &lt;em&gt;start&lt;/em&gt; semula.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pengimbangan Beban&lt;/strong&gt;: Mengedarkan trafik ke pod yang tersedia.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pengurusan Konfigurasi&lt;/strong&gt;: Mengurus rahsia (secrets) dan konfigurasi tanpa perlu mengubah imej kontena.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kubernetes</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Kenalpasti proses didalam fungsi kod anda adalah I/O bound atau CPU bound.</title>
      <dc:creator>kodakademik</dc:creator>
      <pubDate>Tue, 31 Dec 2024 13:54:13 +0000</pubDate>
      <link>https://dev.to/kodakademik/kenalpasti-proses-didalam-fungsi-kod-anda-adalah-io-bound-atau-cpu-bound-1fjl</link>
      <guid>https://dev.to/kodakademik/kenalpasti-proses-didalam-fungsi-kod-anda-adalah-io-bound-atau-cpu-bound-1fjl</guid>
      <description>&lt;h2&gt;
  
  
  Pengenalan
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Kepantasan&lt;/strong&gt; didalam memproses data dan memberi maklumat didalam dunia applikasi internet semakin hari semakin menjadi topik hangat dan penting.&lt;/p&gt;

&lt;p&gt;Dalam pembangunan perisian, kecekapan dan prestasi adalah faktor kritikal. Salah satu aspek penting dalam mengoptimumkan prestasi adalah menentukan sama ada suatu proses atau fungsi adalah I/O bound atau CPU bound. Pemahaman ini boleh membantu dalam mereka bentuk, mengoptimumkan, dan men-debug aplikasi dengan lebih baik.&lt;/p&gt;

&lt;p&gt;Seringkali perbincangan dan tips dikeluarkan bagaimana membolehkan sesuatu applikasi berfungsi dengan cukup efisien dari segi kelajuan dan penggunaan sumber daya &lt;strong&gt;memory&lt;/strong&gt; dan &lt;strong&gt;cpu&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pengertian I/O Bound dan CPU Bound
&lt;/h2&gt;

&lt;p&gt;I/O Bound: &lt;br&gt;
Proses yang kecepatannya bergantung pada operasi input/output, seperti baca/tulis ke cakera, rangkaian, atau pangkalan data. Proses ini sering menghabiskan masa menunggu operasi I/O selesai.&lt;/p&gt;

&lt;p&gt;CPU Bound: &lt;br&gt;
Proses yang kecepatannya bergantung pada pemprosesan CPU, seperti pengiraan kompleks atau pemprosesan data yang besar. Proses ini sering menghabiskan masa menunggu CPU untuk menyelesaikan tugasnya.&lt;br&gt;
Cara Menentukan Sama Ada Proses adalah I/O Bound atau CPU Bound&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profiling:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gunakan alat profiling untuk mengukur masa yang dihabiskan pada operasi I/O dan CPU.&lt;br&gt;
Alat seperti cProfile dalam Python atau perf dalam Linux boleh membantu mengenal pasti bottleneck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pemerhatian Masa Menunggu:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Jika proses menghabiskan banyak masa menunggu operasi I/O selesai, maka proses tersebut mungkin I/O bound.&lt;br&gt;
Jika proses menghabiskan banyak masa menunggu CPU untuk menyelesaikan tugasnya, maka proses tersebut mungkin CPU bound.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Penggunaan Sumber&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pantau penggunaan CPU dan I/O menggunakan alat seperti top, htop, atau iostat.&lt;br&gt;
Jika penggunaan CPU tinggi dan stabil, maka proses mungkin CPU bound.&lt;br&gt;
Jika penggunaan I/O tinggi dan stabil, maka proses mungkin I/O bound.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strategi Optimum&lt;/strong&gt;&lt;br&gt;
I/O Bound:&lt;br&gt;
Gunakan asynchronous I/O atau multithreading untuk meningkatkan kecekapan.&lt;br&gt;
Optimumkan operasi I/O dengan menggunakan cache atau batching.&lt;/p&gt;

&lt;p&gt;Contoh task yang memerlukan async/await&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Database queries&lt;/li&gt;
&lt;li&gt;API calls&lt;/li&gt;
&lt;li&gt;File operations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CPU Bound:&lt;br&gt;
Gunakan multiprocessing atau parallel processing untuk memanfaatkan multi-core CPU.&lt;br&gt;
Optimumkan algoritma dan struktur data untuk mengurangkan kompleksiti.&lt;/p&gt;

&lt;p&gt;Contoh task yang &lt;em&gt;parallelization&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Image processing&lt;/li&gt;
&lt;li&gt;Complex calculations&lt;/li&gt;
&lt;li&gt;Data transformations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Apabila anda berjaya mengenalpasti fungsi kod anda ialah I/O bound atau CPU bound anda boleh menggunakan beberapa cara &lt;em&gt;pattern&lt;/em&gt; yang membantu secara efektif meningkatkan keupayaan memproses sesuatu &lt;em&gt;task&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;Antara cara dan tips&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Untuk I/O bound pastikan anda menggunakan &lt;em&gt;async/await(concurrency)&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pastikan web server framework anda berupaya menerima &lt;em&gt;multiple incoming requests&lt;/em&gt; secara simultaneously kerana &lt;em&gt;request&lt;/em&gt; ke server termasuk dalam kategory I/O bound (network requests).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Penggunaan async/await dapat menghalang &lt;em&gt;thread&lt;/em&gt; dari dikunci yang akan menyebabkan keseluruhan sistem anda boleh tergendala.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Jika anda memerlukan proses yang berat dan banyak serentak, menjadikan kod anda untuk melakukan proses parallel menggunakan multithread adalah sangat membantu. terdapat juga &lt;em&gt;library&lt;/em&gt; yang ada boleh digunakan seperti Actor programming.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Library Actor programming yang ada seperti Akka (Java), Akka.Net dan Proto Actor (.Net), Ergo (go) memudahkan anda untuk menjalankan &lt;em&gt;thead safe&lt;/em&gt; proses&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtkz5lnfx9053bul17hs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjtkz5lnfx9053bul17hs.png" alt="Image description" width="702" height="496"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>performance</category>
    </item>
  </channel>
</rss>
