Ubuntu’ya K3S Kubernetes Cluster Kurulumu
Kubernetes Nedir
Kubernetes, açık kaynaklı bir konteyner orkestrasyon platformudur. Konteyner teknolojilerini kullanarak uygulamaların dağıtımını, ölçeklendirmesini ve yönetimini kolaylaştırmak için tasarlanmıştır. Konteynerler, uygulama ve bağımlılıklarını bir araya getiren, taşınabilir ve hafif birimlerdir. Docker gibi konteyner teknolojileri popüler olarak kullanılmaktadır.
Kubernetes, konteyner tabanlı uygulamaların geliştirilmesini, dağıtılmasını ve yönetilmesini sağlamak için bir dizi hizmet sunar. Temel özellikleri arasında yüksek erişilebilirlik, ölçeklenebilirlik, otomatik iyileştirme, servis keşfi, yük dengeleme, güvenlik ve uygulama durumunu izleme gibi özellikler bulunmaktadır.
Kubernetes’in temel bileşenleri şunlardır:
- Pods: Konteynerlerin çalıştığı temel birimlerdir.
- ReplicaSets ve Deployments: Uygulamaların ölçeklendirilmesi ve güncellenmesi için kullanılır.
- Services: Uygulamalar arasında iletişimi sağlamak ve dış dünyaya servis sunmak için kullanılır.
- Nodes: Fiziksel veya sanal makinelerdir ve konteynerlerin çalıştığı ortamı temsil eder.
- Cluster: Tüm Kubernetes kaynaklarının barındığı ve yönetildiği birimdir.
- ConfigMaps ve Secrets: Uygulama yapılandırması ve gizli bilgilerin depolanması için kullanılır.
Kubernetes, bulut tabanlı altyapılarda ve özel veri merkezlerinde kullanılabilir ve birçok büyük ölçekli organizasyon tarafından tercih edilmektedir. Konteyner teknolojisinin popülerliği ve uygulama geliştirme süreçlerini hızlandırmak için sunulan avantajlar, Kubernetes’in benimsenmesini artırmıştır.
K3S Nedir?
K3s, hafif Kubernetes dağıtımı olarak bilinen açık kaynaklı bir konteyner yönetim platformudur. Rancher Labs tarafından geliştirilmiştir ve özellikle kaynak sınırlamalı ortamlarda, hafif cihazlarda veya kenar bilgi işlem uygulamalarında kullanılmak üzere tasarlanmıştır. K3s, tam özellikli Kubernetes’in çekirdek özelliklerini sağlar, ancak daha düşük bellek kullanımına ve daha küçük bir ayak izine sahiptir.
K3s’in bazı özellikleri şunlardır:
Hafif ve Hızlı: K3s, küçük bir boyuta ve düşük bellek kullanımına odaklanır, bu da onu kaynak sınırlı ortamlarda daha etkili kılar.
Tek Makine Kurulumu: K3s, tek bir makine üzerinde Kubernetes küme oluşturmayı ve çalıştırmayı kolaylaştırır.
Güvenlik: K3s, temel Kubernetes güvenlik özelliklerini korur, ancak daha hafif bir uygulama olmasına rağmen bu güvenlik özelliklerini eksik bırakmaz.
Kolay Kurulum ve Yönetim: K3s, hızlı bir şekilde kurulabilir ve yönetilebilir. Bu, hızlı prototipler oluşturmak veya küçük ölçekli uygulamaları hızlı bir şekilde devreye almak için avantaj sağlar.
K3s, özellikle IoT (Nesnelerin İnterneti) cihazları, kenar bilgi işlem uygulamaları ve kaynak sınırlı ortamlar gibi alanlarda kullanım için uygun olan bir Kubernetes çözümüdür.
Ön Koşul
- Ubuntu 22.04 (fiziksel veya sanal) çalıştıran bir makine veya VM.
- Kurulum komutlarını yapmamız için sudo ayrıcalıklarına sahip bir kullanıcı hesabı.
1-Sistem Paketlerini Güncelle
Öncelikle sistemimizin paket indeksini ve kurulu paketleri en son versiyonlarına yükseltelim.
$ sudo apt update
$ sudo apt upgrade -y
Güncelleştirmeleri yükledikten sonra sistemi yeniden başlatın,
$ sudo reboot
2-Gerekli Araçları Yükleyin
Daha sonra, kurulum sürecinde bize yardımcı olacak curl ve wget gibi bazı temel araçları yüklememiz gerekiyor.
$ sudo apt install -y curl wget
3- K3s Kubernetes Cluster’ı yükleyin
K3s Kubernetes kurulumu için aşağıdaki komutu çalıştırın.
$ curl -sfL https://get.k3s.io | sh –
Kubernetes kurulumu birkaç dakika sürebilir,
[INFO] systemd: Starting k3s ibaresiyle başarıyla yürütüldüğünü doğrular. Servisin çalıştığını belirtir. Doğrulamak için aşağıdaki komutun çıktısı kontrol edilir.
$ sudo systemctl status k3s
4-Kubectl’i Yapılandırın
K3s Kubernetes, Cluster ile etkileşim kurmak için kubectl komut satırı aracıyla K3s API sunucusuyla iletişim kuracak şekilde yapılandırmanız gerekir. K3s kurulum scripti kubectl binary dosyasını sizin için otomatik olarak yükler.
Kubectl’i yapılandırmak için aşağıdaki komutları çalıştırın,
$ mkdir ~/.kube
$ sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config && sudo chown $USER ~/.kube/config
$ sudo chmod 600 ~/.kube/config && export KUBECONFIG=~/.kube/config
Her şeyin doğru ayarlandığından emin olmak için Cluster’ın durumunu doğrulayalım.
$ kubectl get nodes
$ kubectl cluster-info
$ kubectl get pods -A
5-K3s Kubernetes Cluster’ı Test Edin
K3s Kubernetes Cluster kurulumunu test etmek için nginx tabanlı bir dağıtım yapalım, kubectl komutunu çalıştıralım,
$ kubectl create deployment nginx-deployment –image nginx –replicas 2
$ kubectl get deployment nginx-deployment
$ kubectl get pods
$ kubectl expose deployment nginx-deployment –type NodePort –port 80
$ kubectl get svc nginx-deployment
Aşağıdaki curl komutunu kullanarak nginx uygulamanıza erişmeyi deneyin. (kubectl get svc nginx-deployment çıktısındaki atadığı port kullanılır)
$ curl <Your-Ubuntu-System-IP-Address>:31327
Yukarıdaki çıktı nginx tabanlı uygulamanıza erişebildiğinizi doğruluyor. Bu, k3s Kubernetes Cluster’ınızın iyi çalıştığını doğrular.
6-k3s Kubernetes Dashboard’u Yükleyin ve Erişin
Kubernetes kontrol panelini kurmak için aşağıdaki kubectl komutunu çalıştırın.
$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
$ kubectl get pods,svc -n kubernetes-dashboard
Servis türünü ClusterIP yerine Nodeport olarak değiştirin ve çalıştırın.
$ kubectl patch svc kubernetes-dashboard –type=’json’ -p ‘[{“op”:”replace”,”path”:”/spec/type”,”value”:”NodePort”}]’ -n kubernetes-dashboard
$ kubectl get svc -n kubernetes-dashboard
Hizmet hesabı oluşturun ve bu hesaba cluster rolünü atayın. k3s-dashboard.yaml dosyasını oluştururak aşağıdaki metni ekleyin.
$ vi k3s-dashboard.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: admin-user
namespace: kube-system
—
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: admin-user
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
– kind: ServiceAccount
name: admin-user
namespace: kube-system
Daha sonra Servis hesabı oluşturmak ve buna Cluster yöneticisi rolü atamak için aşağıdaki kubectl komutunu çalıştırın.
$ kubectl create -f k3s-dashboard.yaml
Kubernetes kontrol paneline giriş yapmak için kullanılacak token oluşturun ve bir yere alın,
$ kubectl -n kube-system create token admin-user
“kubectl get svc -n kubernetes-dashboard” komutu ile aldığımız çıktıdaki dasboard portu ve sunucu ip ile web browserdan erişmeyi deneyelim.
https://<Ubuntu-System-IP-Address>: 30112
“kubectl -n kube-system create token admin-user” komutuyla oluşturulan token ile giriş yapıyoruz.
Dashboard geldiğine göre kurulum başarıyla tamamlanmıştır.
Vakit ayırıp yazımı okuduğunuz için teşekkür ederim.
Başka yazımda görüşmek dileğiyle…