最近更新时间:2024-04-23 16:44:05
项目功能用于按项目管理云资源,如您需要通过分项目进行财务核算、权限控制等,可以将容器实例分配到各个项目中来进行管理。
已在Kubernetes集群中部署虚拟节点,部署方式:KCE集群参考Kubernetes集群对接KCI,自建集群参考自建Kubernetes集群中对接KCI。
使用本功能需要将virtual-kubelet的镜像升级至不低于v1.3.2
的版本,以确保支持容器实例指定项目ID的Annotation和环境变量。
对于需要分项目进行财务核算的场景,您可以在创建容器实例时将容器实例分配至指定项目,后续即可通过项目名称筛选容器实例的账单。
1.登录项目管理控制台。
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
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: type
operator: In
values:
- virtual-kubelet
tolerations:
- key: rbkci-virtual-kubelet.io/provider
value: kingsoftcloud
effect: NoSchedule
1.登录费用中心控制台,查看账单明细。
2.按项目名称筛选容器实例的账单。
通过项目制可以对容器实例的权限进行控制,子用户只能在所加入的项目下创建和管理容器实例,不能在未加入的项目下创建容器实例。
1.登录项目管理控制台。
2.点击成员管理。
3.点击添加成员,将子用户加入项目中。
1.参考获取AKSK文档,获取子账号的AK/SK。
2.执行如下命令,对虚拟节点对应的Deployment进行编辑:
kubectl -n kube-system edit deployment rbkci-virtual-kubelet
3.配置KCI_ACCESS_KEY
、KCI_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}
...
注:
如虚拟节点之前配置了
TEMP_AKSK_CM
的环境变量,请删掉该环境变量,否则虚拟节点仍将使用集群中的临时AK/SK,配置的子用户AK/SK不会生效。如之前未配置过
KCI_REGION
的环境变量,则需配置此环境变量以指定虚拟节点所管理容器实例的地域,容器实例支持的地域请参考支持地域。
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.容器实例创建成功,并可以对容器实例进行修改、删除等操作。
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.创建容器实例失败,出现下图所示报错提示没有权限。
纯净模式
鼠标选中内容,快速反馈问题