Bird
Raised Fist0
Kubernetesdevops~5 mins

Creating custom namespaces in Kubernetes - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is a Kubernetes namespace?
A Kubernetes namespace is a way to divide cluster resources between multiple users or teams. It helps organize and separate resources inside the same cluster.
Click to reveal answer
beginner
How do you create a custom namespace using kubectl?
You can create a custom namespace by running:
kubectl create namespace your-namespace-name
Click to reveal answer
intermediate
What is the purpose of a namespace YAML file in Kubernetes?
A namespace YAML file defines the namespace as a resource in a declarative way. It can be applied with kubectl to create the namespace.
Click to reveal answer
beginner
Show a simple YAML example to create a namespace called 'dev-team'.
apiVersion: v1
kind: Namespace
metadata:
name: dev-team
Click to reveal answer
beginner
Why use namespaces in Kubernetes?
Namespaces help separate resources for different projects or teams, avoid name conflicts, and apply policies or limits per namespace.
Click to reveal answer
Which command creates a new namespace named 'test-env'?
Akubectl apply namespace test-env
Bkubectl new namespace test-env
Ckubectl create namespace test-env
Dkubectl set namespace test-env
What is the default namespace in Kubernetes if none is specified?
Akube-system
Bdefault
Cpublic
Dglobal
Which YAML 'kind' is used to define a namespace?
ANamespace
BPod
CService
DDeployment
Namespaces in Kubernetes help to:
ASeparate cluster resources for different teams
BIncrease CPU speed
CStore container images
DManage network traffic
How do you apply a namespace YAML file named 'namespace.yaml'?
Akubectl delete -f namespace.yaml
Bkubectl create namespace.yaml
Ckubectl run namespace.yaml
Dkubectl apply -f namespace.yaml
Explain how to create a custom namespace in Kubernetes using both command line and YAML file.
Think about both direct commands and declarative YAML approach.
You got /3 concepts.
    Describe why namespaces are useful in Kubernetes clusters.
    Consider how namespaces help manage resources in a shared environment.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of creating a custom namespace in Kubernetes?
      easy
      A. To increase the number of nodes in the cluster
      B. To group and isolate resources for better organization
      C. To speed up container image downloads
      D. To automatically update all pods

      Solution

      1. Step 1: Understand Kubernetes namespaces

        Namespaces help organize and isolate resources within the same cluster.
      2. Step 2: Identify the purpose of custom namespaces

        Custom namespaces separate projects, teams, or environments for clarity and management.
      3. Final Answer:

        To group and isolate resources for better organization -> Option B
      4. Quick Check:

        Namespaces = Organize resources [OK]
      Hint: Namespaces isolate resources logically, not physically [OK]
      Common Mistakes:
      • Thinking namespaces add nodes
      • Confusing namespaces with pods
      • Believing namespaces speed up downloads
      2. Which YAML snippet correctly defines a custom namespace named dev-team?
      easy
      A. apiVersion: v1\nkind: Namespace\nmetadata:\n name: dev-team
      B. apiVersion: v1\nkind: Pod\nmetadata:\n name: dev-team
      C. apiVersion: apps/v1\nkind: Namespace\nmetadata:\n name: dev-team
      D. apiVersion: v1\nkind: Service\nmetadata:\n name: dev-team

      Solution

      1. Step 1: Identify correct apiVersion and kind for namespace

        The correct apiVersion is 'v1' and kind is 'Namespace' for creating namespaces.
      2. Step 2: Check metadata name field

        The metadata name must be the desired namespace name, here 'dev-team'.
      3. Final Answer:

        apiVersion: v1\nkind: Namespace\nmetadata:\n name: dev-team -> Option A
      4. Quick Check:

        Namespace YAML = apiVersion v1 + kind Namespace [OK]
      Hint: Namespace kind is always 'Namespace' with apiVersion 'v1' [OK]
      Common Mistakes:
      • Using wrong kind like Pod or Service
      • Using wrong apiVersion like apps/v1
      • Missing metadata name field
      3. What will be the output of the command kubectl get namespaces after applying this YAML?
      apiVersion: v1
      kind: Namespace
      metadata:
        name: test-env
      medium
      A. Only default namespaces are shown, 'test-env' is missing
      B. Shows an error: namespace 'test-env' already exists
      C. No output, command hangs
      D. Lists all namespaces including 'test-env'

      Solution

      1. Step 1: Apply the namespace YAML

        Applying the YAML creates a new namespace named 'test-env' in the cluster.
      2. Step 2: Run 'kubectl get namespaces'

        This command lists all namespaces, including the newly created 'test-env'.
      3. Final Answer:

        Lists all namespaces including 'test-env' -> Option D
      4. Quick Check:

        kubectl get namespaces shows all namespaces [OK]
      Hint: New namespaces appear in 'kubectl get namespaces' output [OK]
      Common Mistakes:
      • Expecting error if namespace exists (it won't if new)
      • Thinking command hangs
      • Assuming only default namespaces show
      4. You tried to create a namespace with this YAML but got an error:
      apiVersion: v1
      kind: Namespace
      metadata:
        name: 123team

      What is the likely cause?
      medium
      A. Namespace names cannot start with a number
      B. apiVersion 'v1' is incorrect for namespaces
      C. Missing 'labels' field in metadata
      D. Namespace kind should be 'Project'

      Solution

      1. Step 1: Check namespace naming rules

        Namespace names must start with a letter and contain only lowercase letters, numbers, and dashes.
      2. Step 2: Identify invalid name

        The name '123team' starts with a number, which is invalid and causes the error.
      3. Final Answer:

        Namespace names cannot start with a number -> Option A
      4. Quick Check:

        Namespace name rules forbid starting with digits [OK]
      Hint: Namespace names must start with a letter, not a number [OK]
      Common Mistakes:
      • Thinking apiVersion v1 is wrong
      • Believing labels are mandatory
      • Using wrong kind like 'Project'
      5. You want to create two namespaces, dev and prod, and ensure pods in dev cannot access services in prod. Which approach is best?
      hard
      A. Create namespaces and use different node pools for each
      B. Create namespaces and label pods with 'access=restricted' only
      C. Create both namespaces and use NetworkPolicies to restrict access
      D. Create namespaces and deploy all pods in the default namespace

      Solution

      1. Step 1: Create separate namespaces

        Namespaces 'dev' and 'prod' isolate resources logically in the cluster.
      2. Step 2: Use NetworkPolicies to control traffic

        NetworkPolicies can restrict pod-to-service communication between namespaces effectively.
      3. Final Answer:

        Create both namespaces and use NetworkPolicies to restrict access -> Option C
      4. Quick Check:

        Namespaces + NetworkPolicies = access control [OK]
      Hint: Use NetworkPolicies with namespaces for access control [OK]
      Common Mistakes:
      • Assuming labels alone restrict network access
      • Deploying all pods in default namespace ignores isolation
      • Using node pools does not isolate network traffic
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard