H/A MinIO Kurulumu ve MinIO Client Kullanımı
Nedir? MinIO, Amazon S3 protokolü uyumlu bir bulut depolama sunucusudur. Bir nesne deposu olarak MinIO, fotoğraflar, videolarve dosyalar, yedeklemeler ve konteyner imajları gibi verileri depolayabilir. Başlayalım Öncelikle H/A yapı için minimum 2 vm ve bir load balancera ihtiyacımız var. Bunun için bu anlatımda ben nginx kullanacağım. Anlatımda 2 sunucu üzerinden gideceğim, siz dilerseniz arttırabilirsiniz. Her […]
Kubernetes Pod Network Cidr Değiştirmek
Nedir? Pod network cidr kubernetes clusterdaki podlarımızın cluster içi local networkde alacağı IPv4 bloğudur. Bu kubespray ve kubeadm kurulumlarında container network interface’de tanımlanır(CNI). CNI olarak en yaygın şekilde calico kullanılmaktadır. Case Bugün Hepsiburada private networkündeki bir kubernetes clusterda; hedef ip adresine worker node üzerinden gidebilirken, pod içinden gidemediğimiz konulu bir case geldi. Bu case üzerine […]
Golang Slice(kesit) Kullanımı
Slice Kullanımı Örnek üzerinden gidelim. Misal okul müdürüsünüz ve öğrenci numaralarını tuttuğunuz bir array(dizin)’niz var ve bu dizin 500’lük tanımlanmış. 501. öğrenci numarasını kaydetmek istediğinizde hata alıcaksınız. Slice’lar boyutu büyüyüp, küçülebilen dinamik dizinlerdir. Slicelar aynı dizin tanımlar gibi tanımlanırlar. var og_nums []int Yukarıda öğrenci numaralarını tutacağımız boş bir slice tanımladık. Klasik, indeks 0’dan başlar. Örn: […]
Kubernetes Auth 101
Giriş Kubernetes kullanan, kullanmış veya ilgilenmiş herkes kubectl veya dashboard’u duymuştur. Kubernetes master’larına gidiyoruz, istek atıyoruz, podlar oluşturup siliyoruz. Peki prod ortamda herkesin erişmesini istemediğimizde kubernetes bize ne sunuyor? Standart bir kubernetes cluster’ında api, 443 portundan hizmet verir. Tabi 443 portundan https ile konuşur. Siz aksini belirtmemişseniz, genelde kurulum sırasında otomatik olarak imzalanır. Biz de […]
Gitlab-Runner Executors Nedir?
Eğer gitlab-runner ile ilgili öğrenmeye yeni başladıysanız öncelikle https://kubernetesturkiye.com/gitlab-runner-nedir-nasil-kurulur makalemizi okumanızı tavsiye ederim. Normalde makalelerin bir süre sonra güncellenmesi gerekiyor hepimizin bildiği gibi ama bu başka. Gitlab artık executors destek listesini kilitledi. Herhalde bu makale meslek hayatımda güncelleme istemeyen yagane ürün olarak kalıcak 🙂 Nedir? yazımda konuştuğumuz gibi runnerlar sunucumuza register olduktan sonra işlemleri üzerine […]
Gitlab-Runner Nedir, Nasıl Kurulur?
Gitlab’in geliştirdiği her toolu ayrı bir uygulama gibi koşabilme vizyonunun güzel bir örneği bence gitlab-runner. Özünde, gitlab-ci ile oluşturduğumuz jobları çalıştırmak ve çıktılarını gitlabe geri göndermek için kullanılan açık kaynak bir projedir. Gitlab’in CI/CD’sinin pipeline kadar önemli bir bacağıdır. Yapı itibariyle Jenkins’in agentlarına benzer. MIT lisansı altında Go dili ile yazılmıştır. Pek umursamasamda, Windows üzerinde […]
Kubectl Komut Satırı (Shell) Otomatik Tamamlama
Kubernetes cluster’ımızla konuşmak için kullandığımız komut “kubectl”, bash ve zsh için otomatik tamamlama desteği sağlamaktadır. Bu da cluster’ımızı yönetirken bizi gereksiz yazı yazmaktan kurtarıp hızlıca tab tuşunu kullanarak otomatik tamamlamasını sağlıyor. Örneğin “kubectl -n” yazıp tab tuşuna bastığımızda namespace’lerimizi listeliyor veya birkaç benzersiz harf yazdığımızda otomatik tamamlıyor ve bunu tüm parametrelerde kullanabiliyoruz. Hatta “kubectl” yerine […]
RKE ile Kubernetes Cluster Kurulumu (HA)
Öncelikle Kubernetes cluster’ınızı yöneteceğiniz bir (management) sunucu belirleyelim. Bu ayrıca kurduğunuz bir sanal sunucu veya lokal cihazınız da olabilir. Tam hakimiyet açısından Linux bir sunucu üzerinden işlemleri yapmanız daha sağlıklı olacaktır. Windows bir cihaza sahipseniz Microsoft Store üzerinden hızlı ve ücretsiz bir şekilde Ubuntu 18 indirerek adımlara devam edebilirsiniz. Ön Şartlar İlk olarak kurulumu yapacağımız […]
Kubernetes Startup Probes Nedir?
Başka bir yazımda readiness ve liveness probeları arasındaki farkı anlatmıştım. Probe ailesinin artık yeni bir üyesi var. Elimizde bir java uygulaması var diyelim. Bir sürü yere bağlanıyor, db, kafka, redis, cassandra, rabbit, mongo vs ve bazen her seferinde yapmadığı db migration kısımlarını içeriyor. Siz sırf ara sıra çalışan bu migration işlemlerinden ötürü, probeların init delay […]
RKE ile Kubernetes Sürüm Yükseltme
Öncelikle K8S sistemlerinin farklı şekillerde kurulma metotlarının olduğunu hatırlatmakta fayda var. Bu yazımızda RKE (Rancher Kubernetes Engine) ile kurulan K8S sistemlerinde sürüm yükseltmeyi anlatacağım. İlk olarak RKE ile kurulum yaptığınız sunucuya (lokal veya sanal sunucu olabilir) bağlanıp cluster.yml dosyamızın olduğu dizine giriyoruz. (Dizini bilmiyor isek konsol ekranında find / -name cluster.yml komutu ile öğrenebiliriz.) Ön Şartlar […]