全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

按项目管理容器实例

最近更新时间:2023-05-29 20:14:36

项目功能用于按项目管理云资源,如您需要通过分项目进行财务核算、权限控制等,可以将容器实例分配到各个项目中来进行管理。

前提条件

  1. 已在Kubernetes集群中部署虚拟节点,部署方式:KCE集群参考Kubernetes集群对接KCI,自建集群参考自建Kubernetes集群中对接KCI

  2. 使用本功能需要将virtual-kubelet的镜像升级至不低于v1.3.2的版本,以确保支持容器实例指定项目ID的Annotation和环境变量。

容器实例按项目出账

对于需要分项目进行财务核算的场景,您可以在创建容器实例时将容器实例分配至指定项目,后续即可通过项目名称筛选容器实例的账单。

步骤1:查看项目ID

1.登录项目管理控制台

2.记录项目ID。

image20230526154446350.png

步骤2:指定项目ID创建容器实例

创建容器实例并指定项目,配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      annotations:
        k8s.ksyun.com/kci-project-id: "106123"  # 指定项目ID
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: rbkci-virtual-kubelet  # 指定nodeName将pod调度到虚拟节点上

步骤3:按项目查看账单

1.登录费用中心控制台,查看账单明细。

2.按项目名称筛选容器实例的账单。

按项目筛选账单.jpg

容器实例按项目进行权限控制

通过项目制可以对容器实例的权限进行控制,子用户只能在所加入的项目下创建和管理容器实例,不能在未加入的项目下创建容器实例。

步骤1:将子用户加入项目

1.登录项目管理控制台

2.点击成员管理

成员管理箭头.png

3.点击添加成员,将子用户加入项目中。

添加成员.jpg

步骤2:配置虚拟节点使用子用户的AK/SK

1.参考获取AKSK文档,获取子账号的AK/SK。

2.执行如下命令,对虚拟节点对应的Deployment进行编辑:

kubectl -n kube-system edit deployment rbkci-virtual-kubelet

3.配置KCI_ACCESS_KEYKCI_SECRET_KEY两个环境变量。

...
  env:
        - name: VKUBELET_POD_IP
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: status.podIP
        - name: KCI_ACCESS_KEY
          value: AKL************  # 子账号的AK
        - name: KCI_SECRET_KEY
          value: OEL******************  # 子账号的SK
        - name: KCI_REGION
          value: cn-beijing-6
        - name: KCI_CLUSTER_ID
          value: ${cluster_id} 
        - name: KCI_SUBNET_ID
          value: ${subnet_id}
        - name: KCI_SECURITY_GROUP_IDS
          value: ${security_group_ids}
...

注:

  1. 如虚拟节点之前配置了TEMP_AKSK_CM的环境变量,请删掉该环境变量,否则虚拟节点仍将使用集群中的临时AK/SK,配置的子用户AK/SK不会生效。
  2. 如之前未配置过KCI_REGION的环境变量,则需配置此环境变量以指定虚拟节点所管理容器实例的地域,容器实例支持的地域请参考支持地域

步骤3:管理已加入项目下的容器实例

1.创建容器实例并指定子用户已加入项目的ID,配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      annotations:
        k8s.ksyun.com/kci-project-id: "106123"  # 指定项目ID
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: rbkci-virtual-kubelet  # 指定nodeName将pod调度到虚拟节点上

2.容器实例创建成功,并可以对容器实例进行修改、删除等操作。

创建容器实例成功.png

步骤4:在未加入项目下创建容器实例失败

1.创建容器实例并指定子用户未加入的项目ID,配置示例如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      annotations:
        k8s.ksyun.com/kci-project-id: "106523"  # 指定子用户未加入的项目ID
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
      nodeName: rbkci-virtual-kubelet  # 指定nodeName将pod调度到虚拟节点上

2.创建容器实例失败,出现下图所示报错提示没有权限。

image20230528204627664.png

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