Kubernetes Nedir? Kurulumu ve Kullanımı

Paylaş

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.


Bunlarda ilgini çekebilir