首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Kubernetes -系统和用户池

Azure Kubernetes -系统和用户池
EN

Stack Overflow用户
提问于 2022-11-15 11:53:28
回答 2查看 74关注 0票数 0

我在Azure AKS实例上配置了系统和用户池。我遵循这个指南:

微导

在活动之前,我们只有应用程序和系统荚的系统类型池。

我做了以下步骤:

  • 创建系统类型池并设置以下污染"CriticalAddonsOnly = true: NoSchedule“(以避免在系统池上部署应用程序微服务)
  • 旧池从系统到用户的转换
  • 重新启动以下部署: 看守人-系统:
代码语言:javascript
复制
- gatekeeper-audit
- gatekeeper-controller

kube-系统:

代码语言:javascript
复制
- coredns
- coredns-autoscaler
- metrics-server
- azure-policy
- azure-policy-webhook
- konnectivity-agent
- ama-logs-rs

允许在池系统上调度系统荚,因为它们不是在池创建后自动调度的。

现在我注意到,系统吊舱现在也被安排在池系统上,但是我一直在所有其他节点上看到相同的吊舱。即使我残忍地从用户池中删除它们,它们也会立即被重新部署到它们上。行为正确吗?从逻辑上说,如果我有一个池系统,那么所有的吊舱都应该只在那个池上,而用户池上不应该有?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-15 13:04:09

根据微软的官方文档,这些都是用户节点池和系统节点池的一些特性。

系统节点池:

代码语言:javascript
复制
Must be running Linux.
They can have a minimum of 1 node, but it is recommended to have 2 nodes or 3 if it is your only Linux node pool.
They only support AKS cluster running on Virtual Machine Scale Sets.
The nodes need at least 2 vCPUs and 4GB memory.
They need to support at least 30 pods.
Cannot be made up of Spot VM’s.
Can have multiple system node pools.
If only one system node pool, it cannot be deleted.
Can be changed to a user node pool if you have another system node pool.

用户节点池:

代码语言:javascript
复制
User node pools can be either Linux or Windows.
Can scale down to 0 nodes.
Can be deleted with no issues.
Spot VM’s can be used
Can be changed to a system node pool.
Can have as many user node pols as Azure will let you.

根据pod定义,除非由DaemonSet控制,否则系统荚将被绑定到系统节点池上。如果系统pod是由DaemonSet控制的,则不管池类型如何,它都被绑定到集群中的每个节点上。我的集群有4个节点。2个系统,2个用户。因此,这些系统荚存在于kube-系统名称空间中,每个节点都有副本。

代码语言:javascript
复制
kubectl get ds -n kube-system
NAME                       DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
ama-logs                   4         4         4       4            4           <none>          14d
azure-cni-networkmonitor   4         4         4       4            4           <none>          540d
azure-ip-masq-agent        4         4         4       4            4           <none>          540d
kube-proxy                 4         4         4       4            4           <none>          540d

进一步控制应用程序在系统池中不被调度的行为。您可以通过此添加到系统节点池上,所有应用程序荚都将只在用户节点池上进行调度。

代码语言:javascript
复制
az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name systempool \
    --node-count 3 \
    --node-taints CriticalAddonsOnly=true:NoSchedule \
    --mode System
票数 0
EN

Stack Overflow用户

发布于 2022-11-15 13:03:08

AKS在调度系统荚时更喜欢系统节点池,但是当系统节点池没有足够的容量来调度所有的系统结荚()时,不能保证系统节点池不会被放置在用户节点池上。

您是否检查了您的系统池是否具备所有系统吊舱所需的容量?

请参阅您提到的页面的“限制”部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74445188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档