我正在嘗試在本地 k3d k8s 集群上部署兩個應用程式。服務 A 公開了服務 B 使用的 REST 端點。這是配置:
服務-A
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: service-A
app.kubernetes.io/version: 1.0.1-SNAPSHOT
name: service-A
spec:
ports:
- name: http
port: 8554
targetPort: 8554
selector:
app.kubernetes.io/name: service-A
app.kubernetes.io/version: 1.0.1-SNAPSHOT
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/version: 1.0.1-SNAPSHOT
app.kubernetes.io/name: service-A
name: service-A
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/version: 1.0.1-SNAPSHOT
app.kubernetes.io/name: service-A
template:
metadata:
labels:
app.kubernetes.io/version: 1.0.1-SNAPSHOT
app.kubernetes.io/name: service-A
spec:
containers:
- env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: registry.localhost:12345/service-A
imagePullPolicy: IfNotPresent
name: service-A
ports:
- containerPort: 8554
name: http
protocol: TCP
服務-B
---
apiVersion: v1
kind: Service
metadata:
labels:
app.kubernetes.io/name: service-B
app.kubernetes.io/version: 1.0.1-SNAPSHOT
name: service-B
spec:
ports:
- name: http
port: 8550
targetPort: 8550
selector:
app.kubernetes.io/name: service-B
app.kubernetes.io/version: 1.0.1-SNAPSHOT
type: LoadBalancer
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/version: 1.0.1-SNAPSHOT
app.kubernetes.io/name: service-B
name: service-B
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/version: 1.0.1-SNAPSHOT
app.kubernetes.io/name: service-B
template:
metadata:
labels:
app.kubernetes.io/version: 1.0.1-SNAPSHOT
app.kubernetes.io/name: service-B
spec:
containers:
- env:
- name: KUBERNETES_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: SERVICE_A_ADDR
valueFrom:
configMapKeyRef:
key: service_a_addr
name: app-configmap
image: registry.localhost:12345/service-B-native
imagePullPolicy: IfNotPresent
name: service-B
ports:
- containerPort: 8550
name: http
protocol: TCP
配置圖
apiVersion: v1
kind: ConfigMap
metadata:
name: app-configmap
data:
service_a_addr: service-A
如您所見,Service-B 需要一個 env 變數,其值是從包含 Service-A 名稱的配置映射中讀取的。
但是,當 Service-B 嘗試呼叫 Service-A 時,我收到連接被拒絕的例外:
Caused by: javax.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8554 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
at org.jboss.resteasy.client.jaxrs.engines.ManualClosingApacheHttpClient43Engine.invoke(ManualClosingApacheHttpClient43Engine.java:297)
at org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:491)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:152)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:115)
at org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:76)
at com.sun.proxy.$Proxy291.getLoginId(Unknown Source)
at java.lang.reflect.Method.invoke(Method.java:566)
at org.jboss.resteasy.microprofile.client.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:147)
at com.sun.proxy.$Proxy292.getLoginId(Unknown Source)
關于可能發生什么的任何想法?Kubernetes YAML 檔案由 Java 框架 Quarks 自動生成。
uj5u.com熱心網友回復:
Connect to localhost:8554 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)
它沒有配置為連接到“service-A”,它被配置為連接到本地主機?此錯誤訊息包含為什么您的客戶端連接到錯誤地址的線索。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385094.html
標籤:Kubernetes 夸克 k3s k3d
