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달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