Kubernetes Nedir? Kurulumu ve Kullanımı
Container veya konteyner yönetiminde kullanılan kubernetes nedir, kullanımı ve komutları ile kubernetes dashboard gibi eklentilerin kurulum yer alıyor.
Kubernetes Nedir?
Container-konteyner yönetiminde kullanılan bir araçtır.
Container hakkında detaylı bilgi almak için Docker yazıma bakmalısın.
Neden Kubernetes?
Uygulamalar imaj haline getirilip container olarak çalıştırılır.
docker run -p 80:80 nginx
Belirli sayıdan fazla istek veya uygulamadaki yazılımsal, mantıksal hatadan dolayı container çalışmaz hale gelebilir.
Böyle bir durumda container durumunun kontrol edilmesi
docker ps
veya ihtiyaca göre yeni bir container çalıştırılması gerekir.
docker run -p 81:80 nginx
Birden fazla container yönetimi, takibi zaman alacağından bunları tanımlanan kurallara göre yöneten kubernetes aracı kullanılır.
Kubernetes container yönetiminin yanında birden fazla cihazın birlikte çalışmasını sağlayarak yatay ölçeklemeyi de sağlar.
Ölçeklendirme
Uygulamalar işlemleri yapabilmek için CPU, RAM, Disk gibi kaynaklara ihtiyaç duyar. Uygulamanın yaptığı veya yapacağı işleme göre kaynak kullanımı değişiklik gösterir. Tek bir bilgisayar üzerinde yer alan N biriminde CPU, RAM, Disk kaynaklarının N+2, N+4, N+240 olarak arttırılması dikey ölçekleme olarak adlandırılır. Tek çalışan bilgisayarın yanına başka bir bilgisayarın eklenerek birlikte çalışması yatay ölçekleme olarak adlandırılır. Dikey ölçeklendirme donanımsal olurken, yatay ölçeklendirme hem donanımsal hem de yazılımsal olmaktadır.
Bir bilgisayar-sunucu üzerinde çalışan uygulama belirli bir işlem sayısından sonra ek kaynağa ihtiyaç duyar. Bu kaynaklar bilgisayar üzerinde yer alan ve anakart tasarımı ile belirlenen kurallara göre CPU, RAM, Disk eklemesi yoluyla genişletilerek daha fazla işlem yapması sağlanır. Burada yapılan işlem genellikle donanımsaldır ve cihazın üretimine bağlıdır. Ayrıca kullanılan işletim sisteminin kaynakları etkin olarak yönetmesi(32bit-64bit) gerekir. Tek cihaz üzerinde çalışan bir uygulama tüm sistem kaynaklarını kullanarak işlemlerin çalışmasına veya geç çalışmasına sebep verebilir. Bu ve bunun gibi nedenlerden dolayı dikey ölçeklendirmenin bir sınırı vardır.
Birden fazla bilgisayar-cihazın birlikte çalıştığı ve ihtiyaç halinde yeni kaynağın(bilgisayar-sunucu) eklenmesine yatay ölçeklendirme denir. Yatay ölçeklendirme de donanımsal bir kısıtlama olmadan istenildiği kadar cihazın birlikte çalışması sağlanır. Ancak cihazların birlikte çalışırken birbirleriyle bağlantı kurması, haberleşmesi ve eş-zamanlı olarak hareket etmesinin yönetilmesi gibi yazılımsal işlemlere ihtiyaç duyar.
Kubernetes yapısı
Kubernetes master ve worker olmak üzere iki bileşenden oluşur.
Master veya Control Plane cluster yönetiminin yapıldığı yerdir.
Master API Server, etcd, scheduler ve Controller Manager bileşenlerinden oluşur.
API Server
Sıradan bir REST API’dir. Kubernetes tarafından yapılması istenilen işlemler API Server’a iletilir.
etcd
API Server’a iletilen işlemler ve işlemlere ait bilgilerin tutulduğu veritabanıdır.
scheduler
API Server’a iletilen işlemleri bağlı node’lardaki görev kontrolünü yaparak hangi node üzerinde çalışacağını belirler.
Controller Manager
Node, replica, endpoints, service account, token gibi bileşenlere ait durumları kontrol eder.
Worker veya Worker Node container yapılarının çalıştığı yerdir.
Worker kubelet, kube-proxy ve container runtime bileşenlerinden oluşur.
kubelet
Master ile iletişimi sağlayarak container işlemlerini container runtime(docker, containerd, cri-o) bileşenine iletir.
kube-proxy
IP ataması, trafik yönetimi gibi ağ işlemlerini yapar.
container runtime
Container yönetimini yapan Docker, containerd ve CRI-O gibi CRI(Container Runtime Interface) destekleyen araçlardır.
Kubernetes bileşenleri
Aşağıda bazı kubernetes bileşenleri ve karşılıkları yer almaktadır.
- Pod – Container/Uygulamalar yer alır.
- Deployment – Pod oluşturma tanımları yer alır.
- Service – Pod erişim bilgileri yer alır.
- Ingress – Uygulama/Pod trafiğini yönlendirir.
- ConfigMap – Uygulamaya ait ayarlar yer alır.
- Secrets – Uygulamaya ait bilgiler base64 formatında yer alır.
- Volumes – Uygulamaya ait kalıcı veri tanımları yer alır.
- StatefulSet – Verilerin kalıcı olduğu uygulamalarda kullanılır.
NOT: pod ifadesi container ifadesine karşılık gelmektedir.
Kubernetes kurulumu
Windows ve MacOS tabanlı işletim sistemlerinde docker ile birlikte kubernetes gelmektedir.
AWS, Azure ve Google Cloud gibi bulut platformları kubernetes ortamını sağlar.
Linux tabanlı Ubuntu, Centos dağıtımlarına kubernetes kurulumu aşağıdaki adımlar takip edilerek yapılır.
Kurulum için gerekli olan kaynaklar aşağıdaki gibidir.
- En az 2GB RAM alanı
- En az 2 çekirdekli işlemci
- Ağ bağlantısı
Kubernetes ayarlamaları
Ağ-bilgisayar adı düzenlenir.
hostnamectl set-hostname master-node
hostnamectl set-hostname node-1
hostnamectl set-hostname node-2
hostnamectl set-hostname node-N
NOT: Bağlanan her cihaz-bilgisayar-sunucu-node için farklı bir ad belirlenmesi gerekir.
Mac adresleri kontrol edilerek her birinin benzersiz olduğu doğrulanır.
ip a
product_uuid değeri kontrol edilerek benzersiz olduğu doğrulanır.
sudo cat /sys/class/dmi/id/product_uuid
Swap/tampon bellek devre dışı bırakılır.
swapoff -a
Ağ ayarları düzenlenir.
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
Kubernetes yönetiminde kullanılacak port numaraları güvenlik duvarına eklenir.
master için;
firewall-cmd --zone=public --permanent --add-port={6443,2379,2380,10250,10251,10252}/tcp
firewall-cmd --reload
her node için;
firewall-cmd --zone=public --permanent --add-port={10250,30000-32767}/tcp
firewall-cmd --reload
Container çalıştırma aracı yüklenir.
Kubernetes container kurulumu
Kubernetes CRI sayesinde docker, containerd ve CRI-O gibi farklı araçların kullanımını sağlar.
NOT: Çokça kullanıldığından ve olası hatalara karşı daha fazla kaynak-doküman olduğundan docker kullanılacaktır.
Ubuntu dağıtımında kurulum aşağıdaki gibidir.
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
sudo apt-get install docker-ce docker-ce-cli containerd.io
Centos dağıtımında kurulum aşağıdaki gibidir.
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
Dağıtıma göre docker aracının kaynakları doğru kullanımı için cgroup ayarları yapılır.
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
Kurulum sonrası docker başlangıçta aktif hale getirilerek başlatılır.
sudo systemctl enable docker --now
NOT: Docker kurulumu dağıtıma göre farklılık gösterir.
Kubernetes araçlarının kurulumu
Ubuntu dağıtımında kurulum aşağıdaki gibidir.
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
Centos dağıtımında kurulum aşağıdaki gibidir.
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
Kurulum sonrası kubernetes (kubelet) başlangıçta aktif hale getirilerek başlatılır.
sudo systemctl enable --now kubelet
Kurulum sonrası kubernetes servis bilgisine bakılır.
journalctl -u kubelet
#veya
journalctl -xfe
NOT: kubelet servisinin çalışması için cluster kurulumunun yapılması gerekir.
Kubernetes cluster kurulumu
Aşağıdaki komut ile master cihazında gerekli olan uygulamalara ait imajlar indirilir.
kubeadm config images pull
Komut aşağıdaki paketleri container runtime aracılığıyla indirir.
- etcd
- kube-apiserver
- kube-scheduler
- kube-controller-manager
- kube-proxy
Kubernetes master oluşturulur.
kubeadm init --pod-network-cidr 192.168.0.0/16
NOT: Çeşitli parametreler kullanılarak kurulum özelleştirilebilir.
Komut gerekli kontrolleri yaptıktan sonra kubernetes kurulum işlemini yapar ve çeşitli talimatları gösterir.
İlk çalıştırılacak komut kubernetes ayarlarının kopyalanmasıdır.
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
İkinci çalıştırılması gereken komut ise cluster yapısında kullanılacak ağ yapısıdır.
Yine çokca kullanıldığından dolayı Calico ağ yapısı kullanılacaktır.
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
NOT: Ağ yapısı seçimini sağladığı imkanlar, desteklediği node adedi ve kullanım gibi parametrelere göre yapmak faydalı olacaktır.
Cluster node ekleme
Master kurulumun son talimatında yer alan komut diğer node cihazlarında çalıştırılarak kubernetes master cihazına bağlanılır.
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
kubeadm join 172.25.48.3:6443 --token 7coje6.g7amkq554gv6zwkx \
--discovery-token-ca-cert-hash sha256:422c8749f9add664f48bf6d9b25b28c8548fc52bcfeec6e43286cfb9d1afb0bb
Token bilgisine aşağıdaki komut ile erişilir.
kubeadm token list
Node eklemek için kullanılacak komuttaki anahtar-token belirli bir süreliğine geçerli olacaktır.
Aşağıdaki komut ile yeni token üretilebilir.
kubeadm token create --print-join-command
Token üretme ile birlikte oluşan komut kullanılarak node ekleme işlemi yapılır.
Node ekleme işleminin ardından master cihazında aşağıdaki komut çalıştırılarak node durumları incelenebilir.
kubectl get nodes
Kubernetes kullanımı
Yapılması istenilen işlem API Server’a kubectl komut yorumlayıcısı ile bildirilerek gerçekleştirilir.
Komut yorumlayıcısının genel kullanımı aşağıdaki gibidir.
kubectl işlem bileşen bileşenadı --parametre1=değer1 --parametre2=değer2
Kubernetes işlemleri
Bazı işlemler ve açıklamaları aşağıda yer almaktadır.
- create – oluşturma
- expose – dışarı açma
- run – çalıştırma
- set – düzenleme
- explain – bileşen açıklaması
- get – listeleme
- edit – düzenleme
- delete – silme
- describe – kaynak açıklaması
- logs – container-pod kayıtları
- attach – container çıktısını takip eder
- exec – container içerisinde komut çalıştırır
- port-forward – container port erişimi
- apply – dosya ile düzenleme-oluşturma
- scale – ölçeklendirme
Bazı bilgi alma ve cluster işlem komutları aşağıda yer almaktadır.
- version – sürüm bilgisi
- cluster-info – cluster bilgisi
- api-resources – kaynak-bileşen bilgisi
- api-versions – kaynak-bileşen sürüm bilgisi
NOT: Yukarıda yer alan komutlara ek komutlar vardır ve sürüme göre farklılık gösterir.
Imperative ve Declarative
Kubernetes işlemleri imperative ve declarative olarak yapmayı sağlar.
Imperative yöntemde yapılacak olan işlem komut yorumlayıcısına yazılarak yapılır.
kubectl run nginx --image=nginx --port=80
Komut sonucunda varsayılan değerler kullanılarak pod oluşturulur.
kubectl get pod # pod listeleme
kubectl edit pods nginx # pod bilgisi
kubectl delete pods nginx # pod silinir
Declarative yöntemde ise yapılacak olan işlem yaml veya json formatında belirlenir.
nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
name: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
Komut yorumlayıcısı ile tanımlanan işlem yapılır.
kubectl create -f nginx.yaml # oluşturma
kubectl apply -f nginx.yaml # düzenle yoksa oluştur
Detaylı bilgi almak
Bileşenlerle ilgili detaylı bilgi almak için describe kullanılır.
kubectl describe pod/nginx
Ölçeklendirme
Ölçeklendirme işlemleri ReplicaSet olarak adlandırılan bileşen ile yapılır.
Belirli aralıklarla pod ve replika sayısı kontrol edilerek ReplicaSet ile belirlenen kadar pod çalıştırır.
Deployment
Pod ve ReplicaSet bileşenlerinin birleşimidir.
Aşağıda imperativeve yöntem kullanılarak 3 adet replica sahip pod oluşturulmuştur.
kubectl create deployment nginx --image=nginxdemos/hello --replicas=3
edit ile düzenlenir
kubectl edit deploy/nginx
veya
kubectl edit deployment nginx
delete ile silinir.
kubectl delete deployment nginx
Aşağıda declarative yöntem kullanılarak 3 adet replica sahip pod oluşturulmuştur.
nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginxdemos/hello
Aşağıdaki komutlar kullanılarak tanımlanan işlem yapılır
kubectl create -f nginx.yaml
veya
kubectl apply -f nginx.yaml
delete ile silinir.
kubectl delete -f nginx.yaml
Ölçeklendirme işlemini kontrol etmek için tüm bileşenler listelenir
kubectl get all
veya izlenir.
kubectl get pod -w
Listelenen podlardan birisi silinir.
kubectl delete pod nginx-c97cdb45c-tlmnq
Pod sayısı kontrol edildiğinde tekrar belirlenen sayı kadar pod olduğu görülür.
Log
Loglara erişimek için logs kullanılır.
kubectl run nginx --image=nginx --port=80
kubectl logs pod/nginx
Erişim
Oluşturulan podlara doğrudan erişilemeyecektir.
kubectl run nginx --image=nginxdemos/hello --port=80
Podlara erişmek için port-forward kullanılabilir.
kubectl port-forward nginx 80
NOT: port-forward sadece test amaçlı kullanım için uygundur.
Pod içerisine erişmek için exec komutu kullanılır.
kubectl exec -it nginx -- komut
Örnek kullanım aşağıdaki gibidir.
kubectl exec -it nginx -- hostname
Podlara erişim service bileşeni ile yapılır.
Servisler
Podlara erişimde ClusterIP, NodePort veya LoadBalancer servisi kullanılır.
ClusterIP
Podlar arasında erişim-iletişim için kullanılır.
NodePort
Podlara dışarıdan 30000-32767 port aralığı ile erişmek için kullanılır.
kubectl run nginx --image=nginx --port=80
kubectl expose pod nginx --name=nginx-service --type=NodePort
kubectl get svc -o wide
NOT: -o wide paremetresi detaylı bilgi almak için kullanılır.
NodePort servisine belirtilen port ile erişim sağlanır.
http://localhost:31919
kubectl delete svc nginx-service
LoadBalancer
Podlara dışarıdan erişmek için kullanılır.
kubectl run nginx --image=nginx --port=80
kubectl expose pod nginx --port=80 --name=nginx-service --type=LoadBalancer
kubectl get svc -o wide
LoadBalancer servisine belirlenen port ile erişim sağlanır.
http://localhost:80
Serviler YAML dosyası ile tanımlanabilir.
nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 3 # replica sayısı
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginxdemos/hello # container imajı
ports:
- containerPort: 80 # port numarası
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
type: NodePort
ports:
- port: 80
nodePort: 32000
kubectl apply -f nginx.yaml
LoadBalancer servisi aşağıdaki gibi yapılır.
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
type: LoadBalancer
ports:
- port: 80
targetPort: 80
kubectl apply -f nginx.yaml
NOT: Servis hazırlarken uygulama-container port bilgisine bakmak faydalı olacaktır.
Podlara dışarıdan erişimek için ExternalName, Ingress gibi farklı bileşenlerde kullanılabilir.
namespace
Oluşturulan bileşenleri bir ad altında toplamak için namespace kullanılır.
kubectl get namespaces
- kube-system – Kubernetes uygulamaları kullanır
- kube-public – Kubernetes API kullanır
- kube-node-lease – Kubernetes durumu bilgisini verir.
- default – Varsayılan namespaces
kubectl create namespace namespace-adi
Diğer kubernetes bileşenleri
Kubernetes her ne kadar container yönetimi amacıyla geliştirilen bir araç olsa da sağlamış olduğu yatay ölçekleme, birlikte çalışabilirlik gibi özelliklerinden dolayı bu amacında dışında da kullanılmaktadır. Sağlamış olduğu bileşen tanımlama özelliği sayesinde yukarıda yer alan işlemlere ek özel bileşen tanımlama ve kullanmayı sağlar.
Sistemdeki kubernetes bileşenleri api-resources ile listelenir.
kubectl api-resources
Liste incelendiğinde nodes, pods, deployments, services gibi kullanmış olduğumuz bileşenler listelenir. Buradan kullanılan her bileşenin bir kaynak olduğu çıkarımı yapılabilir. Her bileşen/kaynağın kullanımı farklı olduğundan her birinin öğrenilmesi zaman alacaktır. Ayrıca farklı firma ve geliştiriciler tarafından özel amaçlar için geliştirilmiş bileşen/kaynaklarda yer almaktadır.
Bileşenin kullanımı için ilk olarak explain ile bileşen açıklamasına/tanımına bakılır.
kubectl explain cronjob --recursive=true
Bileşen açıklamasındaki alanlara karşılık gelen değerler yazılarak bileşen oluşturulur.
cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hello
image: busybox
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -c
- date; echo Hello from the Kubernetes cluster
restartPolicy: OnFailure
Bileşen kullanımı için oluşturulan değerler incelendiğinde kind bileşeni, apiVersion bileşen sürümünü, diğer alanlar ise bileşen açıklamasındaki alanları ifade ettiği görünecektir.
Hazırlanan bileşen talimatları çalıştırılır.
kubectl create -f cronjob.yaml
kubectl apply -f cronjob.yaml
Bileşen, sadece bileşen adı veya tüm bileşenleri listeleme ile listelenir.
kubectl get cronjob
kubectl get cronjob -o wide # detaylı bilgi
kubectl get all -A
Bileşen delete ile silinir.
kubectl delete -f cronjob.yaml
Bileşen schedule ile belirtilen aralıklarla image ile belirtilen pod oluşturarak command ile belirtilen işlemi yapar.
Kubernetes eklentileri
Eklentiler kubernetes işlevselliğini arttırmak, görsel arayüz sunmak gibi imkanları sağlar.
Kubernetes ağ işlemlerinde Calico, Flannel eklentileri sıklıkla kullanılmaktadır.
Kubernetes bileşenlerini web arayüzü üzerinden takip etmek ve düzenlemek için kubernetes dashboard eklentisi de sıklıkla kullanılır.
Kubernetes dashboard
Kurulum için gerekli olan YAML dosyasına aşağıdaki bağlantıdan ulaşılır.
https://github.com/kubernetes/dashboard
Eklentiye ait YAML dosyası ile kubernetes dashboard kurulumu yapılır.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml
Web arayüzüne erişim için proxy
kubectl proxy
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
veya port-forward kullanılır.
kubectl port-forward service/kubernetes-dashboard 443 -n kubernetes-dashboard
https://localhost/
Web arayüzüne erişim sırasında token veya config file yerine doğrudan erişim için kubernetes-dashboard deployment düzenlenir.
kubectl patch deployment kubernetes-dashboard -n kubernetes-dashboard --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--enable-skip-login"}]'
Diğer yöntem ise YAML dosyasının düzenlenmesidir.
kubectl edit deployment kubernetes-dashboard -n kubernetes-dashboard
enable-skip-login parametresi eklenerek düzenleme tamamlanır.
- args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --enable-skip-login # bu satır eklenir
Tekrar proxy veya port-forward yöntemi kullanılarak erişim sağlanır.
NOT: Tavsiye edilmemekle birlikte servis düzenlemesi yapılarak kubernetes dashboard eklentisine doğrudan erişim sağlanabilir.
Uygulama yayınlamayı hızlandırmada kullanılan Helm, ArgoCD, Istio, Knative gibi bileşenler de yer almaktadır.
Son
Kubernetes sağlamış olduğu container-konteyner yönetiminin yanında birden fazla cihaz-node-sunucu-bilgisayar sisteminin birlikte çalışması için alt yapı sunar.
Alt yapı ve varsayılan olarak gelen bileşenler kullanılarak uygulamaların otomatik ölçeklendiği, istenilen sayıda isteğe cevap verdiği sistemi kurmayı sağlar.
Modüler bileşen sistemi-custom resource definition sayesinde varsayılan olarak gelen bileşenlere ilave bileşenler yazmayı sağlar.
Ancak basit bir uygulama yayınlama işleminde deployment, replica ve service gibi bileşenlerin kullanımı zaman almaktadır.
Bundan dolayı kubernetes alt yapısını kullanılarak daha hızlı uygulama yayınlamayı sağlayan Helm, Istio, Knative gibi kubernetes kullanan araçlar geliştirilmektedir.
Benzer şekide AWS, Azure, Google Cloud gibi bulut platformları kubernetes işlemini kolayca yönetmeyi sağlar.
Kolay ve hızlı bir şekilde kubernetes alt yapısında uygulama yayınlamak-yönetmek için OpenShift, Google Anthos gibi platformların kullanımı faydalı olacaktır.
Hayırlı günler dilerim.