香港VPS部署K8s集群节点亲和性配置解析
香港VPS部署K8s集群节点亲和性配置解析
用香港VPS部署Kubernetes(K8s)集群时,节点亲和性配置策略是关键环节,能更精准地控制Pod在节点上的调度。简单来说,节点亲和性就像给Pod和节点设定“偏好关系”,通过节点标签决定Pod的调度方向,类似根据酒店星级、位置等标签选择住宿。

在K8s体系中,节点亲和性主要分硬亲和性与软亲和性两类。
硬亲和性是“必须满足的条件”。如同选酒店时只考虑五星级,其他一概不纳入选项。K8s中设置硬亲和性后,Pod仅会被调度到符合标签条件的节点。若没有节点满足,Pod会持续处于Pending状态等待匹配节点。例如需高性能计算的Pod,可通过硬亲和性限定其仅运行在带“high-performance”标签的香港VPS节点上。
软亲和性则是“优先满足的偏好”。类似选酒店时希望靠近地铁站,若没有符合条件的,其他位置也能接受。K8s中配置软亲和性后,调度器会优先尝试符合标签条件的节点,若无匹配节点,Pod仍会调度至其他节点。
具体到香港VPS部署的K8s集群,如何配置节点亲和性?
第一步是为节点添加标签。使用kubectl命令即可完成,基础语法为:
kubectl label nodes <node-name> <label-key>=<label-value>
例如为名为“hk-vps-node1”的节点添加“region=hongkong”标签,命令为:
kubectl label nodes hk-vps-node1 region=hongkong
第二步是在Pod配置文件中设置亲和性规则。硬亲和性配置示例如下:
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: region
operator: In
values:
- hongkong
containers:
- name: example-container
image: nginx:1.14.2
这里通过`requiredDuringSchedulingIgnoredDuringExecution`字段定义硬亲和性,要求Pod仅调度至带“region=hongkong”标签的节点。
若需配置软亲和性,调整字段为`preferredDuringSchedulingIgnoredDuringExecution`即可,示例:
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
preference:
matchExpressions:
- key: region
operator: In
values:
- hongkong
containers:
- name: example-container
image: nginx:1.14.2
其中`weight`表示优先级权重,数值越高优先级越高。
实际应用中,节点亲和性配置在香港VPS集群中有多重价值。可根据VPS的性能差异(如高IO、大内存)、网络特性(如CN2线路)为节点打标签,通过亲和性策略合理分配Pod,提升集群资源利用率。针对网络敏感型应用,还能将Pod调度至靠近用户的香港VPS节点,降低访问延迟,优化用户体验。
合理运用节点亲和性配置策略,能让香港VPS部署的K8s集群在Pod调度与资源管理上更高效,为业务稳定运行提供有力支撑。