Image for post
Image for post

Kubernetes REST API Yapısı

Temel olarak, Kubernetes farklı rollere sahip bir grup düğümden oluşur. Ana düğümlerdeki kontrol mekanizması API Sunucusu, Controller Manager ve Scheduler’dan meydana gelir. API Sunucusu merkezi yönetim mekanizmasıdır ve dağıtılmış depolama bileşeni vb. ile doğrudan görüşen tek bileşendir. Aşağıdaki temel işlevleri sağlar:

  • Küme dahili olarak çalışan düğümler tarafından ve harici olarak kubectl tarafından kullanılan Kubernetes API’sine hizmet eder
Image for post
Image for post

API Versiyonları

Kubernetes API, bir HTTP REST API’sıdır, ancak aynı zamanda küme iç iletişimi için Protocol Buffers da destekler. Genişletilebilirlik nedenleriyle Kubernetes, /api/v1 veya /apis/extensions/v1beta1 gibi farklı API yollarında birden fazla API sürümünü destekler. Farklı API sürümleri farklı düzeylerde kararlılık ve destek anlamına gelir:

Alfa seviyesi

  • Sürüm adları alfa (ör. v1alpha1) içerir.

Beta seviyesi

  • Sürüm adları beta (ör. v2beta3) içerir.

Stable seviyesi

  • Sürüm adı vX‘dir; burada X bir tamsayıdır.

Aşağıdaki adres kullanılarak yukarıdaki burada bulunan JSON dosyası ile tüm API incelenebilir.
https://entrystore.org/api/

API Grupları

Image for post
Image for post

Kubernetes API’sını genişletmeyi kolaylaştırmak için API grupları kullanılır. API grubu bir REST yolunda ve serileştirilmiş bir nesnenin apiVersion alanında belirtilir.

Şu anda kullanımda olan birkaç API grubu vardır: 1. Genellikle legacy group olarak adlandırılan core group, REST yolu /api/v1‘de bulunur ve apiVersion: v1 kullanır. 2. Adı belirtilen gruplar REST yolunda /apis/$GROUP_NAME/$VERSION adresindedir ve apiVersion: $GROUP_NAME/$VERSION (ör. ApiVersion: batch/v1) kullanın. Desteklenen API gruplarının tam listesi (Kubernetes API Reference)[https://kubernetes.io/docs/reference/] adresinde görülebilir.

API’yı özel kaynaklarla genişletmenin desteklenen iki yolu vardır:

  • CustomResourceDefinition, çok temel CRUD ihtiyaçları olan kullanıcılar içindir.

API Gruplarını Etkinleştirme veya Devre Dışı Bırakma

Belirli kaynaklar ve API grupları varsayılan olarak etkindir. API Server’da --runtime-config ayarını yapıp etkinleştirebilirsiniz. --runtime-config virgülle ayrılmış değerleri kabul eder. Örneğin:

  • batch/v1 devre dışı bırakmak için, --runtime-config=batch/v1=false ayarlanabilir.

Kaynak: http://oguzhaninan.gitlab.io/Kubernetes-API-Server/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store