Kubernetes - API
Kubernetes API, sistem için bildirim temelli yapılandırma şemasının temelini oluşturur. Kubectlkomut satırı aracı, API nesnesi oluşturmak, güncellemek, silmek ve almak için kullanılabilir. Kubernetes API, Kubernetes'in farklı bileşenleri arasında bir iletişimci görevi görür.
Kubernetes'e API Ekleme
Kubernetes'e yeni bir API eklemek, Kubernetes'e yeni özellikler ekleyerek Kubernetes'in işlevselliğini artıracaktır. Ancak bunun yanı sıra sistemin maliyetini ve bakımını da artıracaktır. Maliyet ve karmaşıklık arasında bir denge oluşturmak için bunun için tanımlanmış birkaç set vardır.
Eklenen API, kullanıcıların% 50'sinden fazlası için faydalı olmalıdır. İşlevselliği Kubernetes'te uygulamanın başka bir yolu yoktur. Kubernetes'in topluluk toplantısında istisnai durumlar tartışılır ve ardından API eklenir.
API Değişiklikleri
Kubernetes'in kabiliyetini artırmak için sisteme sürekli olarak değişiklikler getirilmektedir. Kubernetes ekibi, sistemin mevcut işlevselliğini kaldırmadan veya etkilemeden işlevselliği Kubernetes'e eklemek için yapılır.
Genel süreci göstermek için işte (varsayımsal) bir örnek -
Bir kullanıcı bir Pod nesnesini POST'ları /api/v7beta1/...
JSON, bir v7beta1.Pod yapı
Varsayılan değerler, v7beta1.Pod
v7beta1.Pod bir api.Pod yapı
api.Pod doğrulanır ve herhangi bir hata kullanıcıya iade edilir
api.Pod v6.Pod'a dönüştürülür (çünkü v6 en son kararlı sürümdür)
v6.Pod JSON'a sıralanır ve şu adrese yazılır: etcd
Artık depolanan Pod nesnesine sahip olduğumuza göre, bir kullanıcı bu nesneyi desteklenen herhangi bir API sürümünde ALABİLİR. Örneğin -
Bir kullanıcı Kapsülü şuradan alır: /api/v5/...
JSON, etcd ve unmarshalled içine v6.Pod yapı
Varsayılan değerler, v6.Pod
v6.Pod api.Pod yapısına dönüştürülür
api.Pod bir v5.Pod yapı
v5.Pod JSON'da düzenlenir ve kullanıcıya gönderilir
Bu sürecin anlamı, API değişikliklerinin dikkatli ve geriye dönük uyumlu bir şekilde yapılması gerektiğidir.
API Sürüm Oluşturma
Birden fazla yapıyı desteklemeyi kolaylaştırmak için Kubernetes, her biri farklı API yolunda bulunan birden çok API sürümünü destekler. /api/v1 veya /apsi/extensions/v1beta1
Kubernetes'teki sürüm oluşturma standartları birden çok standartta tanımlanmıştır.
Alfa Seviyesi
Bu sürüm alfa içerir (örn. V1alpha1)
Bu sürüm hatalı olabilir; etkinleştirilen sürümde hatalar olabilir
Hatalara yönelik destek herhangi bir zamanda kesilebilir.
Destek her zaman mevcut olmayabileceğinden, yalnızca kısa vadeli testlerde kullanılması önerilir.
Beta Seviyesi
Sürüm adı beta içerir (örn. V2beta3)
Kod tamamen test edildi ve etkinleştirilen sürümün kararlı olması gerekiyor.
Özelliğin desteği kesilmeyecek; bazı küçük değişiklikler olabilir.
Sonraki sürümlerdeki uyumsuz değişiklik potansiyeli nedeniyle yalnızca iş açısından kritik olmayan kullanımlar için önerilir.
Kararlı Seviye
Sürüm adı vX nerede X bir tamsayıdır.
Özelliklerin kararlı sürümleri, sonraki birçok sürüm için yayınlanan yazılımda görünecektir.