Merhaba sevgili okurlar! Bu blog yazısında, Kubernetes Namespace yönetimini ve kaynak sınırlandırmalarını nasıl yapacağınızı adım adım anlatacağım. Kubernetes, uygulamalarınızı izole etmek ve yönetmek için Namespaces kullanır. Kaynak sınırlandırmaları ise, uygulamalarınızın adil ve verimli bir şekilde kaynak tüketimini sağlar. Hadi başlayalım!
Adım 1: Kubernetes Namespace Oluşturma
Kubernetes Namespaces, bir cluster içindeki kaynakları izole etmek için kullanılır. Yeni bir namespace oluşturmak için aşağıdaki komutu kullanabilirsiniz:
kubectl create namespace my-namespace
Namespace’leri listelemek için:
kubectl get namespaces
Adım 2: Namespace İçinde Kaynakları Yönetme
Oluşturduğunuz namespace içinde pod, service gibi kaynakları oluşturmak için YAML dosyalarında metadata.namespace
alanını belirtmelisiniz:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
namespace: my-namespace
spec:
containers:
- name: my-container
image: nginx
Yukarıdaki YAML dosyasını uygulamak için:
kubectl apply -f my-pod.yaml
Belirli bir namespace içindeki kaynakları listelemek için:
kubectl get pods -n my-namespace
Adım 3: Kaynak Kotaları Belirleme
Kubernetes, Namespaces içinde kaynak kullanımını sınırlamak için Resource Quotas (Kaynak Kotaları) sağlar. Aşağıdaki örnek, bir namespace içinde CPU ve bellek kullanımını sınırlayan bir kaynak kotası oluşturur:
apiVersion: v1
kind: ResourceQuota
metadata:
name: my-quota
namespace: my-namespace
spec:
hard:
requests.cpu: "1"
requests.memory: 1Gi
limits.cpu: "2"
limits.memory: 2Gi
Bu YAML dosyasını uygulamak için:
kubectl apply -f my-quota.yaml
Kaynak kotasını kontrol etmek için:
kubectl get resourcequota -n my-namespace
Adım 4: LimitRange ile Pod Sınırlandırmaları
LimitRange, bir namespace içindeki pod ve container’lar için varsayılan kaynak istekleri ve sınırları belirler. Aşağıdaki örnek, bir namespace içindeki pod’lar için varsayılan ve maksimum CPU ve bellek sınırlarını belirler:
apiVersion: v1
kind: LimitRange
metadata:
name: my-limitrange
namespace: my-namespace
spec:
limits:
- default:
cpu: 500m
memory: 512Mi
defaultRequest:
cpu: 200m
memory: 256Mi
max:
cpu: "1"
memory: 1Gi
min:
cpu: 100m
memory: 128Mi
type: Container
Bu YAML dosyasını uygulamak için:
kubectl apply -f my-limitrange.yaml
LimitRange’i kontrol etmek için:
kubectl get limitrange -n my-namespace
Adım 5: Kaynak Sınırlandırmalarının Etkisini İzleme
Namespace içinde kaynak sınırlandırmalarının etkilerini izlemek için, pod ve container’ların kaynak kullanımını gözlemleyin:
kubectl top pod -n my-namespace
Bu komut, pod’ların mevcut CPU ve bellek kullanımını gösterir.
Tebrikler! Kubernetes Namespace yönetimi ve kaynak sınırlandırmalarını öğrenmiş oldunuz. Namespaces, kaynakları izole etmek ve yönetmek için güçlü bir araçtır. Kaynak kotaları ve LimitRange ile uygulamalarınızın adil ve verimli bir şekilde çalışmasını sağlayabilirsiniz. Sorularınız olursa yorumlarda belirtmeyi unutmayın!