一,NodeSelector定向调度
在 Kubernetes 中,可以使用 NodeSelector 字段来指定 Pod 调度到哪些节点上运行。NodeSelector 是一个键值对的 map,其中键是节点的标签名,值是标签值。具体步骤如下:
- 在节点上添加标签
首先需要在节点上添加相应的标签,例如:
kubectl label nodes node1 app=example-app
- 编写 Pod 的 YAML 文件
在编写 Pod 的 YAML 文件时,需要添加 nodeSelector 字段来指定 Pod 要调度到哪些节点上运行。
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: your_image_name
nodeSelector:
app: example-app # 指定要调度到带有 app=example-app 标签的节点上运行
- 使用 kubectl apply 命令部署 Pod
kubectl apply -f your_pod_yaml_file.yaml
- 查看 Pod 是否部署成功
kubectl get pods example-pod -o wide # -o wide 可以查看分配给该 pod 的节点名称和 IP 地址等信息。
以上就是使用 golang NodeSelector 定向调度的步骤。
二,Node亲和性调度NodeAffinity
在 Kubernetes 中,可以使用 NodeAffinity 字段来指定 Pod 的亲和性调度规则,NodeAffinity 是一个结构体,其中包含两个属性:文章来源:https://www.toymoban.com/news/detail-608764.html
- requiredDuringSchedulingIgnoredDuringExecution: 在调度阶段必须满足的亲和性规则。
- preferredDuringSchedulingIgnoredDuringExecution: 优先级较低的亲和性规则。
下面是一个使用 golang NodeAffinity 进行亲和性调度的例子:文章来源地址https://www.toymoban.com/news/detail-608764.html
import (
"k8s.io/api/core/v1"
)
// 创建 PodSpec 对象
podSpec := &v1.PodSpec{
...
Affinity: &v1.Affinity{
到了这里,关于在CSDN学Golang云原生(Kubernetes Pod调度)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!