如何在现有Azure Kubernetes集群中创建namespace
AKS集群创建Namespace操作指南
前置校验
- 本地已安装kubectl,且kubectl版本与AKS集群版本偏差不超过1个小版本,防止出现API不兼容报错
- 已安装Azure CLI并完成账号登录,执行以下命令拉取目标AKS集群的访问凭证,将集群上下文写入本地kubeconfig:
az aks get-credentials --resource-group <AKS所在资源组名称> --name <AKS集群名称> - 执行
kubectl get nodes验证集群连接状态,正常返回节点列表即可继续操作。
具体创建方式
方式1:命令行快速创建(适合临时测试场景)
直接执行create命令即可快速创建:kubectl create namespace <自定义namespace名称>
示例:创建名为dev-test的开发测试命名空间kubectl create namespace dev-test
创建完成后执行kubectl get namespaces,如果返回列表中存在对应命名空间、状态为Active即为创建成功。
方式2:YAML声明式创建(适合生产环境,可纳入版本管理)
- 编写命名空间配置文件,比如命名为
ns-prod.yaml,基础配置参考:
apiVersion: v1 kind: Namespace metadata: name: production labels: env: prod owner: ops-team
labels字段可根据实际业务需求自定义,比如标记环境属性、所属团队、成本中心,后续配置资源配额、网络策略、权限规则时可直接通过标签筛选,不用逐个绑定资源。
- 执行apply命令提交配置创建:
kubectl apply -f ns-prod.yaml - 可执行
kubectl describe namespace production查看命名空间的详细配置、事件,确认创建结果符合预期。
注意事项
- 命名必须符合K8s规范:仅支持小写字母、数字、短横线
-,禁止使用大写字母、下划线、点、斜杠等特殊字符,名称首尾不能为短横线,总长度不超过63个字符 - 禁止修改、删除集群内置命名空间:包括
default、kube-system、kube-public、kube-node-lease,这类命名空间存放集群核心组件、系统资源,误删会直接导致集群功能故障 - 生产环境创建命名空间时建议同步配置配套规则:
- 绑定
ResourceQuota设置该命名空间的CPU、内存、Pod数、存储卷等资源上限,避免单业务资源抢占影响整个集群稳定性 - 配置
NetworkPolicy设置命名空间级别的网络访问规则,默认拒绝跨命名空间的非授权访问 - 配置RBAC角色绑定,给该命名空间的使用方分配最小必要权限,禁止默认发放集群管理员权限
- 绑定
- 如果AKS开启了Azure Policy策略管控,创建前需确认命名空间配置符合已生效的策略要求(比如强制打指定标签、必须配置资源配额等),不符合要求的请求会被策略直接拦截
- 删除命名空间会同步清空该命名空间下所有关联资源(Deployment、Pod、Service、存储卷等),执行删除操作前务必确认没有运行中的业务,临时测试用的命名空间用完及时清理避免资源浪费
- 如果AKS开启了Azure AD身份集成,创建完命名空间后需要给需要访问该空间的用户、服务账号绑定对应角色,否则即使能连接集群也没有操作该命名空间下资源的权限
内容的提问来源于stack exchange,提问作者Johnny
相关产品推荐
相关产品推荐

