Giriş Denetleyicisi Nedir?
Giriş denetleyicisi, kullanıcıların Kubernetes kümeleri içindeki hizmetlere erişimi yönetmesine ve kontrol etmesine olanak tanıyan bir bileşendir. Giriş denetleyicisinin iki temel öğesi vardır:
- Giriş Kaynağı – Belirtilen ana bilgisayar adı ve yollara göre kümedeki hizmetlerin trafiğinin yönlendirilmesine ilişkin kuralları tanımlayan bir Kubernetes API nesnesidir.
- Giriş Denetleyicisi – Giriş kaynağında belirtilen kuralları uygulayan HAProxy, Traefik veya NGINX gibi bir yazılım bileşenidir. Yük dengeleyiciyi, giriş nesnelerinde yapılan değişikliklere göre trafiği yönetecek şekilde yapılandırır.
Kubernetes Ortamında HAProxy'yi Giriş Denetleyicisi Olarak Kullanma
Giriş denetleyicisinin ne olduğunu ve ona neden ihtiyaç duyduğunuzu anladıktan sonraki görev, onu kullanma adımlarını ele almaktır. Bizim durumumuz için, verilen adımları izleyerek HAProxy'yi giriş denetleyicimiz olarak kurduk.
Yok: Kubernetes kümenizin çalışır durumda olduğundan emin olun. Daha sonra aşağıdaki şekilde ilerleyin.
1. Adım: Kubernetes Kümenizi Başlatın
Kubernetes kümesini kurmanın ve başlatmanın farklı yolları vardır. Bu kılavuz için Minikube kullanıyoruz. Özellikle makinenizde yerel olarak Kubernet'leriniz varsa, Kubernetes'i bir sanal makine veya Docker içinde dağıtmanın basit bir yolunu sunan bir araçtır.
Bakın Minikube belgeleri Platformunuz için kullanılacak kurulum komutlarında. Bu durumda stabil bir “x64” Linux mimarisi çalıştırıyoruz ve aşağıdaki komutları çalıştırıyoruz:
$ kıvırmak -BT https: // depolama.googleapis.com / minikube / Salıverme / en sonuncu / minikube-linux-amd64
$ sudo düzenlemek minikube-linux-amd64 / usr / yerel / çöp Kutusu / minikube
İlk komut en son kararlı Minikube ikili dosyasını alır, ikinci komut ise ikili dosyayı kurar ve belirtilen yola taşır.
Minikube'ü kurduktan sonra kümeyi açmak için onu başlatın.
$ minikube başlangıcı
Daha sonra kümeye erişmek için kubectl'in kurulu olması gerekir. Ancak Minikube'de bulunan kubectl sürümünü kullanabilirsiniz. Örneğin çalışan podların detaylarını kontrol etmek için “kubectl” komutunu şu şekilde çalıştırıyorsunuz:
$ minikube kubectl -- bakla al -ABu şekilde kubectl'i kurmanıza gerek kalmaz. (-) komutların Minikube için değil kubectl için olduğunu gösterir.
2. Adım: Ad Alanı Oluşturun
İkinci adım, giriş denetleyicisi için özel bir ad alanı oluşturmayı içerir. Ad alanını “haproxy-controller” olarak adlandırdık.
3. Adım: HAProxy Giriş Denetleyicisini Oluşturun ve Dağıtın
Giriş denetleyicisini nasıl oluşturacağınız, neyi başarmak istediğinize bağlıdır. Örneğin, istenen ana bilgisayar adına bağlı olarak bir HTTP trafiğini yönlendirmek için bir HAProxy giriş denetleyicisi oluşturabilirsiniz. Böyle bir durumda, DNS sunucunuza erişerek ve hedef ana bilgisayar adını kümenizle eşlemek için bir 'A' kaydı oluşturarak başlayın.
Doğru “A” kaydınızı aldıktan sonra aşağıdaki resimde gösterildiği gibi giriş denetleyicisi YAML dosyanızı oluşturun. İlk bölümde örnek olarak “jmalloc/echo-server” Docker konteyner imajını kullanan bir Deployment kaynağı oluşturduk.
YAML dosyasının ikinci bölümünde 4. adımda oluşturduğumuz ingress Controller'da istenen hostname'e göre eşlenen Service kaynağını oluşturduk.
Dosyayı kaydedin ve kubectl kullanarak kümenize dağıtın. Bizim durumumuz için aşağıdaki komutu çalıştırarak Minikube kubectl'e referans veriyoruz. HAProxy giriş denetleyicimiz “linuxhint-jmaildeployment.yaml”dir.
$ minikube kubectl -- uygula -F < dosya adı >
Hizmetin oluşturulduğunu gösteren bir çıktı aldığınızda, aşağıdaki komutu kullanarak hizmetin dağıtıldığını doğrulayabilirsiniz:
$ minikube kubectl -- bakla al --ad alanı haproxy-denetleyici
1. adımda oluşturduğunuz doğru ad alanını kullandığınızdan emin olun. Hizmetin kullanılabilir olduğunu doğrulayan bir çıktı alacaksınız; bu, dağıtımın başarılı olduğu anlamına gelir.
4. Adım: Giriş Kaynağı Oluşturun ve Dağıtın
HAProxy'nin trafiğinizi nasıl yönlendirmesi gerektiğine ilişkin kuralları içeren giriş kaynağı görevi gören başka bir YAML dosyası oluşturun. Hedeflediğiniz doğru alan adını (ana bilgisayar) kullandığınızdan emin olun ve adlandırmayı ve istenen bağlantı noktasını gelen trafiği kabul edecek şekilde ayarlayın.
HAProxy giriş kaynak dosyasını kaydedin ve denetleyiciyle yaptığımız gibi dağıtın.
$ minikube kubectl -- uygula -F < dosya adı >Giriş kaynağımızı “linuxhint-ingresscontroller.yaml” olarak adlandırıyoruz.
Bu kadar! Aşağıdaki komutla, NodePort'a atanan bağlantı noktasını kontrol ederek HAProxy giriş denetleyicinizin çalıştığını doğrulayabilirsiniz.
$ minikube kubectl -- hizmet haproxy-kubernetes girişi alın --ad alanı haproxy-denetleyiciBu durumda port 32448 ile atanmıştır. Oluşturulan servise port üzerinden erişebilir ve durumunu kontrol edebilirsiniz.
Bununla HAProxy'yi Kubernetes ortamında giriş denetleyicisi olarak kullanmayı başardınız.
Çözüm
Giriş denetleyicisi, giriş kaynak dosyanızda tanımlanan kurallara göre kümenize gelen trafiğin nasıl yönetileceğini tanımlamanıza olanak tanır. HAProxy, Kubernetes kümesinde kullanabileceğiniz güvenilir bir giriş denetleyicisidir ve bu yazı, onu kullanmak için hangi adımları izlemeniz gerektiğini ele almaktadır. Deneyin ve HAProxy'yi giriş denetleyiciniz olarak kullanmanın keyfini çıkarın.