当前位置: 首页 > 知识库问答 >
问题:

实例化负载平衡器时出错:服务不是NodePort类型,目标类型是instance

鲜于阳成
2023-03-14

我有一个简单的节点api服务、mongo服务和负载均衡器。

我正在尝试使用kubernetes部署我的应用程序,当我运行命令时,我收到以下错误。

- kubectl describe ing -n my-service

警告错误5s(x2/8s)aws alb入口控制器实例化负载平衡器时出错:我的服务api服务不是NodePort类型,目标类型是instance

kind: Namespace
apiVersion: v1
metadata:
  name: my-service
  labels:
    name: my-service
---
#MongoDB
apiVersion: v1
kind: Service
metadata:
  name: mongo
  namespace: my-service
  labels:
    run: mongo
spec:
  ports:
  - port: 27017
    targetPort: 27017
    protocol: TCP
  selector:
    run: mongo
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: mongo
  namespace: my-service
spec:
  template:
    metadata:
      labels:
        run: mongo
    spec:
      containers:
      - name: mongo
        image: mongo
        ports:
        - containerPort: 27017
---
apiVersion: v1
kind: Service
metadata:
  name: my-service-api
  namespace: my-service
  labels:
    app: my-service-api
spec:
  selector:
    app: my-service-api
  ports:
  - port: 3002
    protocol: TCP
    nodePort: 30002
  type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-service-api-deployment
  namespace: my-service
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: my-service-api
    spec:
      containers:
      - name: my-service-api
        image: <removed>
        imagePullPolicy: Always
        env: <removed>
        ports:
        - containerPort: 3002
      imagePullSecrets:
      - name: regcred
---
#LoadBalancer
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-service-api
  namespace: my-service
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: instance
    alb.ingress.kubernetes.io/tags: Name=my-service-api,Owner=devops,Project=my-service,Stage=development
spec:
  rules:
    - host: <removed>
      http:
        paths:
          - path: /
            backend:
              serviceName: my-service-api
              servicePort: 3002

谁能告诉我我做错了什么,谢谢你。

共有1个答案

邹阳
2023-03-14

似乎您的my service api服务类型是“LoadBalancer”,您需要使用“NodePort”才能将实例用于alb。进入。库伯内特斯。io/目标类型:

可能这个已解决的github问题对您有用

 类似资料:
  • 当我将服务与ClusterIP类型和2个POD一起使用时,流量分布在2个POD上。 我找到了另一种服务类型LoadBalancer。这两种服务的区别是什么?LoadBalancer与ClusterIP有何不同? 谢谢

  • 我仍然对Kubernetes节点端口服务有疑问。 NodePort:在静态端口(NodePort)上公开每个节点IP上的服务。将自动创建节点端口服务将路由到的ClusterIP服务。您可以从集群外部通过请求来联系NodePort服务:。 如果我有两个节点:nodeA和nodeB,并且如果我只在nodeA上部署应用程序,然后创建NodePort服务,那么我可以同时使用nodeA和nodeB IP访问

  • 使用mapstruct时,我们有以下(示例)场景: 我们的目标类“动物园”包含一些“动物”的参考。动物可以是“狮子”或“大象”。现在,我们想根据某个源类(“ZooMaker”)的属性设置狮子的长度或大象的躯干长度。 我们要做的是使用mapstruct动态创建动物园中的动物。但是,如果我们使用FactoryClass 对于这个Mapper类: 我们得到一个错误,如:错误:(10,9)java:未知属

  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv

  • 我正在使用入口从库伯内特斯集群外部公开我的服务,因此我不需要库伯内特斯来配置负载均衡器。因此,我创建了一个ClusterIP服务: 这很有效-我有一个单独的入口和部署设置,我可以很好地访问该应用程序。 然而,Kubernetes坚持无论如何都要尝试创建负载平衡器。因为它在我的AWS帐户中没有这样做的权限,所以我创建的每个服务都会记录如下错误: 我假设它试图描述BeloadBalancers,因为它

  • 在Kubernetes中创建负载平衡器类型的服务时,它是创建一个全新的外部负载平衡器,还是只为负载平衡器类型的第一个服务创建一个负载平衡器,并将该负载平衡器重新用于负载平衡器类型的所有后续服务? 这个问题特别重要,因为为每个服务构建一个单独的负载平衡器对我来说成本太高。 如果它特定于云提供商,我使用Azure,但我很想知道其他云提供商是否不同。