Kubernetes 如何将ALB入口与EKS中的api networking.k8s.io/v1一起使用

Kubernetes 如何将ALB入口与EKS中的api networking.k8s.io/v1一起使用,kubernetes,kubectl,kubernetes-ingress,amazon-elb,amazon-eks,Kubernetes,Kubectl,Kubernetes Ingress,Amazon Elb,Amazon Eks,以前我使用extensions/v1beta1api在AmazonEKS上创建ALB。将EKS升级到v1.19后,我开始收到警告: Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress 因此,我开始相应地更新入口配置,并部署了ALB,但ALB没有在AWS中启动,也没有获得ALB地址 入口配置--> 节点端口配置-->

以前我使用
extensions/v1beta1
api在AmazonEKS上创建ALB。将EKS升级到
v1.19
后,我开始收到警告:

Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
因此,我开始相应地更新入口配置,并部署了ALB,但ALB没有在AWS中启动,也没有获得ALB地址

入口配置-->

节点端口配置-->

结果--->

用于创建ALB入口控制器


有人能帮我吗?

即使您使用最新的入口,您的入口也应该可以正常工作。您看到的警告表明API的新版本可用。你不必担心

下面是出现此警告的原因,即使您使用的是
apiVersion:networking.k8s.io/v1

这是预期的工作。创建入口对象时,可以通过任何版本读取它(服务器处理转换为请求的版本)
kubectl get ingress
是一个模棱两可的请求,因为它没有指明需要读取的版本

当发出不明确的请求时,kubectl搜索服务器返回的发现文档,以查找包含指定资源的第一个组/版本

出于兼容性原因,
extensions/v1beta1
历来是所有其他api版本的首选。既然ingress是该组中唯一剩余的资源,并且已弃用并有GA替换,1.20将降低其优先级,以便
kubectl get ingress
将从
networking.k8s.io/v1
读取,但1.19服务器仍将遵循历史优先级

如果要读取特定版本,可以限定get请求(如
kubectl get-ingreses.v1.networking.k8s.io
…),或者传入清单文件以请求文件中指定的相同版本(
kubectl get-f ing.yaml-o yaml


您还可以看到。

我也有同样的问题。这只是一个警告,所以我的所有资源都可以在AWS EKS上使用Kubernetes 1.19的extensions/v1beta1按预期运行,但我想知道当我们使用1.22时,为避免出现问题,推荐的升级方法是什么。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: "pub-dev-alb"
  namespace: "dev-env"
  annotations:
    kubernetes.io/ingress.class: "alb"
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip

spec:
  rules:
  - host: "dev.test.net"
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: "dev-test-tg"
            port:
              number: 80
apiVersion: v1
kind: Service
metadata:
  name: "dev-test-tg"
  namespace: "dev-env"
spec:
  ports:
    - port: 80
      targetPort: 3001
      protocol: TCP
  type: NodePort
  selector:
    app: "dev-test-server"