Skip to content

3.3. Namespaces

Overview

The Namespaces page manages every namespace that exists on the MCM control plane. You can check a namespace's multi-cluster propagation state, and create a new namespace or edit or delete an existing one.

What it is for:

  • Managing MCM control plane namespaces
  • Monitoring the multi-cluster propagation state
  • Checking the sync state per cluster for each namespace
  • Managing the automatic scheduling setting

How the Screen Is Laid Out

The Namespaces page shows the namespace list as a table.

The namespaces main screen

The Elements at the Top of the Page

ElementDescription
Filter buttonsFilter by All / Propagated / Not Propagated
Refresh buttonRefreshes the namespace list
Create buttonOpens the dialog for creating a new namespace
Search boxSearches by namespace name

The Filter Options

FilterDescription
AllShows every namespace
PropagatedShows only namespaces propagated to member clusters
Not PropagatedShows only namespaces that are not propagated
The Propagated filter

Table Columns

ColumnDescriptionSortable
NameThe namespace name and its status icon
StatusActive / Terminating
Skip Automatic SchedulingYes / No
Sync StatusSynced clusters / propagated clusters
LabelsThe labels applied to the namespace
AgeThe time since the namespace was created
ActionsThe edit and delete buttons-

The Namespace Status Icons

The Name column carries an icon showing the kind of namespace:

IconMeaningDescription
🔄 (blue)Namespace is propagated to multi-clustersA PropagationPolicy applies and it is propagated to member clusters
⏭️ (yellow)Automatic scheduling skippedThe namespace.karmada.io/skip-auto-propagation label is applied
🔒 (red)System namespace (protected)A system namespace such as karmada-system or kube-system
System badgeSystem namespaceA namespace used for system purposes

Sync Status

For a propagated namespace, the Sync Status column shows how far the sync has got per cluster:

  • 3/3: synced to 3 of 3 clusters
  • 1/3: synced to only 1 of 3 clusters (some failed)
  • Not Propagated: propagated to no cluster

Namespace Detail

Clicking a namespace row opens the detail panel.

Namespace detail

The Detail Panel Header

ElementDescription
Namespace nameThe name of the chosen namespace
Status badgeActive / Terminating
Propagation badgePropagated / Not Propagated
Sync StatusThe N/N sync state

The Action Buttons

ButtonWhat it does
RefreshRefreshes the namespace information
EditOpens the YAML edit mode
DeleteDeletes the namespace

The Tabs

The Overview Tab

Shows the namespace's basic information and its sync state.

Basic information:

ItemDescription
NameThe namespace name
StatusActive / Terminating
SystemWhether it is a system namespace (Yes/No)
Skip Automatic SchedulingWhether automatic propagation is skipped (Yes/No)
Sync TargetWhether a propagation policy applies (Yes/No)
AgeThe time since creation
CreatedWhen the namespace was created

Sync status:

  • Not Synced Clusters: the number of clusters not yet synced
  • Synced Clusters: the number of clusters synced
  • Total Clusters: the number of clusters propagated to

Cluster sync state:

  • Whether it is scheduled
  • Whether it is fully applied
  • The sync figure (N/N)
  • The state of each cluster (Healthy / Unhealthy)

The Labels Tab

Shows the list of Kubernetes labels applied to the namespace.

The Annotations Tab

Shows the list of annotations applied to the namespace.

The Pods Tab

Shows the list of pods in that namespace.

The Events Tab

Shows the Kubernetes events related to the namespace.

Creating a Namespace

Creates a new namespace on the MCM control plane.

The create namespace dialog

Fields

FieldRequiredDescription
Namespace NameA unique namespace name
Skip Automatic Propagation-Yes / No (default: No)

The Rules for a Namespace Name

  • Must be lowercase alphanumeric characters or '-'
  • Must start and end with an alphanumeric character
  • For example: my-app, production, test-namespace

Skip Automatic Scheduling

OptionDescription
YesApplies the namespace.karmada.io/skip-auto-propagation=true label. It is excluded from automatic propagation policies
NoThe default. It may be propagated automatically to member clusters according to the propagation policy

Editing a Namespace

Changes the settings of an existing namespace.

  1. Press the "Edit" button on the row of the namespace to edit
  2. Change the namespace definition in the YAML editor
  3. Press the "Save" button

What Can Be Edited

  • Labels
  • Annotations
  • The skip-automatic-scheduling setting

Note: editing may be restricted on system namespaces.

Deleting a Namespace

⚠️ Caution: deleting a namespace deletes every resource in it as well. Resources propagated to member clusters are handled according to the deletion policy.

When Deletion Is Possible

  • System namespaces (karmada-system, kube-system and so on) cannot be deleted
  • Protected namespaces cannot be deleted

How to Delete

  1. Press the "Delete" button on the row of the namespace to delete
  2. Type the namespace name in the confirmation dialog
  3. Press the "Delete" button

Worked Examples

Scenario 1: Creating a Namespace for Multi-Cluster Use

  1. Press the "Create" button
  2. Enter the namespace name (my-app, for example)
  3. Skip Automatic Propagation: choose "No"
  4. Press the "Confirm" button
  5. Apply a PropagationPolicy to the created namespace to propagate it to member clusters

Scenario 2: Creating a Namespace Excluded from Propagation

  1. Press the "Create" button
  2. Enter the namespace name (local-only, for example)
  3. Skip Automatic Propagation: choose "Yes"
  4. Press the "Confirm" button
  5. That namespace is excluded from automatic propagation policies

Scenario 3: Checking the Propagation State

  1. Press the "Propagated" filter to show only propagated namespaces
  2. Check the N/N figure in the Sync Status column
  3. Click a namespace whose sync is incomplete
  4. Check the sync state per cluster in the detail panel
  5. Identify the cluster with the problem and act

Scenario 4: Adding a Namespace Label

  1. Click the namespace to add the label to
  2. Press the "Edit" button in the detail panel
  3. Add the label to the labels section in the YAML:
    metadata:
    labels:
    environment: production
    team: backend
  4. Press the "Save" button

Skip Automatic Scheduling

By default MCM can propagate a namespace to member clusters automatically through a ClusterPropagationPolicy. A namespace with the namespace.karmada.io/skip-auto-propagation=true label is excluded from that automatic propagation.

System Namespaces

These namespaces are protected as system namespaces:

  • karmada-system: the Karmada system components
  • karmada-cluster: the cluster management namespace
  • karmada-es-*: the per-cluster execution space namespaces
  • kube-system: the Kubernetes system components
  • kube-public: public resources
  • kube-node-lease: node lease management
  • default: the default namespace

Next Steps