我有一个简单的节点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
谁能告诉我我做错了什么,谢谢你。
似乎您的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,但我很想知道其他云提供商是否不同。