调用 webhook 失败 "vingress.elbv2.k8s.aws"

failed calling webhook "vingress.elbv2.k8s.aws"

我在新的 EKS 集群(版本 v1.21.5-eks-bc4871b)​​上安装了 aws-load-balancer-controller。

我是按照本指南 https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.3/deploy/installation/ 一步一步安装的,但是当我尝试部署入口时 object 我遇到了标题中提到的错误。 我尝试像 github 一样在此处 https://github.com/kubernetes-sigs/aws-load-balancer-controller/issues/2039 提出问题,但没有找到任何答案。

我还能做些什么来检查这个?

我假设您收到如下错误消息,如果不是这样,请post您的错误。

Error from server (InternalError): error when creating "anymanifest.yaml": Internal error occurred: failed calling webhook "vingress.elbv2.k8s.aws": Post "https://aws-load-balancer-webhook-service.kube-system.svc:443/validate-networking-v1beta1-ingress?timeout=10s": context deadline exceeded

通常是由于EKS控制平面无法使用webhook端口与节点通信。

检查 aws-load-balancer-controller pods 的日志以检查它开始侦听的端口

{"level":"info","ts":1643365219.2410042,"logger":"controller-runtime.webhook","msg":"serving webhook server","host":"","port":9443}

为了解决这个问题,在工作节点的安全组中,允许来自 EKS 控制平面

的端口 9443 的通信

load-balancer-controller 广告连播描述了解更多详情 可能会出现 ECR

无法获取图像的情况

如果它可能对其他人有帮助 - 我也遇到了使用 fargate 配置文件和 worker-node 用于 core-dns 的原始问题。我在另一个地方找到的解决方案只是添加

node_security_group_additional_rules = {
ingress_allow_access_from_control_plane = {
  type                          = "ingress"
  protocol                      = "tcp"
  from_port                     = 9443
  to_port                       = 9443
  source_cluster_security_group = true
  description                   = "Allow access from control plane to webhook port of AWS load balancer controller"
}

}