<?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: Dogukan Turan</title>
    <description>The latest articles on DEV Community by Dogukan Turan (@dogukanturan).</description>
    <link>https://dev.to/dogukanturan</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%2F771284%2Fee223019-d846-470b-bbbf-9e2872a6024e.jpeg</url>
      <title>DEV Community: Dogukan Turan</title>
      <link>https://dev.to/dogukanturan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dogukanturan"/>
    <language>en</language>
    <item>
      <title>[TR] K3D ile Kubernetes Cluster Kurulumu</title>
      <dc:creator>Dogukan Turan</dc:creator>
      <pubDate>Thu, 09 Dec 2021 06:25:31 +0000</pubDate>
      <link>https://dev.to/dogukanturan/tr-k3d-ile-kubernetes-cluster-kurulumu-20jf</link>
      <guid>https://dev.to/dogukanturan/tr-k3d-ile-kubernetes-cluster-kurulumu-20jf</guid>
      <description>&lt;h1&gt;
  
  
  Giriş
&lt;/h1&gt;

&lt;p&gt;Bundan önceki yazımda kind’ı ele almıştım ve kind aracını kullanarak nasıl kubernetes cluster’ı kurabileceğimizi ele almıştım(Kind hakkındaki yazıma buradan ulaşabilirsiniz). Şimdi ise Rancher’ın bir aracı olan K3D ile nasıl kubernetes cluster’ı oluşturabileceğimize değineceğim.&lt;/p&gt;

&lt;h2&gt;
  
  
  K3S (Lightweight Kubernetes)
&lt;/h2&gt;

&lt;p&gt;K3S, 2019 yılında açık kaynak olarak rancher tarafından piyasaya sürüldü. K3S, 100mb’ın altında bir binary dosyası olarak tasarlanmıştır. Ayrıca sertifikalı bir Kubernetes aracıdır ve cross platform çalışabilme özelliğine sahiptir.&lt;br&gt;
K3S hafifliği sayesinde çok düşük sistemlerde bile kubernetes cluster’ı kurabilmemize olanak sağlıyor. K3S önerilen sistem gereksinimleri aşagıdadır.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux 3.10&lt;/li&gt;
&lt;li&gt;512 MB RAM (sunucu)&lt;/li&gt;
&lt;li&gt;75 MB RAM (node)&lt;/li&gt;
&lt;li&gt;200 MB disk alanı&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
  
  
  1. Ortamın Hazırlanması
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Gereksinimler
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Windows, Linux veya MacOS ortamı&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Kubectl&lt;/li&gt;
&lt;li&gt;K3D&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1.1. Docker Kurulumu
&lt;/h3&gt;

&lt;p&gt;Docker kurulumunu hızlı bir şekilde yapmak için rancher tarafından hazırlanan script’i kullanabilirsiniz veya bu adresten docker kurulumunu uygun ortamınıza göre yapabilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ curl https://releases.rancher.com/install-docker/19.03.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1.2. Kubectl Kurulumu
&lt;/h3&gt;

&lt;p&gt;Kubernetes API ile haberleşmek için Kubectl kurmamız gerekiyor, bunuda aşağıdaki adımları takip ederek kolaylıkla yapabilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
$ chmod +x ./kubectl
$ sudo mv ./kubectl /usr/local/bin/kubectl
$ kubectl version --client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tüm bu işlemlerden sonra aşağıdaki komut ile kubectl versiyon kontrolünü yapabilirsiniz.&lt;/p&gt;

&lt;h3&gt;
  
  
  1.3. K3D Kurulumu
&lt;/h3&gt;

&lt;p&gt;K3D kurulumu basit, yapmanız gereken terminale aşağıdaki komutu girmek. Dilerseniz &lt;a href="https://k3d.io/#installation"&gt;bu&lt;/a&gt; adresten kurulum adımlarını kendi ortamınıza göre yapabilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ wget -q -O - https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--FKHFbKcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2ukuv4chec2dhc4a1ii.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--FKHFbKcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2ukuv4chec2dhc4a1ii.png" alt="Image description" width="770" height="124"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sizde yukarıdaki resimdeki gibi bir çıktı aldıysanız kurulumu başarılı bir şekilde yaptınız demektir. İsterseniz versiyon kontrolü yaparak kurulumunuzu doğrulayabilirsiniz, bunun için terminalinize aşağıdaki komutu girmeniz gerekiyor.&lt;/p&gt;

&lt;p&gt;Versiyon kontrolü için bu komutu girin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ k3d --verison
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  1.4. K3D Komutları
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Cluster Komutları:
&lt;/h3&gt;

&lt;h3&gt;
  
  
  'k3d cluster' komutu ile:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;'k3d cluster create [cluster name]' ile yeni bir cluster oluşturulabilir.&lt;/li&gt;
