当前位置: 首页 > 知识库问答 >
问题:

如何在Kubernetes中创建新名称空间

麻华辉
2023-03-14

我在一个多租户节点应用程序中工作,我知道要在Kubernetes中创建一个新的命名空间,可以运行一个kubectl命令,如下所示:kubectl create namespace

共有1个答案

壤驷阳冰
2023-03-14

它可以像从应用程序中的shell调用一样简单:

kubectl create namespace <your-namespace-name>

本质上,kubectl与Kube-APIServer对话。

也可以直接调用kube-apiserver。下面是一个例子来列出这些豆荚:

$ curl -k -H 'Authorization: Bearer <token>' \
              https://$KUBERNETES_SERVICE_HOST:6443/api/<api-version>/namespaces/default/pods
$ curl -k -H -X POST -H 'Content-Type: application/json' \
                     -H 'Authorization: Bearer <token>' \
                     https://$KUBERNETES_SERVICE_HOST:6443/api/v1/namespaces/ -d '
{
    "apiVersion": "v1",
    "kind": "Namespace",
    "metadata": {
        "name": "mynewnamespace"
    }
}'
$ kubectl create serviceaccount namespace-creator
$ kubectl describe sa namespace-creator
Name:                namespace-creator
Namespace:           default
Labels:              <none>
Annotations:         <none>
Image pull secrets:  <none>
Mountable secrets:   namespace-creator-token-xxxxx
Tokens:              namespace-creator-token-xxxxx
Events:              <none>
$ kubectl describe secret namespace-creator-token-xxxxx
Name:         namespace-creator-token-xxxx
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: namespace-creator
              kubernetes.io/service-account.uid: <redacted>

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  7 bytes
token:      <REDACTED> <== This is the token you need for Authorization: Bearer
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: namespace-creator
rules:
- apiGroups: ["*"]
  resources: ["namespaces"]
  verbs: ["create"]
$ kubectl create clusterrolebinding namespace-creator-binding --clusterrole=namespace-creator --serviceaccount=namespace-creator

在编写代码时,您可以使用任何语言的任何HTTP客户端库来调用相同的endpoint。

还有一些库,如客户机-Go库,负责连接到Kube-APIServer的管道。

 类似资料:
  • 问题内容: 在Python中,命名空间包可让您在多个项目中传播Python代码。当您要将相关的库作为单独的下载发布时,这很有用。例如,目录和中, 最终用户可以和。 定义名称空间包的最佳方法是什么,以便多个Python产品可以在该名称空间中定义模块? 问题答案: TL; DR: 在Python 3.3上,您无需执行任何操作,只需将任何内容都不放在名称空间包目录中即可使用。在3.3之前的版本中,请选择

  • 问题内容: 为了交互式测试我的python脚本,我想创建一个对象,类似于所返回的对象。显而易见的方式 可能会导致傻子错误导致Python repl退出(如上所述)。 那么, 用给定的属性集创建Python名称空间的最简单方法是什么? 例如,我可以即时创建一个(),但不能将其用作: 问题答案: 您可以创建一个简单的类: 在属性方面,它的工作方式与类完全相同: 或者,只需 导入类 ;可从模块中获得:

  • 我在访问另一个命名空间中存在的服务时遇到问题。 我有两个名称空间(在同一个集群中)airflow-dev和dask-dev。 在dask-dev名称空间中,我部署了dask集群(dask调度器和工作器)。此外,还为dask-scheduler pod创建了一个服务(集群IP)。我可以使用“kubectl port-forward”命令从chrome访问dask-scheduler pod。 然而,

  • 问题内容: 如何在JavaScript中创建名称空间,以使我的对象和函数不会被其他同名对象和函数覆盖?我使用了以下内容: 有没有更优雅或更简洁的方法? 问题答案: 我喜欢这个:

  • 我正在开发一个java应用程序来创建elasticSearch索引。索引目前每周在一台开发机器上构建,集群在其他(测试和prod)机器上的现有集群上手动复制。新的方案仍然包括每周从头开始重建指数。 我正在使用5.6.3和Low-High level rest客户端进行更新。经过一些初步的调查(并得到相当多的帮助),我的目标是去一个2(或3)阶段的开发使用别名。 首先,我将在dev上为现有索引(es

  • 部署了带有API服务器标志的Kubernetes,以支持“RBAC,Alwaysallow”授权模式,设置RBAC超级用户,并通过.启用RBAC API 创建了名称空间、角色和角色绑定,目的是(a)服务帐户和系统组件仍然可以有效地具有“alwaysallow”访问,以及(b)组中的任何实体都可以使用该YAML文件访问名称空间中的任何内容。注意:此链接的内容已经更改,请参见我在问题底部工作时获得的Y