将Pod调度到x86架构的虚拟节点上
更新时间 2025-07-11 17:47:14
最近更新时间: 2025-07-11 17:47:14
本文介绍如何将Pod调度到x86架构的虚拟节点上。
在Kubernetes集群(已有VNode)中,可以通过以下两种方式将Pod调度到VNode上,以ECI来运行。
配置nodeSelector和tolerations
VNode默认配置了Label和Taint,因此可以通过配置nodeSelector和tolerations,将Pod调度到VNode,以ECI来运行。
指定nodeName
通过指定nodeName,可以将Pod调度到指定VNode,以ECI来运行。
方式一:配置nodeSelector和tolerations
VNode默认配置了如下的Label和Taint:
...
labels:
k8s.ctyun.cn/vnode: "true"
...
taints:
- effect: NoSchedule
key: k8s.ctyun.cn/vnode
value: "true"
参照如下yaml文件配置nodeSelector和tolerations,将Pod调度到VNode上:
apiVersion: apps/v1
kind: Deployment
metadata:
name: vnode-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
nodeSelector: #配置特定的nodeSelector
k8s.ctyun.cn/vnode: "true"
tolerations: #配置特定的tolerations
- key: k8s.ctyun.cn/vnode
operator: "Equal"
value: "true"
effect: "NoSchedule"
containers:
- name: nginx
image: nginx:1.25-alpine
ports:
- containerPort: 80
方式二:指定nodeName
获取集群中VNode的名称。
kubectl get nodes
默认情况下,集群VNode名称格式为[VNode ID] + [资源池] ,示例:vnd-u53cymkxxxx-cn-huadong1-jsnj1a-public-ctcloud。
参照如下yaml文件配置nodeName。
apiVersion: apps/v1
kind: Deployment
metadata:
name: vnode-nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25-alpine
ports:
- containerPort: 80
nodeName: vnd-u53cymkxxxx-cn-huadong1-jsnj1a-public-ctcloud #配置VNode名称