Kubernetes EndpointSlices oluşturun

Kubernetes Endpointslices Olusturun



Uç nokta dilimi, Kubernetes kümesine bağlı ağın uç noktasını izlemenize olanak tanır. Sizler için hazırladığımız bu yazı ile Kubernetes ortamındaki EndpointSlices hakkında daha fazla bilgi edinebilirsiniz. Bu eğitimde, Kubernetes kümesinde EndpointSlice'ın ne olduğunu ve Kubernetes'te nasıl EndpointSlice oluşturabileceğinizi öğrenmenize yardımcı olacağız. Kubernetes kümesinde uç nokta oluşturmamızı sağlayan bazı kubectl komutlarını göstereceğiz.

Kubernetes'te EndpointSlice Nedir?

Kubernetes'teki EndpointSlice, bir ağ uç nokta izleyicisidir. Bir Kubernetes kümesindeki ağ uç noktalarını izlemeyi mümkün kılar. Basit bir ifadeyle, kendisine atanan her bölmeden IP adreslerini alan bir nesnedir. Kubernetes hizmeti, iletişim için bölmenin dahili IP adreslerinin kaydını almak üzere bu nesneye başvurur. Ayrıca, bu uç noktalar, bölmeler tarafından kendilerini bir hizmete maruz bırakmak için kullanılır.

Kubernetes alanında, bu uç noktalar, Kubernetes hizmetinin kümedeki bölmelere trafik dağılımı olduğundan emin olmasına yardımcı olan bir soyutlama katmanı olarak çalışır. Ancak trafik yükü arttığında trafik ölçeklendirme sorunu ortaya çıkar. Bunun nedeni, tek bir uç noktanın her hizmet için tüm ağ uç noktalarını tutmasıdır. Ve bu kaynaklar kabul edilemez bir boyuta ulaştığında, Kubernetes'in performansı olumsuz etkilenir. Başka bir deyişle, ağ uç noktalarının sayısı aşırı derecede arttığında, Kubernetes'in dağıtımı ölçeklendirme yeteneği olumsuz etkilenir. Bunu aşağıdaki grafik görüntü yardımıyla anlayalım:









Burada, bir Endpoint'in kümedeki tüm bölmeleri içerdiğini ve EndpointSlices'ın mevcut Endpoint'e genişletilebilir ve ölçeklenebilir bir alternatif olduğunu görebilirsiniz. Hizmetin tamamı için yalnızca bir Endpoint kaynağı vardır ancak aynı hizmet için birden fazla EndpointSlice vardır. EndpointSlices, ağ kaynaklarınızı bu şekilde ölçeklendirmenize yardımcı olur. Bu ölçeklenebilirlik sorununun ne kadar önemli olduğunu anlamak için bir örnek ele alalım.



Örneğin, Kubernetes hizmetinde, bir şekilde 2 MB Uç Nokta kaynaklarına ulaşan yaklaşık 9.000 bölme bulunur. Tek bir Uç Nokta, hizmetlerin tüm bu Uç Nokta kaynaklarına sahiptir. Uç noktada herhangi bir ağ uç noktası değişirse, uç noktanın tüm kaynağının kümedeki her bir düğüm arasında dağıtılması gerekir. 3000 düğüme sahip bir küme ile uğraşmak söz konusu olduğunda, her düğüme çok sayıda güncelleme gönderilmesi gerektiğinden büyük bir sorun haline gelir. Bu nedenle, yalnızca tek bir uç noktada daha fazla ölçeklendirdiğinizde, ağı ölçeklendirmek daha zor hale gelir.





Ancak EndpointSlices, Kubernetes'in gerektiği kadar ölçekleme yapmasını sağlayarak bu sorunu çözer. Çok büyük bir IP adresi listesi ve bunlarla ilişkili bağlantı noktası numaraları içeren tek bir uç nokta kullanmak yerine, birden çok EndpointSlice kullanın. Bu Uç Nokta Dilimleri, büyük tek bir uç noktanın küçük parçalarıdır. Bu dilimler çok daha küçüktür, ancak büyük uç noktanın neden olduğu yükü hafifletirler. Bir EndpointSlice'ta 100'e kadar bölme saklayabilirsiniz. Bu EndpointSlice'lar, hizmeti belirli bir bölmeye dağıtmanıza yardımcı olur. Herhangi bir ağ uç noktası değişirse, güncellemeleri yalnızca en fazla 100 bölme içeren bir EndpointSlice'a göndermeniz gerekir. Ağdaki diğer tüm bölmelere dokunulmaz.

