K3s Nedir ve Nasıl Kullanılır?
K3s, Kubernetes’in hafif bir dağıtımıdır ve CNCF (Cloud Native Computing Foundation) tarafından desteklenmektedir. Rancher Labs tarafından geliştirilmiş olan K3s, özellikle düşük kaynak gereksinimleri ve hızlı kurulumuyla öne çıkar. K3s, Kubernetes’in tam özellik setini sunarken, gereksiz bileşenleri çıkartarak daha hafif ve kolay yönetilebilir bir yapı sağlar.
Hangi Uygulamalar Kullanır?
K3s, aşağıdaki kullanım senaryolarında yaygın olarak tercih edilir:
- Edge Computing (Uç Bilişim): Sınırlı kaynaklara sahip cihazlarda (IoT cihazları, edge sunucular) Kubernetes uygulamalarını çalıştırmak.
- Geliştirme ve Test Ortamları: Hızlı kurulum ve düşük kaynak tüketimi sayesinde küçük ölçekli geliştirme ve test projelerinde.
- Dağıtık Sistemler: Küçük boyutlu cluster’lar ile çoklu lokasyonda çalıştırılabilen mikroservis uygulamaları.
- IoT ve ARM Cihazları: Raspberry Pi gibi ARM tabanlı cihazlarda Kubernetes uygulamalarını çalıştırmak.
- Hibrit Bulut Çözümleri: Küçük Kubernetes cluster’larını bulut veya on-premises ortamlarında yönetmek.
Avantajları Nelerdir?
- Hafiflik: K3s, Kubernetes’in tüm işlevselliğini korurken gereksiz bileşenleri çıkarılmış bir yapıya sahiptir.
- Hızlı Kurulum: Sadece bir komutla kolayca kurulum yapılabilir.
- Düşük Sistem Gereksinimleri: Minimal kaynak tüketimi sayesinde düşük donanımlı sistemlerde çalışabilir.
- Tam Uyum: Kubernetes API’si ile tamamen uyumludur.
- Basitleştirilmiş Yönetim: Yerleşik bir SQLite veritabanı kullanarak ek bir veritabanı gereksinimini ortadan kaldırır (isteğe bağlı olarak Etcd veya PostgreSQL kullanılabilir).
- Çoklu Platform Desteği: ARM ve x86 mimarileri üzerinde çalışabilir.
Nelere Dikkat Etmek Lazım?
- Büyük Ölçekli Cluster’lar: K3s, küçük ve orta ölçekli projeler için optimize edilmiştir. Büyük cluster’lar için eksiklikler olabilir.
- Varsayılan Veritabanı: SQLite, büyük veritabanı iş yükleri için uygun değildir. Büyük cluster’larda Etcd veya PostgreSQL kullanılması önerilir.
- Güvenlik: Küçük cihazlarda çalıştırıldığında güvenlik ayarlarının doğru yapılandırılması önemlidir.
- Daha Az Eklenti Desteği: K3s, Kubernetes eklentilerinin tamamını desteklese de, hafifliği sağlamak adına bazı eklentileri dışarıda bırakır.
K3s Nasıl Kullanılır?
1. K3s Kurulumu
K3s kurulumu son derece basittir ve tek bir komutla tamamlanabilir.
Adım 1: K3s Sunucusunu Kurma Bir K3s master (yönetici) node’u kurmak için şu komutu çalıştırın:
curl -sfL https://get.k3s.io | sh -
Kurulum tamamlandıktan sonra K3s hizmetini kontrol edin:
sudo systemctl status k3s
Adım 2: Worker Node Eklemek Ek bir node’u cluster’a bağlamak için şu komutu çalıştırın (master node’dan alınan token ile):
curl -sfL https://get.k3s.io | K3S_URL=https://<master-node-ip>:6443 K3S_TOKEN=<token> sh -
2. K3s ile İlk Kubernetes Uygulamasını Çalıştırma
Adım 1: Kubernetes CLI Kurulumu K3s, kubectl komut satırı aracıyla uyumludur. Aşağıdaki komutla kubectl’ü kullanabilirsiniz:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
Adım 2: Basit Bir Nginx Uygulaması Dağıtma Kubernetes üzerinde bir Nginx pod’u çalıştırmak için şu komutları kullanın:
kubectl create deployment nginx — image=nginx
kubectl expose deployment nginx — type=NodePort — port=80
Adım 3: Uygulamayı Kontrol Etme Pod’ların durumunu kontrol etmek için:
kubectl get pods
Uygulamaya erişim için NodePort’u alın:
kubectl get svc nginx
3. Kullanım Örnekleri
Örnek 1: IoT Projesi İçin K3s Kullanımı Raspberry Pi üzerinde çalışan IoT sensörlerinden veri toplayan bir mikroservis çalıştırmak için K3s kullanılabilir. Hafif yapısı sayesinde sınırlı donanıma sahip cihazlarda kolayca Kubernetes işlevselliği sağlar.
Örnek 2: Edge Computing Uygulaması Birden fazla edge node’da konteyner tabanlı uygulamalar çalıştırmak için K3s kullanılabilir. Düşük donanım gereksinimi sayesinde uzak lokasyonlardaki cihazlarda Kubernetes’i etkinleştirir.
Örnek 3: K3s ve Helm Kullanarak Uygulama Yönetimi Helm ile K3s üzerinde kolayca uygulama dağıtabilirsiniz:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-release bitnami/nginx
K3s Kullanırken Nelere Dikkat Edilmeli?
- Veritabanı Seçimi: Büyük iş yükleri için SQLite yerine Etcd veya PostgreSQL kullanın.
- Güvenlik Ayarları: Varsayılan güvenlik ayarlarını kontrol edin ve gerekiyorsa RBAC yapılandırmalarını uygulayın.
- Kaynak Yönetimi: Worker node’ların kaynak kullanımını izlemek için Prometheus gibi araçlar kullanabilirsiniz.
- Eklenti Yönetimi: Hafif yapısını korumak için yalnızca gerekli eklentileri yükleyin.
K3s, Kubernetes’in hafif ve optimize edilmiş bir sürümü olarak modern yazılım dağıtım süreçlerinde hızlı, verimli ve güvenilir bir çözüm sunar. Özellikle edge computing, IoT projeleri ve küçük ölçekli Kubernetes cluster’ları için ideal bir araçtır. Hafif yapısı ve kolay kurulumu sayesinde hem gelişmiş kullanıcılar hem de yeni başlayanlar için uygun bir çözüm sunar.