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.