Şimdi bir Kubernetes EndpointSlice'ı nasıl oluşturabileceğimizi öğrenelim.



Kubernet'lerde EndpointSlices Nasıl Oluşturulur?

Kubernetes EndpointSlices, Kubernetes kümesinde tek bir uç noktaya en iyi alternatiftir. Tüm ağ uç noktalarını kolayca ve verimli bir şekilde izlemenize yardımcı olmakla kalmaz, aynı zamanda tek bir uç noktaya kıyasla daha iyi performans sağlar. Ayrıca ölçeklendirme güvenilirliği sunarken daha düşük ağ trafiğini gösterir. Ayrıca, birden çok EndpointSlice kullanmak, Kubernetes kümesindeki kontrol düzleminde ve düğümlerde daha az emek harcamanıza olanak tanır.

Aşağıdaki örneklerde Kubernetes kümesinde EndpointSlices oluşturmayı öğrenmenizi sağlayan adımlara sahip olabilirsiniz.

1. Adım: Minikube Kümesini Başlatın

İlk ve en önemli adım minikube kümesinin aktif olduğundan emin olmaktır. Etkin olmayan bir minikube kümesi, Kubernetes ortamında herhangi bir çalışma yapmanıza izin vermez, bu nedenle aktif modda olduğundan emin olun. minikube kümesinin çalışır durumda olduğundan emin olmak için aşağıdaki komutu kullanın:

> minikube'u başlat

Minikube kümeniz daha önce başlamadıysa veya uyku modundaysa, bu komut onu uyandırır ve çalışır duruma getirir. Artık aktif bir minikube kümeniz var. Kubernetes ortamınızda EndpointSlice'ı oluşturmaya hazırsınız.

2. Adım: YAML Dosyasıyla Bir Dağıtım Oluşturun

YAML dosyası, dağıtım oluşturmak için en yaygın olarak Kubernet'lerde kullanılır. Önceden var olan dağıtım YAML dosyasını kullanabilir veya aşağıdaki komutla yeni bir tane oluşturabilirsiniz:

> nano endpoint.yaml

Bu, yapılandırma için dağıtım tanımını kaydedebileceğiniz 'endpoint.yaml' adlı yeni bir YAML dosyası oluşturur. Aşağıdaki ekran görüntüsündeki dağıtım tanımına bakın:

3. Adım: YAML Dosyasını Kullanarak EndpointSlice Oluşturun

Artık dağıtım tanımını içeren bir YAML dosyamız olduğuna göre, onu Kubernetes kümemizde EndpointSlices oluşturmak için kullanıyoruz. Kubernetes kümesinde EndpointSlices'a sahip olabilmemiz için yapılandırma dosyasını dağıtmamız gerekiyor. Yapılandırma dosyasını dağıtmak için aşağıdaki komutu kullanıyoruz:

> kubectl create -f endpoint.yaml

Kubernetes ortamında kaynaklar “kubectl create” komutu kullanılarak oluşturulur. Bu nedenle, YAML yapılandırma dosyasından EndpointSlices oluşturmak için “kubectl create” komutunu kullanıyoruz.

Çözüm

EndpointSlices'ı Kubernetes ortamında inceledik. Kubernetes'teki EndpointSlice, Kubernetes kümesindeki tüm ağ uç noktalarını izlemek için kullanılan bir nesnedir. Daha iyi ölçeklenebilirlik ve genişletilebilirlik seçenekleri sağladığı için Kubernetes kümesindeki devasa ve tek bir Uç Noktaya en iyi alternatiftir. Bu EndpointSlice'lar, düğümler ve kontrol düzlemi üzerinde daha az emek harcayarak Kubernetes kümesinin daha iyi performans vermesini sağlar. Bir örnek yardımıyla Kubernetes kümesinde EndpointSlices oluşturmayı öğrendik.