Namespace nedir?
- Docker & Kubernetes kursu
- Orta seviye
- Ders 55/82
- 4 dk
Namespace ile kaynakları gruplandırmayı öğrenirsin.
Namespace nedir?
Namespace, bir cluster'ı mantıksal bölümlere ayırır. Nesne adları yalnızca kendi namespace'i içinde benzersiz olmalıdır: dev ve prod namespace'lerinin ikisinde de web adlı bir deployment olabilir. Namespace'ler takımları, ortamları ya da uygulamaları ayırmak; yetki (RBAC) ve kaynak kotası uygulamak için kullanılır.
dev/ web, db, cache
prod/ web, db, cache
kube-system/ coredns, kube-proxy, ...Ağ yalıtımı yoktur
Namespace'ler varsayılan olarak ağı yalıtmaz: dev'deki bir pod prod'daki servise web.prod adıyla erişebilir. Yalıtım için NetworkPolicy nesneleri yazılır (destekleyen bir ağ eklentisiyle):
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: yalnizca-ayni-ns
namespace: prod
spec:
podSelector: {}
ingress:
- from:
- podSelector: {}Uygulama Kapsamı keşfet
İki komut yaz: namespace'e bağlı kaynak türlerini --namespaced=true ile listele; ardından cluster kapsamlı türleri --namespaced=false ile listele.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl api-resources --namespaced=true
kubectl api-resources --namespaced=falseBeklenen çıktı
NAME SHORTNAMES APIVERSION NAMESPACED KIND configmaps cm v1 true ConfigMap pods po v1 true Pod NAME SHORTNAMES APIVERSION NAMESPACED KIND namespaces ns v1 false Namespace nodes no v1 false Node
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Namespace hangi şeyi ayırmaz?
- Deployment adlarını
- Yetkileri
- Kaynak kotalarını
- Node'ları; node'lar tüm cluster'a aittir Doğru cevap
Açıklama: Node, PersistentVolume, Namespace gibi nesneler cluster kapsamlıdır.
2 Namespace'in kapsamına bak: namespace'e bağlı olmayan kaynakları listele.
kubectl api-resources --namespaced=____
kubectl api-resources --namespaced=false
Açıklama: --namespaced=false cluster kapsamlı türleri listeler.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
Namespace |
Mantıksal bölüm |
Node |
Cluster kapsamlı |
web.prod |
Başka namespace'teki servis |
NetworkPolicy |
Ağ yalıtımı |