將Pod調度到x86架構的虛擬節點上
更新時間 2025-09-08 16:27:32
最近更新時間: 2025-09-08 16:27:32
分享文章
本文介紹如何將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.daliqc.cn/vnode: "true"
...
taints:
- effect: NoSchedule
key: k8s.daliqc.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.daliqc.cn/vnode: "true"
tolerations: #配置特定的tolerations
- key: k8s.daliqc.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名稱