Kubernetes Ortamında HAProxy'yi Giriş Denetleyicisi Olarak Kullanma

Kubernetes Ortaminda Haproxy Yi Giris Denetleyicisi Olarak Kullanma



Kubernetes, konteynerli uygulama dağıtımını, ölçeklendirmesini ve yönetimini otomatikleştirmek isteyen herkes için ideal seçenektir. Kubernetes ortamında, herhangi bir Kubernetes küme hizmetine harici erişimi yönetmek için bir giriş denetleyicisi gereklidir. Giriş denetleyicisi, yönlendirmeyi tanımlamanıza ve hizmete gelen trafiği nasıl kontrol etmek istediğinizi belirlemenize olanak tanıyan harici trafik için giriş alanı görevi görür. Farklı giriş kontrolleri kullanabilirsiniz ancak bu durumda HAProxy'ye odaklanacağız ve onu giriş kaynağımızda tanımladığımız kuralları uygulamak için kullanacağız.

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:

  1. 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.
  2. 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 -A

Bu ş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.

$ minikube kubectl ad alanı haproxy denetleyicisi oluştur

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-denetleyici

Bu 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.