我使用Azure库伯内特斯服务来提供我的微服务。当我登录到我的API网关时,它可以工作。但是当我尝试通过Api-Gateway联系另一个微服务时,我收到一个错误(500内部服务器错误)。我还在库伯内特斯设置了一个Eureka命名服务器,我提供的所有微服务都在那里注册。但是为什么我的API网关不能与我的微服务通信?它也可以在本地机器上工作。
我的Yaml文件
apiVersion: apps/v1
kind: Deployment
metadata:
name: discoveryservice-front
spec:
replicas: 1
selector:
matchLabels:
app: discoveryservice-front
template:
metadata:
labels:
app: discoveryservice-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: discoveryservice-front
image: containerregistry.azurecr.io/discoveryservice:16
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8762
name: discovery
---
apiVersion: v1
kind: Service
metadata:
name: eureka
spec:
type: LoadBalancer
ports:
- port: 8762
selector:
app: discoveryservice-front
apiVersion: apps/v1
kind: Deployment
metadata:
name: apigateway-front
spec:
replicas: 1
selector:
matchLabels:
app: apigateway-front
template:
metadata:
labels:
app: apigateway-front
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: apigateway-front
image: containerregistry.azurecr.io/apigateway:27
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8800
name: apigateway
---
apiVersion: v1
kind: Service
metadata:
name: apigateway-front
spec:
type: LoadBalancer
ports:
- port: 8800
selector:
app: apigateway-front
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: contacts-back
spec:
replicas: 1
selector:
matchLabels:
app: contacts-back
template:
metadata:
labels:
app: contacts-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: contacts-back
image: containerregistry.azurecr.io/contacts:26
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8100
name: contacts-back
---
apiVersion: v1
kind: Service
metadata:
name: contacts-back
spec:
ports:
- port: 8100
selector:
app: contacts-back
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: templates-back
spec:
replicas: 1
selector:
matchLabels:
app: templates-back
template:
metadata:
labels:
app: templates-back
spec:
nodeSelector:
"beta.kubernetes.io/os": linux
containers:
- name: templates-back
image: containerregistry.azurecr.io/templates:25
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 512Mi
ports:
- containerPort: 8200
name: templates-back
---
apiVersion: v1
kind: Service
metadata:
name: templates-back
spec:
ports:
- port: 8200
selector:
app: templates-back
我所有的微服务都运行在同一个节点上。我的想法可能是在API网关中重新安装路由。但是可以路由到内部IP吗?有人能告诉我我做错了什么吗?
由于您正在集群内运行API网关,因此进程应该能够使用其服务定义访问所有其他pod。
假设所有服务/部署都部署在同一命名空间中。api网关应该能够通过服务名称引用它们
e、 g(fqdn)
contacts-back.<namespace>.svc.cluster.local:8100
在compute节点上启动的VM实例可以访问除C类IP之外的所有外部internet站点。控制器和计算节点已经根据openstack liberty指南在Ubuntu上成功安装。 VM的接口有: [root@vm3~]#ifconfig eth1链路Encap:Ethernet HWaddr FA:16:3E:57:1B:57 inet Addr:192.168.0.215 BCAST:255.2
我在VPC上有一个极光数据库。今天我需要通过lambda连接到数据库。这并不是一个问题,只是我需要在Lambda中访问互联网,所以我必须设置以下内容: 我为公共NAT添加了新的子网。 我添加了NAT网关,并将其分配给新的EIP和新的子网。 我添加了一个新的路由表,该表将所有流量路由到并将该表与在步骤1中创建的新子网相关联。 我修改了路由表,并将所有流量路由到NAT。
我正在使用spring cloud路由应用程序,但无法这样做,下面是详细信息 我还尝试将路径添加为
然而,当我连接到路由器配置页面使用浏览器的互联网IP地址显示在那里。如何在我的java应用程序中获得互联网IP地址?
5. IP地址与路由 IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要
公共路由前缀 To set default path (route prefix), use setGlobalPrefix() method of INestApplication object. Example: 使用INestApplication对象的setGlobalPrefix()方法可以设置默认路径(route prefix)。 const app = NestFactory.cre