1

我有一个在 AWS 中运行的 Kubernetes 集群。我曾经kops设置和启动集群。

我在节点实例组中定义了最小和最大节点数:

apiVersion: kops/v1alpha2
kind: InstanceGroup
metadata:
  creationTimestamp: 2017-07-03T15:37:59Z
  labels:
    kops.k8s.io/cluster: k8s.tst.test-cluster.com
  name: nodes
spec:
  image: kope.io/k8s-1.6-debian-jessie-amd64-hvm-ebs-2017-05-02
  machineType: t2.large
  maxSize: 7
  minSize: 5
  role: Node
  subnets:
  - eu-central-1b

目前集群有 5 个节点在运行。在集群中进行一些部署后,Pod/容器无法启动,因为没有可用的节点具有足够的资源。

所以我想,当出现资源问题时,k8s 会自动扩展集群并启动更多节点。因为最大节点数是 7。

我错过了任何配置吗?

更新

正如@kichik 提到的,已经安装了自动缩放器插件。然而,它不起作用。kube-dns 也经常因为资源问题而重启。

4

1 回答 1

1

有人在 GitHub 上为此开了一张票,它建议您必须安装autoscaler 插件。检查它是否已经安装:

kubectl get deployments --namespace kube-system | grep autoscaler

如果不是,您可以使用以下脚本安装它。确保AWS_REGIONGROUP_NAME和具有正确MIN_NODESMAX_NODES值。

CLOUD_PROVIDER=aws
IMAGE=gcr.io/google_containers/cluster-autoscaler:v0.5.4
MIN_NODES=5
MAX_NODES=7
AWS_REGION=us-east-1
GROUP_NAME="nodes.k8s.example.com"
SSL_CERT_PATH="/etc/ssl/certs/ca-certificates.crt" # (/etc/ssl/certs for gce)

addon=cluster-autoscaler.yml
wget -O ${addon} https://raw.githubusercontent.com/kubernetes/kops/master/addons/cluster-autoscaler/v1.6.0.yaml

sed -i -e "s@{{CLOUD_PROVIDER}}@${CLOUD_PROVIDER}@g" "${addon}"
sed -i -e "s@{{IMAGE}}@${IMAGE}@g" "${addon}"
sed -i -e "s@{{MIN_NODES}}@${MIN_NODES}@g" "${addon}"
sed -i -e "s@{{MAX_NODES}}@${MAX_NODES}@g" "${addon}"
sed -i -e "s@{{GROUP_NAME}}@${GROUP_NAME}@g" "${addon}"
sed -i -e "s@{{AWS_REGION}}@${AWS_REGION}@g" "${addon}"
sed -i -e "s@{{SSL_CERT_PATH}}@${SSL_CERT_PATH}@g" "${addon}"

kubectl apply -f ${addon}
于 2017-07-14T07:31:36.870 回答