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 nginxBelirli 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 psveya ihtiyaca göre yeni bir container çalıştırılması gerekir.
docker run -p 81:80 nginxBirden 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-nodehostnamectl set-hostname node-1hostnamectl set-hostname node-2hostnamectl set-hostname node-NNOT: 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 aproduct_uuid değeri kontrol edilerek benzersiz olduğu doğrulanır.
sudo cat /sys/class/dmi/id/product_uuidSwap/tampon bellek devre dışı bırakılır.
swapoff -aAğ 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 --systemKubernetes 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 --reloadher node için;
firewall-cmd --zone=public --permanent --add-port={10250,30000-32767}/tcp
firewall-cmd --reloadContainer ç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.ioCentos 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.ioDağı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"
]
}
EOFKurulum sonrası docker başlangıçta aktif hale getirilerek başlatılır.
sudo systemctl enable docker --nowNOT: 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 kubectlCentos 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=kubernetesKurulum sonrası kubernetes (kubelet) başlangıçta aktif hale getirilerek başlatılır.
sudo systemctl enable --now kubeletKurulum sonrası kubernetes servis bilgisine bakılır.
journalctl -u kubelet
#veya
journalctl -xfeNOT: 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 pullKomut 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/16NOT: Ç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.yamlNOT: 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:422c8749f9add664f48bf6d9b25b28c8548fc52bcfeec6e43286cfb9d1afb0bbToken bilgisine aşağıdaki komut ile erişilir.
kubeadm token listNode 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-commandToken ü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 nodesKubernetes 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ğer2Kubernetes 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=80Komut 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 silinirDeclarative 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: 80Komut 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şturDetaylı 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=3edit ile düzenlenir
kubectl edit deploy/nginxveya
kubectl edit deployment nginxdelete ile silinir.
kubectl delete deployment nginxAş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/helloAşağıdaki komutlar kullanılarak tanımlanan işlem yapılır
kubectl create -f nginx.yamlveya
kubectl apply -f nginx.yamldelete ile silinir.
kubectl delete -f nginx.yamlÖlçeklendirme işlemini kontrol etmek için tüm bileşenler listelenir
kubectl get allveya izlenir.
kubectl get pod -wListelenen podlardan birisi silinir.
kubectl delete pod nginx-c97cdb45c-tlmnqPod 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/nginxErişim
Oluşturulan podlara doğrudan erişilemeyecektir.
kubectl run nginx --image=nginxdemos/hello --port=80Podlara erişmek için port-forward kullanılabilir.
kubectl port-forward nginx 80NOT: 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 -- hostnamePodlara 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 wideNOT: -o wide paremetresi detaylı bilgi almak için kullanılır.
NodePort servisine belirtilen port ile erişim sağlanır.
http://localhost:31919kubectl delete svc nginx-serviceLoadBalancer
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 wideLoadBalancer servisine belirlenen port ile erişim sağlanır.
http://localhost:80Serviler 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: 32000kubectl apply -f nginx.yamlLoadBalancer 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: 80kubectl apply -f nginx.yamlNOT: 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-adiDiğ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-resourcesListe 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=trueBileş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: OnFailureBileş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.yamlBileş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 -ABileşen delete ile silinir.
kubectl delete -f cronjob.yamlBileş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/dashboardEklentiye 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.yamlWeb arayüzüne erişim için proxy
kubectl proxyhttp://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-dashboardhttps://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-dashboardenable-skip-login parametresi eklenerek düzenleme tamamlanır.
- args:
- --auto-generate-certificates
- --namespace=kubernetes-dashboard
- --enable-skip-login # bu satır eklenirTekrar 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.