我使用 cilium 作为我的 CNI。我已成功运行cilium connectivity test
并且所有测试都通过。我的节点组安排了t3.small
3 个节点,这使我可以在不Ipv4Prefix
启用的情况下运行 11 个 pod。现在我已Ipv4Prefix
通过运行启用
kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
当我跑步时:
kubectl describe daemonset -n kube-system aws-node | grep ENABLE_PREFIX_DELEGATION
我得到:
ENABLE_PREFIX_DELEGATION: true
ENABLE_PREFIX_DELEGATION: true
ENABLE_PREFIX_DELEGATION: true
我还通过运行以下命令安装了 cilium:
helm install cilium cilium/cilium --version 1.15.0 --namespace kube-system --set eni.enabled=true --set ipam.mode=eni --set eni.awsEnablePrefixDelegation=true --set egressMasqueradeInterfaces=eth0
并像这样修补守护进程:
kubectl -n kube-system patch daemonset aws-node --type='strategic' -p='{"spec":{"template":{"spec":{"nodeSelector":{"io.cilium/aws-node-enabled":"true"}}}}}'
我可以看到所有的 pod 都运行良好。
我还可以看到前缀已分配给 eni:
aws ec2 describe-network-interfaces --region eu-west-2 --network-interface-ids eni-0eb1aff34572830d6 | grep Ipv4Prefix
"Ipv4Prefixes": [
"Ipv4Prefix": "10.0.1.112/28"
"Ipv4Prefix": "10.0.1.224/28"
问题
我知道t3.small
实例的最大 Pod 数量为 110,但我仍然无法为每个实例安排超过 11 个 Pod。可能是什么问题?
错误
0/3 nodes are available: 3 Too many pods. preemption: 0/3 nodes are available: 3 No preemption victims found for incoming pod.
启用 IPV4 前缀时不应该出现这种情况