Amazon Elastic Kubernetes Service (EKS) 中带有次要 VPC CIDR 的最大 Pod 计算

0

【以下的问题经过翻译处理】 Amazon EKS 包括在 bootstrap.sh 文件中的脚本,以根据接口数量和每个接口的 IP 数来传递每个实例类型的最大 Pod 数,对于单个CIDR VPC 这个工作得很好。

但是,当使用次要CIDR范围时,每个节点的实例最终会少一个可用的 ENI(弹性网络接口),这可能会影响 Pod 的调度。

是否有人有解决此问题的方法?

参考链接:

profile picture
EXPERTE
gefragt vor 5 Monaten37 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 以下是一个解决方案,可以放置在工作节点用户数据中以动态计算Pod的最大数量。

# 获取实例详细信息,用于引导程序
az=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
instance_type=$(curl -s http://169.254.169.254/latest/meta-data/instance-type)
    
# 设置AWS CLI的区域
aws configure set region `curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .region`
    
# 计算最大Pod数量
# https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html
max_if=$(aws ec2 describe-instance-types  --instance-types $${instance_type} --query  InstanceTypes[*].NetworkInfo.MaximumNetworkInterfaces --output text)
max_ips_per_if=$(aws ec2 describe-instance-types  --instance-types $${instance_type} --query  InstanceTypes[*].NetworkInfo.Ipv4AddressesPerInterface --output text)
max_pods=$((($${max_if} -1) * ($${max_ips_per_if} -1 ) + 2))
    
/etc/eks/bootstrap.sh  --use-max-pods false --kubelet-extra-args "--node-labels=k8s.amazonaws.com/eniConfig=$${az} --max-pods=$${max_pods}" '${cluster_name}

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen