Docker Kubernetes上的C#GRPC服务
我有一个用C#编写的GRPC服务,它使用部署在Kubernetes中的.net内核,并将flannel作为CNI。当我尝试使用服务:9000从部署在同一集群上的另一个容器连接到上的此GRPC服务时,我获得了状态(StatusCode=Unavailable,Detail=connect Failed\) 我在没有容器和K8的机器上进行了本地检查,一切正常 此服务的我的部署yaml如下所示:Docker Kubernetes上的C#GRPC服务,docker,kubernetes,.net-core,grpc,flannel,Docker,Kubernetes,.net Core,Grpc,Flannel,我有一个用C#编写的GRPC服务,它使用部署在Kubernetes中的.net内核,并将flannel作为CNI。当我尝试使用服务:9000从部署在同一集群上的另一个容器连接到上的此GRPC服务时,我获得了状态(StatusCode=Unavailable,Detail=connect Failed\) 我在没有容器和K8的机器上进行了本地检查,一切正常 此服务的我的部署yaml如下所示: apiVersion: v1 kind: PersistentVolumeClaim metadata:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
finalizers:
- kubernetes.io/pvc-protection
name: service-pvc
namespace: services
spec:
accessModes:
- ReadWriteOnce
- ReadOnlyMany
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: ""
volumeName: nfs-service
---
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: service-deployment
labels:
app: service
name: service
namespace: services
spec:
selector:
matchLabels:
app: service
replicas: 1
template:
metadata:
labels:
app: service
spec:
containers:
image: <ImageUrl>
imagePullPolicy: Always
name: service
ports:
- containerPort: 9000
name: service
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
privileged: false
readOnlyRootFilesystem: false
runAsNonRoot: false
stdin: true
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
tty: true
volumeMounts:
- mountPath: /var/certs/
name: service-vol1
readOnly: true
subPath: service
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
terminationGracePeriodSeconds: 30
imagePullSecrets:
- name: unstable
volumes:
- name: service-vol1
persistentVolumeClaim:
claimName: service-pvc
---
apiVersion: v1
kind: Service
metadata:
name: service
namespace: services
spec:
selector:
app: service
ports:
- port: 9000
targetPort: service
尝试将kubernetes服务对象中的targetPort更改为9000 证书有问题。我试图使用使用通配符的SSL绑定。我将其更改为服务内部本地域并开始工作。客户端服务是否在同一命名空间中?@DanFarrell是的,客户端和服务都在同一命名空间中。@aditya arun尝试连接GRPC服务时,能否共享客户端Pod中的日志?
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1/dotnet
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1/dotnet
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1/dotnet
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 1/dotnet
root@service-67d57dfb6d-wsvvf:/app#