Burada Kubernetes bilgilerinin kırpılmış halini görüyoruz. Her şeyi değil, çoğunlukla etkileşimli kavramları içerir. Tam bilgi istiyorsanız, Kubernetes belgelerine bakmalısınız.
Mimari
- Cluster: Bir Cluster, konteyner halindeki uygulamaları çalıştırmak için oluşmuş Node grubudur.
- Node: Bir Node, Kubernetes Cluster içinde çalışan sanal veya fiziksel bir makinedir.
- Pod: Pod, Kubernetes Cluster içinde bir sürecin tek bir örneğidir. Docker gibi bir veya daha fazla konteyner içerir.
Kavramlar
- Deployment ReplicaSets'i yönetir.
- ReplicaSets Podları yönetir.
- Podlar Containerleri yönetir.
- Containerler sizin uygulamanızı tutar.
Sorumluluklar
- Ingress: Bir Ingress, Kubernetes Servislerine yönlendirilmeden önce HTTPS/HTTP isteklerini işlemekten sorumludur. Servislerin doğrudan dışarıya maruz kalmamasını sağlar.
- Deployment: Bir Deployment, bir uygulamanın bir veya birden çok kopyasını çalıştırmaktan sorumludur ve başarısız olan veya yanıt vermeyen tüm örnekleri otomatik olarak değiştirir. Deployment, uygulamanın isteklere hizmet etmek için her zaman kullanılabilir olmasını sağlar.
- ReplicaSet: Bir ReplicaSet, herhangi bir zamanda iyi çalışan bir Pod kümesini sürdürmekten sorumludur. ReplicaSets, belirtilen sayıda aynı Pod'un her zaman çalışır durumda olmasını sağlar.
- Service: Bir Service, bir Cluster içinde konuşlandırılmış bir Pod grubunu organize etmekten sorumludur. Servisler, yönettikleri Podların bir ada ve benzersiz Cluster IP'sine sahip olmasını sağlar.
- Pod: Bir Pod, Docker gibi bir veya birden fazla konteynerı çalıştırmaktan sorumludur. Podlar, bir Kubernetes Cluster'da çalışan bir işlemin tek bir örneğini temsil eder.
- Volume: Bir Volume, bir Pod içindeki Podlar tarafından erişilebilen bir klasördür. Docker klasörlerine benzer.
- ConfigMap: Bir ConfigMap, çalışma zamanında Podlardaki konteynerlara yapılandırma dosyalarını, ortam değişkenlerini, bağlantı noktası numaralarını ve son olarak diğer bazı yapılandırma verilerini bağlamadan sorumludur. Hassas olmayan/düz yapılandırma bilgilerini saklarken/paylaşırken ConfigMaplar kullanışlıdır.
- Secret: Bir Secret, şifreler, OAuth belirteçleri, ssh anahtarları vb. gibi hassas bilgilerin depolanmasından ve yönetilmesinden sorumludur.
- Namespace: Bir Namespace, Clusterlerı sanal alt Clusterlar halinde düzenlemekten sorumludur. Birden çok ekip veya proje aynı Kubernetes Cluster'ı paylaştığında Namespace faydalı hale gelir. Bir Cluster'da mantıksal olarak tanımlanmış birçok Namespace olabilir ve hepsi birbiriyle iletişim kurabilir.
Minikube
Minikube'nin sisteminizde kurulu olduğunu varsayıyorum. Başlatmak ve durumunu kontrol etmek için aşağıdaki komutu çalıştırın.
$ minikube start --vm-driver=virtualbox
$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
Tarayıcıdan UI'a ulaşmak isterseniz $ minikube dashboard
komutunu kullanabilirsiniz
Ayrıca Minikube'nin IP adresini öğrenmek için $ kubectl describe node minikube | grep InternalIP
komutunu kullanabilirsiniz. Bu, size Kubernetes Servis'in dışarıdan ulaşıma açılmasına yardımcı olacaktır. http(s)://minikube-ip:service-port
yapısını kurmanız yeterli olacaktır.
Referanslar