10 Mayıs 2020

K3s Nedir Ne Değildir?

K3s, Rancher Labs tarafından oluşturulan ve kolay kurulum, az gereksinim ve minimum bellek kullanımı vaat eden bir Kubernetes çözümüdür.

Rancher Labs, Linux Containers üzerinde çalışan bir yazılım şirketidir ve Kubernetes'i herhangi bir ölçekte ve bulutta olsun ya da olmasın herhangi bir sunucuda çalıştırmaya odaklanmıştır. Bu, K3s'in IOT ve edge node alanında kullanımı için önemlidir. Bellek alanı az olan K3s, küçük bilgisayar cihazlarında sorunsuz bir şekilde çalışabilir.

K3s özellikle hızın önemli olduğu ortamlarda önemlidir. Örneğin, bir CI ortamında, standart bir Kubernetes kümesini indirmek, kurmak ve yapılandırmak çok zaman alır. K3s ile, uygulamanızı ve testlerini çalıştırmak için bir kümeyi yüklemek hızlı ve kolay olur. K3s temel olarak standart Kubernetes'in hafif bir versiyonudur. Belleği standart Kubernetes'in yarısı kadar kullanır ve binary dosyası 40 MB'dan azdır. Docker ile bir Kubernetes kümesinin tek bir düğümü sadece çalışmak için yaklaşık 1 GiB bellek kullanır. Buna eşdeğer K3s yaklaşık 260 MiB bellek kullanır.

Birçok dış bağımlılık kaldırılmıştır, ancak containerd, Flannel, CoreDNS, iptables ve socat gibi standart yardımcı programlar binary içinde bulunur. Ayrıca Docker binary bağımlılığı da kaldırılıp yerine containerd kullanılıyor.

Varsayılan Ingress Traefik, çoğu kişi için Nginx'ten daha iyi bir seçenektir. Bununla birlikte, Ingress olarak Traefik'e bağlı değilsiniz, çünkü hiçbir Ingress olmadan kümenizi oluşturabilirsiniz.

K3s Bileşenleri

K3s temel olarak server ve agent olmak üzere iki ana bölümden oluşur. server, içinde bir dizi başka alt bileşen içerir. Bunlar API server, state storage için SQLite, scheduler, controller manager, ve tunnel proxy'dir. Standart Kubernetes ile, tunnel proxy hariç temel olarak tüm bileşenler aynıdır.

k3s

Tunnel proxy, her bir ana bilgisayara container runtime'lar ile kullanılmak üzere bir alt ağ sağlayan sanal bir ağdır. Tunnel proxy, diğer bileşenler için iletişim akışı, agent ve server arasındaki iletişime izin veren bileşendir.

kube-proxy, tunnel proxy ile iletişim kurar, böylece sunucudaki herhangi bir bileşen ile konuşabilir ve gerekli bilgileri API sunucusuna gönderebilir. kubelet iş yüklerini çalıştırmak için containerd gibi bir container runtime ile birlikte çalışır.

server tarafında, işler standart Kubernetes'de olduğu gibi çok benzer şekilde çalışır. API Server her şeyin merkezinde, scheduler, controller manager ve state storage için SQLite ile iletişim kuran sunucudur. Bu bileşenlerin hepsi tek bir process'de çalışır.

K3s Kullanım Alanları

K3s, standart Kubernetes'in küçük bir sürümü olduğundan, kaynakların genellikle sınırlı olduğu çeşitli alanlarda veya hesaplama hızına ihtiyaç duyulduğunda, K3s, sertifikalı bir Kubernetes dağıtımı olduğu için kullanılabilir. Bu, production da kullanılabileceği ve edge nodes gibi kaynakla kısıtlanmamış uzak yerlerde iş yüklerini çalıştırabileceği anlamına gelir.

Başka bir benzer kullanım durumu IOT cihazları içindir. K3s, ARM mimarileri için de optimize edilmiştir ve Raspberry Pi kadar küçük bir şey için harika çalışır.

Kurulumu

Kurulum için minimum gereksinimler:

  • 512 MB RAM
  • 1 CPU

K3s hemen hemen tüm linux dağıtımlarında çalışabilir. Kurulum için aşağıdaki gibi tek satırda yapılabilir.

curl -sfL https://get.k3s.io | sh -

Temiz Kod İçin Basit Kurallar

Redis Pub/Sub Nedir?