Konteynerizasyon, son on yılda benimsenmesi artan bir teknolojidir. Bunun nedeni firmalara birçok özellik ve fayda sunmasıdır. Bazı özellikler arasında Güvenlik İzolasyonu, Taşınabilirlik, Kaynak Verimliliği, Sürüm Kontrolü ve Geri Alma, Düzenleme ve Ölçeklenebilirlik vb. yer alır. Bu teknoloji, Docker, Podman, OpenShift, Containerd, rkt (Rocket), LXC (Linux Containers), CRI- gibi çeşitli araçları da beraberinde getirmiştir.
Bugün bir sistem yöneticisi veya DevOps mühendisi olmak için konteynerleri yönetme konusunda güçlü bir bilgiye sahip olmanız gerekir. Kubernetes çoğu şirket için en çok benimsenen araçlardan biridir. Bunun nedeni, bu çağda birçok şirketin ihtiyaç duyduğu pek çok harika özellik ve fayda sağlamasıdır. Bu avantajlar arasında Güvenlik ve Rol Tabanlı Erişim Kontrolü (RBAC), Devamlı Güncellemeler ve Geri Almalar, Konteyner Sağlığı İzleme, Hizmet Keşfi ve Yük Dengeleme, Yüksek Kullanılabilirlik ve Hata Toleransı, Verimli Kaynak Kullanımı, Otomatik Konteyner Düzenleme, Konteyner Soyutlaması, Depolama Düzenleme, Çoklu -Bulut ve Hibrit Bulut Desteği vb.
Kubernetes’i yönetmek için kullanılabilecek birçok CLI aracı vardır. Bunlar arasında kubectl, minikube, kustomize, stern, k9s vb. bulunur. Bu araçlar ancak komutlara aşinaysanız ve ortam o kadar büyük değilse çok heyecan verici olabilir. Ortam büyüdükçe kendinizi daha gelişmiş bir araca ihtiyaç duyduğunuz senaryoların içinde bulacaksınız. Bu kılavuz, Kubernetes kümenizi yönetmek için kullanabileceğiniz en iyi kullanıcı arayüzü aracını belirlemenize yardımcı olmak için hazırlanmıştır.
1. Lens
Lens Masaüstü, Lens Core Masaüstünün üzerine kurulmuş bir araçtır. Lens core, React ve Electron tarafından desteklenen bir kütüphanedir. Lens Masaüstü uygulaması Mac, Linux ve Windows sistemlerine yüklenebilen bağımsız bir uygulamadır. Bu uygulama gerçekten Kubernetes kümenizin tam kontrolünü elinize almanıza yardımcı olabilir.
Aşağıdaki özellikleri ve avantajları sunar:
- Karmaşıklığı ortadan kaldırmak: Kubernetes kümelerini yönetirken ortaya çıkan karmaşıklığın ortadan kaldırılmasına yardımcı olur. Burada kubectl komutlarını ezberlemenize gerek kalmadan kümenizi yönetebilirsiniz.
- Gerçek Zamanlı Gözlemlenebilirlik: Bu araç, canlı istatistikler, etkinlikler ve günlük akışları almanıza yardımcı olabilir.
- Masaüstünüzde Çalıştırın: Bağımsız uygulama, 1 dakikalık kurulumla MacOS, Windows ve Linux’unuzda çalıştırılabilir.
- Herhangi bir Kubernetes ile çalışır: Araç, EKS, AKS, GKE, Minikube, Rancher, k0s, k3s, OpenShift vb. gibi herhangi bir Kubernetes dağıtımında kullanılabilir.
- Açık Kaynak Üzerine Oluşturuldu: Lens, canlı bir topluluğa sahip açık kaynaktır ve Kubernetes ile bulutta yerel ekosistem öncüleri tarafından desteklenmektedir.
Lens Desktop’ı kurmak için sisteminiz için gerekli paketi Lens indirme sayfasından indirin. Burada gösterilen adımları da takip edebilirsiniz:
Kurulduktan sonra kümenizi yönetmek için Lens’i kullanabilirsiniz.
2. Meshery
Meshery kendisini genişletilebilir Kubernetes yöneticisi olarak tanımlıyor. Bunun nedeni, bulutta yerel altyapı uygulamalarını destekleyen 220’den fazla yerleşik entegrasyona sahip olmasıdır. Bu araç herhangi bir CNCF projesiyle, mevcut araçlarla ve Kubernetes kümeleriyle sorunsuz bir şekilde entegre olabilir. Kullanıcıların izleme, CI/CD ve güvenliklerini geliştirmelerine olanak tanır. Bulut tabanlı yaklaşımı, kullanıcıların bunu minimum çabayla mevcut iş akışlarına kolayca dahil etmelerine olanak tanır.
Bu araçla ilgili harika özellikler şunlardır:
- Kubernetes için Bulutta Yerel Kalıplara Erişin: Tasarım yapılandırıcıyı kullanarak tüm bulut yerel altyapısına erişmenizi, tasarlamanızı ve yönetmenizi sağlar.
- En iyi yapılandırma uygulamalarıyla çalışın: Kullanıcılar, Meshery’nin yapılandırma doğrulayıcısını kullanarak yapılandırmaları dağıtım ve operasyonel en iyi uygulamalarla karşılaştırarak analiz edebilir.
- WebAssembly filtreleriyle veri düzlemi zekasını yönetin: Kullanıcılar, Envoy tabanlı hizmet ağlarına kendi WebAssembly filtrelerini yükleyebilirler.
- Uygulamalar İçin Bağlama Duyarlı Politikalar: Koddan Kubernetes’e kadar yerleşik ilişkilerden yararlanarak yapılandırmanın en iyi uygulamalarını güçlendirin.
- Altyapı Yönetimi sürecini basitleştirin: Meshery, GitOps ve diğer uzantıları kullanarak Platform Mühendisliğinizi kolaylaştırmak için burada. Kullanıcılar, MeshMap’i GitHub depolarına bağlayarak dağıtımları önizleyebilir, çekme isteğinden çekme isteğine değişiklikleri görüntüleyebilir ve PR’leri dahilinde altyapı anlık görüntüleri alabilir.
- Altyapınızın performansını ve iş yüklerini yönetin: Meshry, bulutta yerel performansın sürümden sürüme kadar izlenmesine olanak tanır. İş yüklerinin geçmiş performansını izlemek, davranış değişikliklerini anlamak vb. için performans profillerini kullanabilirsiniz.
Mesheryctl çeşitli yollarla kurulabilir. Aşağıda bunlardan bazıları yer almaktadır:
- Bash’i Mac/Linux’ta kullanma
##On Kubernetes
curl -L https://meshery.io/install | PLATFORM=kubernetes bash -
##On Docker
curl -L https://meshery.io/install | PLATFORM=docker bash -
- Brew’u Kullanmak:
brew install mesheryctl
- Scoop’u kullanma:
scoop bucket add mesheryctl https://github.com/layer5io/scoop-bucket.git
scoop install mesheryctl
Ayrıca doğrudan Github sürüm sayfasından indirip yükleyebilirsiniz.
Mesheryctl kurulduktan sonra şu komutları kullanarak başlatabilirsiniz:
mesheryctl system context create k8s --platform kubernetes --set
mesheryctl system start
Örnek Çıktı:
....
meshery-meshery-1 | time="2023-10-28T10:06:28Z" level=info msg="Meshery Server listening on: 9081" app=meshery
meshery-meshery-1 | time="2023-10-28T10:06:30Z" level=info msg="extracting Applications from /home/appuser/.meshery/content/applications" app=meshery
meshery-meshery-1 | time="2023-10-28T10:06:30Z" level=info msg="seeding sample Applications" app=meshery
Now login to the web UI and manage the infra on the specified port
3. Portainer
Portainer, portainer.io tarafından dünya çapında konteynerlerin benimsenmesini hızlandırmak için geliştirilen açık kaynaklı bir araçtır. Bu araç, konteynerleri yönetmek için basit ama çok yönlü bir yöntem sağlar. Bunu yaparak, konteynerlerin güvenli bir şekilde benimsenmesini olağanüstü bir hızla basitleştirebiliyor.
Portainer birçok özellik ve avantaj sunar. Onlar içerir:
- En karmaşık uygulamaları bile saniyeler içinde devreye alma yeteneği.
- Bellek ve CPU kullanımını izleyin.
- Birkaç tıklamayla uygulamalar, birimler ve yapılandırmalarla ilgili sorunları giderin ve izleyin.
- Sezgisel Kubernetes GUI, kullanıcıların/ekiplerin öğrenmeyi hızlandırmasına olanak tanır.
- Docker-compose format dosyasını k8s ile uyumlu YAML’ye dönüştürme özelliğine sahiptir.
- Ekibinizin her kümeye kullanıcı erişimini tanımlaması için RBAC kurma yeteneği.
- Yük dengeli veya proxy’li uygulamaları kolayca dağıtın.
- GitOps otomasyonunu kolayca yapılandırın ve yönetin
Artık Kubernetes kümenizi yönetmek için Portainer web kullanıcı arayüzünü kullanabilirsiniz
4. Headlamp
Headlamp, kolay ve genişletilebilir bir Kubernetes kullanıcı arayüzü sağlar. Bu araç temel olarak mevcut diğer web kullanıcı arayüzlerinin/kontrol panellerinin geleneksel işlevselliğine sahip bir Kubernetes web kullanıcı arayüzü olarak hizmet vermek üzere oluşturulmuştur.
Headlamp aşağıdakileri içeren çeşitli özellikler sunar:
- Temiz ve modern kullanıcı arayüzü: Bu, Kubernetes nesnelerini görüntülemek için mükemmeldir. Kontrol paneli, sayfalardaki nesnelerin ve metriklerin bir karışımını sunar ve kümenin durumunu görsel olarak ayrıştırmanın farklı yollarına sahip olmayı takdir ediyorum.
- Küme Görünümü: Kullanıcılar, ek ayarlar yapmadan doğrudan Headlamo kullanıcı arayüzünden metrikleri görüntüleyebilir. Küme görünümü özelliği, temel ölçümleri ve yakın zamanda gerçekleştirilen olayların listesini görüntüler.
- Basit kurulum: Kümeye veya masaüstü uygulaması olarak kolayca kurulabilir. Mac, Linux ve Windows sistemlerinde desteklenir.
- Okuma-yazma/etkileşimli: Kubernetes kümenizdeki nesnelere okuma-yazma arayüzü sunar. Kullanıcılar bir nesneyi tıklatarak nesnenin durumuna genel bir bakış sunan ve küme yönetimini kolaylaştıran sayfaya yönlendirilir.
- Son derece kapsamlı: Satıcıların, projenin çatalını korumak zorunda kalmadan ekstra işlevsellik ile Far oluşturup dağıtmalarını sağlayan bir eklenti sistemi ile birlikte gelir.
Daha sonra Kubernetes kümenizi gösterildiği gibi yönetebilirsiniz:
5. Kubenav
Kubenav, Kubernetes kümenizde doğrudan cebinizde gezinmenizi sağlayacak en iyi araçlardan biridir. Bu, Kubernetes kümenizi yönetmek ve kümedeki tüm kaynaklara genel bakış sağlamak için kullanılabilecek bir mobil ve masaüstü uygulamasıdır.
Kubenav’ın birçok özelliği var. Bunlardan bazıları şunlardır:
- Masaüstü ve Mobil uygulama: %100 kod paylaşma özelliği ile hem mobil hem de masaüstü uygulamada benzer bir deneyim sunar.
- Kaynakları Yönet: Dağıtımlar, StatefulSets, DaemonSets, Pod’lar vb. gibi Kubernetes’teki tüm önemli kaynakları yönetme olanağı sunar.
- Kaynakları Değiştir: Kullanıcılar kaynakları düzenleyebilir ve silebilir, ayrıca gerektiğinde Dağıtımları, StatefulSet’leri ve DaemonSet’leri de ölçeklendirebilirler.
- Durum Bilgileri: Kümedeki iş yüklerinin ve diğer olayların durumuna ilişkin genel bakış elde edin.
- Kaynak kullanımı: Kümedeki bölmelerin ve kapsayıcıların isteklerini, sınırlarını ve kullanımını kontrol edin.
- Terminal: Ayrıca doğrudan telefondan veya masaüstünden konteynere girmenizi sağlayan bir kabuk da sunar
GitHub’dan Kubenav’ı indirin
Kurulduktan sonra Kubenav’ı başlatın ve keyfini çıkarın!
6. Kubeapps
Kubeapps, kullanıcıların bir Kubernetes kümesindeki uygulamaları dağıtmasına, yönetmesine ve yükseltmesine olanak tanıyan web tabanlı bir küme içi araçtır. Bu araç, saniyeler içinde yapılabilen tek seferlik bir kurulum sağlar.
Kubeapps’ı kullanarak şunları yapabilirsiniz:
- Helm, Flux, Carvel vb. içeren paketleri genel ve özel depolardan görüntüleyin ve dağıtın.
- Web tabanlı arayüzü kullanarak dağıtımları özelleştirin ve değiştirin.
- Kümedeki uygulamaları görüntüleyin, güncelleyin ve silin
- Kubernetes Operatörlerine göz atın ve yükleyin
- Kimlik doğrulamayı bağımsız OAuth2/OIDC sağlayıcıyla veya Pinniped kullanarak Kubeapps’e sabitleyin
- Kubernetes’te RBAC kullanarak güvenli yetkilendirme.
Kubeapps kurulumu için aşağıdaki komutları kümenizde çalıştırmanız gerekmektedir. İlk önce Helm’i kurmanız gerekir:
Daha sonra aşağıdaki komutları verin:
helm repo add bitnami https://charts.bitnami.com/bitnami
kubectl create namespace kubeapps
helm install kubeapps --namespace kubeapps bitnami/kubeapps
Daha fazla bilgi için Kubeapps’ı kullanmaya başlama konusundaki adımları izleyin. Ardından kontrol panelini başlatın:
kubectl port-forward -n kubeapps svc/kubeapps 8080:80
Sağlanan bağlantı noktasını kullanarak Kubeapps kullanıcı arayüzüne erişin http://IP_Address:8080
7. Devtron
Devtron, Kubernetes’i yönetmek için kullanılan bulutta yerel bir araçtır. Doğrudan web kullanıcı arayüzünden CI/CD, hata ayıklama, gözlemlenebilirlik, güvenlik ve maliyet gibi mikro hizmet yaşam döngüsündeki ürünlerle çok iyi entegre olur. Kümenizdeki uygulamaları dağıtmak, gözlemlemek, yönetmek ve hata ayıklamak için bunu kullanabilirsiniz.
Bu araç aşağıdaki gibi özellikler sunar:
- Uygulama düzeyinde kaynak gruplaması: Helm grafikleri aracılığıyla dağıtılan Kubernetes nesnelerini gruplandırabilir ve bunları şık bir kullanıcı arayüzünde görüntüleyebilir, bu da hata ayıklamayı ve izlemeyi çok kolaylaştırır. Ayrıca manifest dosyasına doğrudan kullanıcı arayüzünden de erişebilirsiniz.
- Merkezi Erişim Yönetimi: Bu, kullanıcıların kümedeki çeşitli kullanıcılara salt görüntüleme ve düzenleme erişimini kontrol etmesine ve atamasına/özelleştirmesine olanak tanır.
- Birden çok kümede Dağıtın, Yönetin ve Gözlemleyin: Kullanıcılar, hem barındırılan hem de bulut üzerinde altyapıda Helm grafiklerini, uygulamalarını ve birden fazla Kubernetes kümesini dağıtabilir ve yönetebilir.
Devtron’u kurmanın Helm gerektiren iki yolu vardır.
Aşağıdaki yöntemlerden sizin için en uygun olanı seçin:
- CI/CD entegrasyonuna sahip Devtron:
helm repo add devtron https://helm.devtron.ai
helm install devtron devtron/devtron-operator \
--create-namespace --namespace devtroncd \
--set installer.modules={cicd}
- Miğfer Paketi ile Devtron
helm repo add devtron https://helm.devtron.ai
helm install devtron devtron/devtron-operator --create-namespace --namespace devtroncd
Şimdi Devtron kontrol paneline erişin:
kubectl get svc -n devtroncd devtron-service -o jsonpath='{.status.loadBalancer.ingress}'
Kullanıcı adını admin olarak ve komutla elde edilen şifreyi kullanın:
kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ADMIN_PASSWORD}' | base64 -d
##OR (For Versions less than v0.6.0)
kubectl -n devtroncd get secret devtron-secret -o jsonpath='{.data.ACD_PASSWORD}' | base64 -d
Devtron ile kümeyi istediğiniz gibi ilerleyin ve yönetin:
8. Snooker
Daha önce k8dash olarak bilinen Snooker, Cloud Native Computing Foundation’ın bir sanal alan projesidir. Kubernetes kümesini yönetmenin en kolay yolunu sağlar.
Snooker aşağıdaki avantajları sunar:
- Tam küme yönetimi: Kullanıcılar Ad Alanlarını, Düğümleri, Pod’ları, Çoğaltma Kümelerini, Dağıtımları, Depolamayı, RBAC’yi vb. yönetme olanağına sahiptir.
- Küme durumunu bir bakışta hızlı bir şekilde görselleştirin: Araç, kaynakların performansının hızlı bir şekilde izlenmesine yardımcı olan gerçek zamanlı grafikler sağlar.
- %100 duyarlı telefonunuzda veya tabletinizde çalışabilen bir kullanıcı arayüzü ile.
- Basit OpenID entegrasyonu: Özel bir proxy’ye gerek yoktur.
- Kolay CRUD ve ölçeklendirme: Kullanıcıların her alanın ne yaptığını anlamalarına yardımcı olmak için satır içi API belgeleriyle.
- Basit kurulum: Snooker’ın bir dakika içinde çalışır hale gelmesi için bir YAML sağlanmıştır.
Snooker’ı yüklemek için çalışan bir Kubernetes kümesine ve OpenID Connect yapılandırmasına (isteğe bağlı) ihtiyacınız vardır. Daha sonra kubernetes-skooner.yaml‘ı çekin. ve Snooker’ı şu komutla dağıtın:
kubectl apply -f https://raw.githubusercontent.com/skooner-k8s/skooner/master/kubernetes-skooner.yaml
Aşağıdaki YAML’yi kullanarak çalışan bir denetleyiciniz varsa SNooker için bir Giriş ayarlayabilirsiniz:
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: skooner
namespace: kube-system
spec:
rules:
- host: skooner.example.com
http:
paths:
- path: /
backend:
service:
name: skooner
port:
number: 80
pathType: ImplementationSpecific
Snooker’da oturum açmak için Hizmet Hesabı Belirteci, OIDC ve NodePort’u kullanabilirsiniz. Oturum açtıktan sonra Kubernetes kümesini yönetebilirsiniz.
9. Kubernetes Operational View
Bu, birden çok Kubernetes kümesi için salt okunur bir sistem panosudur. Bu aracın temel amacı birden fazla Kubernetes kümesi için ortak bir operasyonel resim sağlamaktır.
Bu araçla kullanıcılar şunları yapabilir:
- Düğümleri işleyin ve genel durumlarını belirtin
- Düğüm kapasitesini ve kaynak kullanımını (CPU, bellek) göster
- Bireysel bölmeleri işleme: Bölme durumunu kenar çizgisi rengine göre gösterebilir, mevcut CPU/bellek kullanımını gösterebilir ve sistem bölmelerini görüntüleyebilirler.
- Düğümler ve bölmeler için araç ipucu bilgilerini alın
- Pod oluşturmayı ve sonlandırmayı otomatikleştirin
Ancak bu araç Kubernetes Dashboard’un yerine geçmez. Kubernetes kontrol paneli, kullanıcıların uygulamaları yönetmesine olanak tanır. Bu araç bir izleme çözümü ya da operasyon yönetimi aracı değildir. Kümeyle etkileşime izin vermez.
Kubernetes Operasyonel Görünümü kurmanın iki ana yolu vardır. Bunlar:
- Running locally
Kubectl proxy ile yerel olarak kümenize karşı çalıştırabilirsiniz.
kubectl proxy &
docker run -it --net=host hjacobs/kube-ops-view
MacOS’ta Docker kullanıyorsanız komut şöyle olacaktır:
kubectl proxy --accept-hosts '.*' &
docker run -it -p 8080:8080 -e CLUSTERS=http://docker.for.mac.localhost:8001 hjacobs/kube-ops-view
- Kubernetes Operasyonel Görünümünü Yükleyin
Bu yöntem için Kube-ops-view deposunu klonlamanız gerekir
git clone https://codeberg.org/hjacobs/kube-ops-view.git
cd kube-ops-view
Şimdi dağıtım klasöründeki tüm bildirimleri uygulayın
kubectl apply -k deploy # apply all manifests from the folder
Şimdi aşağıdaki port-forward komutunu kullanarak hizmeti gösterin:
kubectl port-forward service/kube-ops-view 8080:80
Şimdi hizmete 8080 numaralı bağlantı noktasından erişin.
Yazının orijinalini buradan okuyabilirsiniz.
Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.