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

0

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

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

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

参考链接:

profile picture
專家
已提問 5 個月前檢視次數 36 次
1 個回答
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
專家
已回答 5 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南