&lt;li&gt;'k3d cluster delete [cluster name]' ile cluster silebilirsiniz.
Cluster ismi yerine -a parametresi ile toplu seçim yapabilirsiniz.&lt;/li&gt;
&lt;li&gt;'k3d cluster list' ile clusterlarınızı listeleyebilirsiniz.&lt;/li&gt;
&lt;li&gt;'k3d cluster start [cluster name]' ile clusterlarınızı başlatabilirisniz. '-a' parametresi burada da geçerli.&lt;/li&gt;
&lt;li&gt;'k3d cluster stop [cluster name]' ile clusterlarınızı durdurabilirsiniz. '-a' parametresi kullanımı geçerlidir.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  'k3d node' komutu ile:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;'k3d node create [node name]' ile node oluşturabilirsiniz.&lt;/li&gt;
&lt;li&gt;'k3d node delete [node name]' ile node silebilirsiniz. '-a' parametresi geçerlidir.&lt;/li&gt;
&lt;li&gt;'k3d node list' ile nodelarınızı listeleyebilirsiniz.&lt;/li&gt;
&lt;li&gt;'k3d node start [node name]' ile nodelarınızı başlatabilirsiniz. '-a' parametresi geçerlidir.&lt;/li&gt;
&lt;li&gt;'k3d node stop [node name]' ile nodelarınızı durdurabilirsiniz. '-a' parametresi geçerlidir.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1.5. K3D ile Cluster Kurulumu
&lt;/h2&gt;

&lt;p&gt;Artık cluster kurulumuna geçebiliriz. Terminalinize aşağıdaki resimde oluşturduğum gibi sizde kendi oluşturduğunuz name ile cluster oluşturmaya başlayabilirsiniz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ k3d cluster create [NAME]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jLinRp4M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ks6n7501h5h933fb50pe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jLinRp4M--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ks6n7501h5h933fb50pe.png" alt="Image description" width="770" height="162"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;İlk cluster kurulumunda yaklaşık 150–200mb boyutunda docker image pull etmesi gerektiği için kurulum süresi internet hızınıza göre biraz zaman alabilir ama bu image’leri silmediğiniz sürece cluster kurulumunuz çok kısa sürecektir.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--klBYf27y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6f7ajklt4hys9086xmk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--klBYf27y--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6f7ajklt4hys9086xmk3.png" alt="Image description" width="770" height="245"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Resimdeki komut ile oluşturduğunuz cluster’ları ve durumlarını görebilirsiniz.&lt;/p&gt;

&lt;p&gt;Bu şekilde eğer uzak bir sunucuya k3d kurulumu yapıp cluster’ı bu ortamda oluşturduysanız bir uygulama deploy ettiğiniz zaman buna erişemezsiniz. Çünkü herhangi bir port’a izin vermediğimiz için sadece cluster içinden erişime açık olacaktır. Oluşturduğunuz cluster’ı aşağıdaki komut ile silebilirsiniz. Sonraki adımda uygulamalarımıza nasıl erişebiliriz buna değineceğim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ k3d cluster delete -a --&amp;gt; Tüm cluster'ları siler
$ k3d cluster delete [name] --&amp;gt; Belirtilen cluster'ı siler
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  2. Servislere Erişmek
&lt;/h1&gt;

&lt;p&gt;Kind yazımda kind’ın henüz çok yeni olduğunu bir takım sorunlarının olduğunu söylemiştim, bunlardan biriside eğer kind’ı local ortamımıza değilde uzak bir sunucuya kurduysak port açmanın meşakatli bir iş olmasıydı. Elle tek tek port açmamız gerekiyordu ve çalışan bir cluster’da yeni bir açılmamış port ihtiyacımız olduğu takdirde cluster’ı silip tekrar config dosyasını ayarlayıp ayağa kaldırmamız gerekiyordu. K3D kullanırkende öncesinde port açmamız gerekiyor fakat bunun için bize bir çok yol sunmakta, ister node-port olarak istersek de Load Balancer aracılığı ile uygulamalarımıza erişebiliyoruz.&lt;/p&gt;

&lt;h2&gt;
  
  
  2.1. K3D NodePort Ayarları
&lt;/h2&gt;

&lt;p&gt;Kind yazısında da belirttiğimiz gibi, port açmak için elle tek tek portları config dosyasına girmemiz gerekiyordu ve çalışan cluster’da yeni bir pod ihtiyacımız doğduğunda cluster’ı silip tekrar ayağa kaldırmamız gerekiyordu.&lt;br&gt;
K3D bu noktada Kind’dan ayrılıyor çünkü k3d ile port açmak için belli bir port aralığını açmasını söyleyebiliyoruz. Hemen aşağıdaki örnek ile anlatmaya devam edeyim.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ k3d cluster create [NAME] -p "30000-30100:30000-30100@server[0]"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yukarıdaki komutta yeni bir parametre ekledik “-p” docker kullananlar bu komutu sık sık kullanmıştır -p(publish) komutu ile host-container portu açabiliyoruz. Yukarıda da bu işlemi yaptık 30000–30100 aralığını hem host tarafında hemde container tarafında açmasını söylüyorum. (Kubernetes default node port aralığı: 30000–32767)&lt;/p&gt;

