gpt4 book ai didi

kubernetes - GKE kubernetes kube系统资源nodeAffinity

转载 作者:行者123 更新时间:2023-12-04 08:20:41 26 4
gpt4 key购买 nike

我在GKE k8s 1.9.4上有一个多区域测试设置。每个群集都具有:

  • 一个入口,配置了kubemci
  • 3个具有不同节点标签的节点池:
  • 默认池system(1vCPU/2GB RAM)
  • 前端池frontend(2vCPU/2GB RAM)
  • 后端池backend(1vCPU/600Mb RAM)
  • 通过自定义指标
  • 进行缩放的HPA

    因此,诸如 prometheus-operatorprometheus-servercustom-metrics-api-serverkube-state-metrics之类的内容将附加到带有 system标签的节点上。

    前端和后端Pod分别附加到带有 frontendbackend标签的节点上(单个Pod到单个节点),请参阅 podantiaffinity

    自动缩放后将 backendfrontend Pod缩小后,它们的节点将保持不变,因为 kube-system命名空间(即 heapster)中似乎有Pod。这会导致这样一种情况,即带有 frontend/ backend标签的节点在缩小后仍保持事件状态,即使没有后端或前端 pods 也是如此。

    问题是:如何避免在服务于我的应用程序的节点上创建 kube-system pods (如果这确实很合理并且可行)?

    猜猜,我应该对 backendfrontend节点使用污点和容差,但是如何将其与HPA和集群内节点自动缩放器结合使用?

    最佳答案

    好像taints and tolerations做到了。

    创建一个具有默认节点池的集群(用于监视和kube-system):

    gcloud container --project "my-project-id" clusters create "app-europe" \
    --zone "europe-west1-b" --username="admin" --cluster-version "1.9.4-gke.1" --machine-type "custom-2-4096" \
    --image-type "COS" --disk-size "10" --num-nodes "1" --network "default" --enable-cloud-logging --enable-cloud-monitoring \
    --maintenance-window "01:00" --node-labels=region=europe-west1,role=system

    为您的应用程序创建节点池:
    gcloud container --project "my-project-id" node-pools create "frontend" \
    --cluster "app-europe" --zone "europe-west1-b" --machine-type "custom-2-2048" --image-type "COS" \
    --disk-size "10" --node-labels=region=europe-west1,role=frontend \
    --node-taints app=frontend:NoSchedule \
    --enable-autoscaling --num-nodes "1" --min-nodes="1" --max-nodes="3"

    然后将 nodeAffinitytolerations部分添加到部署 list 中的pods模板 spec中:
      tolerations:
    - key: "app"
    operator: "Equal"
    value: "frontend"
    effect: "NoSchedule"
    affinity:
    nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    nodeSelectorTerms:
    - matchExpressions:
    - key: beta.kubernetes.io/instance-type
    operator: In
    values:
    - custom-2-2048
    - matchExpressions:
    - key: role
    operator: In
    values:
    - frontend

    关于kubernetes - GKE kubernetes kube系统资源nodeAffinity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49493674/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com