随笔 - 331  文章 - 0  评论 - 5  阅读 - 5050

k8s的名称空间

1. 什么是名称空间?

通过工作中的这段时间,复习一下k8s的名称空间,在 K8s 中,名称空间是用于隔离集群资源的机制。Kubernetes 集群中的一些资源支持名称空间,而一些资源不支持名称空间。那些支持名称空间的资源被称为局部资源,而不支持名称空间的资源则是全局资源

如何判定资源是否支持名称空间?

可以使用以下命令列出所有资源及其是否支持名称空间:

kubectl api-resources

该命令会列出所有资源及其相关信息,其中 NAMESPACED 列显示资源是否支持名称空间(true 为支持,false 为不支持)。

2. 响应式管理名称空间

2.1 创建名称空间

要创建一个新的名称空间,可以使用 kubectl create ns 命令:

kubectl create ns oldboyedu

2.2 查看名称空间

查看所有名称空间:

kubectl get ns

查看指定名称空间的详情:

kubectl get ns oldboyedu
kubectl get ns oldboyedu --show-labels

2.3 修改名称空间

虽然 Kubernetes 不支持直接修改名称空间的名字,但可以通过修改名称空间的标签来更新其信息。例如:

kubectl label namespaces oldboyedu school=oldboyedu
kubectl label ns oldboyedu class=linux92

2.4 在名称空间中使用 Pod

在创建 Pod 时,可以通过 namespace 字段指定名称空间:

apiVersion: v1
kind: Pod
metadata:
  name: xiuxian-v1
  namespace: oldboyedu
spec:
  nodeName: worker232
  containers:
  - image: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1
    name: xiuxian

应用配置后,Pod 会被创建到 oldboyedu 名称空间。

2.5 使用 -A 选项查看所有名称空间的资源

使用 -A 选项可以查看集群中所有名称空间的资源:

kubectl get pods -A

2.6 删除名称空间

删除一个名称空间将会删除该名称空间中的所有资源。删除命令如下:

kubectl delete ns oldboyedu

3. 声明式管理名称空间

3.1 获取资源的 YAML 文件

可以通过 kubectl get ns <namespace> -o yaml 命令导出名称空间的 YAML 配置文件:

kubectl get ns default -o yaml

3.2 根据提供的 YAML 文件创建名称空间

可以使用一个 YAML 文件来声明式地创建名称空间,例如:

apiVersion: v1
kind: Namespace
metadata:
  labels:
    school: oldboyedu
    class: linux92
  name: oldboyedu

应用该配置文件以创建名称空间:

kubectl apply -f 05-ns-oldboyedu.yaml

3.3 使用名称空间配置 Wordpress

在为 WordPress 配置资源时,可以通过指定 namespace 字段来将资源创建到指定名称空间中。例如,在 oldboyedu 名称空间中创建 MySQL 和 WordPress 的资源。

  1. MySQL 配置
apiVersion: v1
kind: ReplicationController
metadata:
  name: rc-mysql
  namespace: oldboyedu
spec:
  replicas: 1
  selector:
    apps: mysql80
  template:
    metadata:
      labels:
        apps: mysql80
    spec:
      containers:
      - image: harbor.oldboyedu.com/oldboyedu-db/mysql:8.3.0-oracle
        name: db
  1. WordPress 配置
apiVersion: v1
kind: ReplicationController
metadata:
  name: rc-wordpress
  namespace: oldboyedu
spec:
  replicas: 3
  selector:
    apps: wp
  template:
    metadata:
      labels:
        apps: wp
    spec:
      containers:
      - image: harbor.oldboyedu.com/oldboyedu-web/wordpress
        name: wp

通过将 namespace 字段设置为 oldboyedu,所有资源都会被创建在该名称空间中。


posted on   Leo-Yide  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示