&lt;p&gt;Şimdi yukarda yaptığımız nginx uygulamasını bu sefer nodeport açarak yapalım demo-nodeport.yaml isimli bir dosya oluşturun ve aşağıdaki kodu içerisine ekleyip kaydedin.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apps/v1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deployment&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
  &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;matchLabels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
  &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;labels&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
    &lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;containers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
        &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;nginx&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Service&lt;/span&gt;
&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;v1&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;selector&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;demo&lt;/span&gt;
  &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;NodePort&lt;/span&gt;
  &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;node-port&lt;/span&gt;
    &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;  &lt;span class="m"&gt;80&lt;/span&gt;
    &lt;span class="na"&gt;nodePort&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30050&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Yukardaki yaml dosyası ile deployment ve service yaratıyoruz. NodePort için 30050 adresini kullanacağım ben siz de açtığınız aralıktan bir port belirleyip belirlediğiniz port üzerinden uygulamaya erişebilirsiniz. Şimdi demo-nodeport.yaml dosyasını çalıştıralım.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ kubectl create -f demo-nodeport.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9o_4eLBQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hjrssnb2giww4aze03vc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9o_4eLBQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hjrssnb2giww4aze03vc.png" alt="Image description" width="770" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sorunsuz bir şekilde pod’unuz ve servisiniz oluşturulduysa tarayıcınızdan uygulamaya erişebilirsiniz. (IP:NODEPORT)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y5yVsEtK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/av2ua0g28nrtrt4di2kz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y5yVsEtK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/av2ua0g28nrtrt4di2kz.png" alt="Image description" width="770" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Multi Node Cluster Kurulumu
&lt;/h1&gt;

&lt;p&gt;K3D ile birden fazla node’a sahip cluster da kurabilirsiniz. Biz 3 node’lu bir cluster kurulumu yapalım ve daha sonra node komutu ile çalışan cluster’a ek olarak 1 node daha ekleyelim öncelikle aşağıdaki komut ile K3D’ye 3 node’luk bir cluster kurmasını söylüyoruz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ k3d cluster create [NAME] --servers 3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Node’lar oluştuktan sonra aşağıdaki komut’lar ile node’larımızın durumunu görebiliriz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[K3D İLE KONTROL ETME]
$ k3d cluster list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[KUBECTL İLE KONTROL ETME]
$ kubectl get node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8i7VjHkK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2049c8cpqiq40nqnyg2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8i7VjHkK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2049c8cpqiq40nqnyg2p.png" alt="Image description" width="770" height="286"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3.1. Node Ekleme
&lt;/h2&gt;

&lt;p&gt;Node’larımız başarılı bir şekilde oluştu ihtiyaca göre yeni bir node eklemek istersen ne yapmamız gerekiyor peki? Çok kolay bir şekilde aşağıdaki komut ile az önce oluşturduğumuz cluster’a node ekleyebiliriz.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ k3d create node new-node --cluster [CLUSTER-NAME] --role server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u125Jf32--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt476f5lr4jwjjwaaigp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u125Jf32--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kt476f5lr4jwjjwaaigp.png" alt="Image description" width="758" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[TR] Virtualization ve Hypervisor</title>
      <dc:creator>Dogukan Turan</dc:creator>
      <pubDate>Thu, 09 Dec 2021 06:21:08 +0000</pubDate>
      <link>https://dev.to/dogukanturan/tr-virtualization-ve-hypervisor-3ik0</link>
      <guid>https://dev.to/dogukanturan/tr-virtualization-ve-hypervisor-3ik0</guid>
      <description>&lt;h1&gt;
  
  
  Nedir bu virtualization?
&lt;/h1&gt;

&lt;p&gt;Sanallaştırma, gerçek donanımdan soyutlanmış bir layer(katman)’da bir bilgisayar sisteminin sanal bir kopyasını çalıştırma işlemidir. Kısaca, bir bilgisayar sisteminde aynı anda birden fazla işletim sisteminin çalıştırılması anlamına gelir.&lt;br&gt;
Sanallaştırmayı kullanmamızın birçok nedeni vardır. Bu nedenlerden en yaygın olanı ise, bilgisayar değiştirmek veya uygulamalarımızı farklı platformlarda test etmek ve ve vee linux ile windows işletim sistemlerinin ikisine’de ihtiyacın doğması. Kendimden örnek vermek gerekirse; kişisel bilgisayarıma linux(herhangi birisi) kurulumu yapınca tam istediğim performansta çalışmaması durumunda sanal olarak linux kullanmam gösterilebilir.&lt;/p&gt;

