【问题标题】:Autoscaler not scaling up leaving nodes in NotReady state and pods in Unknown stateAutoscaler 未扩展,使节点处于 NotReady 状态,Pod 处于未知状态
【发布时间】:2018-10-11 08:53:25
【问题描述】:

我在 GKE 上运行一个带有单节点池的集群。它有 3 个节点,可以从 1 个节点扩展到 99 个节点。集群使用nginx-ingress控制器

在这个集群上,我想部署应用程序app 由命名空间限定,由 3 个deployments 和一个ingress 组成(定义从 Internet 访问应用程序的路径)。每个部署运行一个容器的单个副本。

部署几个应用程序可以正常工作,但部署 许多 应用程序(需要节点池扩展)会破坏一切:

所有 pod 都开始出现警告(包括之前成功部署的那些)

kubectl get pods --namespace bcd
NAME                       READY     STATUS    RESTARTS   AGE
actions-664b7d79f5-7qdkw   1/1       Unknown   1          35m
actions-664b7d79f5-v8s2m   1/1       Running   1          18m
core-85cb74f89b-ns49z      1/1       Unknown   1          35m
core-85cb74f89b-qqzfp      1/1       Running   1          18m
nlu-77899ddbf-8pd7k        1/1       Running   1          27m

所有节点都准备就绪

kubectl get nodes
NAME                                              STATUS     ROLES     AGE       VERSION
gke-clients-projects-default-pool-f9af73d4-gzwr   NotReady   <none>    42m       v1.9.7-gke.6
gke-clients-projects-default-pool-f9af73d4-p5l2   NotReady   <none>    21m       v1.9.7-gke.6
gke-clients-projects-default-pool-f9af73d4-wnxc   NotReady   <none>    37m       v1.9.7-gke.6

删除命名空间以从集群中移除所有资源似乎也失败了,因为在很长一段时间后 pod 仍然处于活动状态但仍处于未知状态。

如何安全地添加更多应用并让集群自动扩展?

【问题讨论】:

    标签: kubernetes google-cloud-platform google-kubernetes-engine


    【解决方案1】:

    原因似乎是不知道每个 pod 所需的资源,调度程序将它们调度到任何可用节点上,可能会耗尽可用资源并使 Docker 守护进程处于不一致状态。

    解决办法是指定资源请求和限制:https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container

    【讨论】:

      猜你喜欢
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      相关资源
      最近更新 更多