假设我们有一个 Web 应用和一个数据库服务,我们希望它们运行在不同的节点上以提高系统的可靠性。
kubectl label nodes node1 role=web
kubectl label nodes node2 role=db
apiVersion: v1
kind: Pod
metadata:
name: web-app
spec:
nodeSelector:
role: web
containers:
- name: web-app
image: web-app-image
数据库服务的 Pod 规约:
apiVersion: v1
kind: Pod
metadata:
name: db-service
spec:
nodeSelector:
role: db
containers:
- name: db-service
image: db-service-image
通过上述配置,Web 应用的 Pod 将只被调度到标签为 role=web
的节点上,而数据库服务的 Pod 将只被调度到标签为 role=db
的节点上。这样,我们就可以确保 Web 应用和数据库服务运行在不同的节点上,从而提高系统的可靠性。