&lt;h1&gt;
  
  
  Hypervisor
&lt;/h1&gt;

&lt;p&gt;Şimdi gelelim hypervisor’un ne olduğuna…&lt;br&gt;
En kısa tabiri ile sanal ortamı oluşturan, çalıştıran yazılım/donanım’a denir. Örneğin; benim bir linux dağıtımına ihtiyacım var ve sistemime vmware kurup bu vmware üzerinde sanal bir linux sistem kurmam gerekiyor. CPU, RAM, HDD vs. Birçok ayarı bu vmware üzerinden kolayca konfigüre edebiliyorum.&lt;br&gt;
Aynı senaryoda vmware değilde hyper-v de kullanabilirdim işte tam da bu hypervisor’un devreye girdiği an. Benim için bu işlemleri yapan vmware, hyper-v veya farklı bir sanallaştırma yazılımı olabilirdi. Sonuçta hepsinin yapmış olduğu iş benim sistemimde sanal bir ortam kurmak olacaktı.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hypervisor Type 1 (Bare-Metal Hypervisor)
&lt;/h2&gt;

&lt;p&gt;Type1 Hypervisor, doğrudan ana makinenin fiziksel donanımı üzerinde çalışır ve buna bare-metal hypervisor denir, öncesinde bir işletim sistemi yüklemesi gerekmez. Type1 hypervisor’ler sistemin fiziksel donanımlarına doğrudan eriştiğinden dolayı çok daha performanslıdır. Product ve Test süreçlerinde sık sık kullanılan bir sanallaştırma teknolojisidir. Type 1 Hypervisor yazılımlarından birkaçına örnek vermek gerekirse;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VMware ESX/ESXi&lt;/li&gt;
&lt;li&gt;Microsoft Hyper-V (Windows 10)&lt;/li&gt;
&lt;li&gt;Oracle VM&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hypervisor Type 2 (Hosted Hypervisor)
&lt;/h2&gt;

&lt;p&gt;Type 2 Hypervisor, doğrudan ana makinenin üzerinde değilde bir işletim sistemi üzerinde layer(katman) olarak çalışır. Type1 Hypervisor kadar performanslı bir şekilde çalışmamaktadır. Çünkü host sistemin fiziksel kaynaklarından tam olarak faydalanamamaktadır. Kullanıcılar tarafından sık sık kullanılırlar ve basit test ortamları vs oluşturmak için sık sık başvurulur. Çoğumuzun bir işletim sistemi bulunmakta ve ihtiyaç doğduğunda bu işletim sistemi üzerine kurduğumuz sanal işletim sistemleri aslında Type2 Hypervisor’dır. Type2 Hypervisor yazılımlarından birkaçına örnek vermek gerekirse;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VMware Server&lt;/li&gt;
&lt;li&gt;VMware Workstation/Fusion/Player&lt;/li&gt;
&lt;li&gt;Oracle VM Virtualbox&lt;/li&gt;
&lt;li&gt;Microsoft Virtual PC&lt;/li&gt;
&lt;li&gt;Red Hat Enterprise Virtualization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--M14On9sv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4nne2e5929nxq4wthuv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--M14On9sv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o4nne2e5929nxq4wthuv.png" alt="virtualization-and-hypervisor" width="700" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yukarıdaki şema ile Type 1 ve Type2 Hypervisor’ların nasıl çalıştıkları daha anlaşılır bir şekilde gösterilmekte. Örneğin yukarıdaki resimlerde Type2 Hypervisor’u ele alırsak; benim bir bilgisayarım var ve doğal olarak bunu bilgisayar yapan fiziksel donanımları var cpu, ram, hdd gibi, bunun üzerinde ise bir işletim sistemimiz yer alsın örneğin windows. Şimdi ben bir sanal ubuntu kullanmak istiyorum ve bu windows makinamın üzerinde bir hypervisor yazılımı kuruyorum bunada örnek vermek gerekirse virtualbox, virtualbox aracılığı ile ubuntu yu sistemime kurmuş oluyorum daha sonrasında ise birde CentOS kurmak istiyorum ve virtualbox’u tekrar kullanarak CentOS’u kuruyorum ve windows makinemde sanal Ubuntu ve CentOS kurmuş oluyorum.&lt;/p&gt;

&lt;p&gt;Kısaca anlatmak gerekirse Sanallaştırma nedir? Hypervisor nedir? Türleri neler? Bunlara cevap aradık. Bir sonraki yazımda Container teknolojisinin ne olduğunu, nerelerde kullanıldığını, artılarını ve eksilerini ele alacağım.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
