(CKS) RuntimeClass atamak

Esenlikler,

RuntimeClasslar basit anlamda, bir sanal makinenin içerisinde çalışan ve kendine ait izole kernel’i olan container’lar olrak düşünebiliriz. Host (Ana) makinenin kerneline erişim sağlayamaz.

Runtime kontrol etmek #

Sisteminizde kullanılan runtimeClass’ı görmek için;

crictl(docker) info | grep -i defaultRuntimeName

#Output
"defaultRuntimeName": "runc",

Kullanabileceğimiz runtime’lar #

Diğer runtime’ları kullanabilmek için öncelikle sisteme yükleyip gerekli konfigürasyonları yapmak gerekiyor. Kullanabileceğiniz bazı runtime’lar;

RuntimeClass objesi oluşturmak #

Kubernetes resmi dökümanlarında verilmiş olan yaml’ı alarak düzenliyoruz.

apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  # RuntimeClass objesi namespace almaz.
  # RuntimeClass'ımızın ismi
  name: myclass 
# CRI ayarında girilen konfigürasyon
handler: myconfiguration 

Crun için;

apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: crun
handler: crun

gVisor için;

apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: gvisor
handler: runsc

Kata-container için;

apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
  name: kata
handler: kata

Pod’a runtimeClass eklemek #

Herhangi bir pod’umuza spec.runtimeClassName özelliğini ekleyerek, izole ediyoruz. gVisor runtime ‘ını ele alırsak;

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  runtimeClassName: gvisor #Eklenen
  containers:
  - name: nginx
    image: nginx

Kontrol etmek #

Podun çalıştığı makineyeye giderek

ps -aux | grep -i runc

#Output
#Nginx podunu göremeyeceğiz.

ps -aux | grep -i runsc

#Output
#Nginx podunu göreceğiz.

[İngilizce]Kubernetes Dökümantasyonu - RuntimeClass

İçeriği paylaş:

× Yazılan içerik ile ilgili her türlü soru, şikayet ve öneriniz için ePosta gönderebilirsiniz.
Etiket: CKS, Kubernetes, Pod, Container, Runtimeclass, Gvisor, Runsc, Runc