Tuesday, September 13, 2022

Kubernetes Namespaces

 

Namespaces

In Kubernetes, namespaces provides a mechanism for isolating groups of resources within a single cluster. Names of resources need to be unique within a namespace, but not across namespaces. Namespace-based scoping is applicable only for namespaced objects (e.g. Deployments, Services, etc) and not for cluster-wide objects (e.g. StorageClass, Nodes, PersistentVolumes, etc).

kubectl get namespace


Kubernetes starts with four initial namespaces:

  • default The default namespace for objects with no other namespace
  • kube-system The namespace for objects created by the Kubernetes system
  • kube-public This namespace is created automatically and is readable by all users (including those not authenticated). This namespace is mostly reserved for cluster usage, in case that some resources should be visible and readable publicly throughout the whole cluster. The public aspect of this namespace is only a convention, not a requirement.
  • kube-node-lease This namespace holds Lease objects associated with each node. Node leases allow the kubelet to send heartbeats so that the control plane can detect node failure

Setting the namespace for a request

To set the namespace for a current request, use the --namespace flag.

For example:

kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here>
kubectl get pods --namespace=<insert-namespace-name-here>


Setting the namespace preference

You can permanently save the namespace for all subsequent kubectl commands in that context.

kubectl config set-context --current --namespace=<insert-namespace-name-here>
# Validate it
kubectl config view --minify | grep namespace:



root@ip-172-31-35-19:~# kubectl config set-context --current --namespace=dev
Context "kubernetes-admin@kubernetes" modified.
root@ip-172-31-35-19:~# kubectl config view --minify | grep namespace:
    namespace: dev
root@ip-172-31-35-19:~# kubectl get pods
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          2m22s
root@ip-172-31-35-19:~# kubectl delete ns test
namespace "test" deleted
root@ip-172-31-35-19:~#

root@ip-172-31-35-19:~# kubectl get pods --all-namespaces
NAMESPACE     NAME                                       READY   STATUS    RESTARTS      AGE
default       rolling-nginx-55fc56899f-4tgz6             1/1     Running   0             23h
default       rolling-nginx-55fc56899f-btch8             1/1     Running   0             23h
default       rolling-nginx-55fc56899f-w7vzv             1/1     Running   0             23h
default       rolling-nginx-55fc56899f-xxrsj             1/1     Running   0             23h
default       testpod                                    1/1     Running   0             2m55s
kube-system   calico-kube-controllers-58dbc876ff-7n6fr   1/1     Running   2 (21h ago)   3d17h
kube-system   calico-node-55stz                          1/1     Running   0             3d17h
kube-system   calico-node-wfkxf                          1/1     Running   1 (21h ago)   3d17h
kube-system   calico-typha-644446b795-fxwfk              1/1     Running   0             3d17h
kube-system   coredns-565d847f94-5v6nc                   1/1     Running   1 (21h ago)   3d20h
kube-system   coredns-565d847f94-sg2n4                   1/1     Running   1 (21h ago)   3d20h
kube-system   etcd-ip-172-31-35-19                       1/1     Running   5 (21h ago)   3d20h
kube-system   kube-apiserver-ip-172-31-35-19             1/1     Running   5 (21h ago)   3d20h
kube-system   kube-controller-manager-ip-172-31-35-19    1/1     Running   5 (21h ago)   3d20h
kube-system   kube-proxy-8j9jh                           1/1     Running   1             3d20h
kube-system   kube-proxy-k8jss                           1/1     Running   1 (21h ago)   3d20h
kube-system   kube-scheduler-ip-172-31-35-19             1/1     Running   5 (21h ago)   3d20h
root@ip-172-31-35-19:~# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS      AGE
calico-kube-controllers-58dbc876ff-7n6fr   1/1     Running   2 (21h ago)   3d17h
calico-node-55stz                          1/1     Running   0             3d17h
calico-node-wfkxf                          1/1     Running   1 (21h ago)   3d17h
calico-typha-644446b795-fxwfk              1/1     Running   0             3d17h
coredns-565d847f94-5v6nc                   1/1     Running   1 (21h ago)   3d20h
coredns-565d847f94-sg2n4                   1/1     Running   1 (21h ago)   3d20h
etcd-ip-172-31-35-19                       1/1     Running   5 (21h ago)   3d20h
kube-apiserver-ip-172-31-35-19             1/1     Running   5 (21h ago)   3d20h
kube-controller-manager-ip-172-31-35-19    1/1     Running   5 (21h ago)   3d20h
kube-proxy-8j9jh                           1/1     Running   1             3d20h
kube-proxy-k8jss                           1/1     Running   1 (21h ago)   3d20h
kube-scheduler-ip-172-31-35-19             1/1     Running   5 (21h ago)   3d20h










No comments:

Post a Comment

Sample Game App Deployment on EKS cluster

 https://padmakshi.medium.com/setting-up-an-eks-cluster-and-deploying-a-game-application-a-step-by-step-guide-08790e0be117