- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 kubernetes 上的 grpc 通信有问题。我有一个 java 客户端调用一个简单的 helloworld grpc 服务(也在 java 中)。在 Docker 中一切正常,但在 kubernetes 中却不行 :'(.
您可以在此处获取完整代码:https://github.com/hagakure/testgrpc
如何复现?
./start.bat
http://localhost:8080/hello?firstName=cedric
但它不起作用:'(如果您对如何使 grpc 在 kubernetes 中工作有任何线索,感谢您的帮助。
最佳答案
docker-compose.yml
中指定的环境变量。这是固定的 yaml。deployment_server.yml
:apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: grpc-server
name: grpc-server
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: grpc-server
template:
metadata:
labels:
app.kubernetes.io/name: grpc-server
spec:
containers:
- image: poc_grpc-server:latest
imagePullPolicy: Never
name: grpc-server
ports:
- containerPort: 8081
env:
- name: GRPC_SERVER_PORT
value: "8081"
---
apiVersion: v1
kind: Service
metadata:
name: grpc-server-svc
spec:
selector:
app.kubernetes.io/name: grpc-server
ports:
- protocol: TCP
port: 8081
deployment_client.yml
:apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/name: grpc-client
name: grpc-client
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: grpc-client
template:
metadata:
labels:
app.kubernetes.io/name: grpc-client
spec:
containers:
- image: poc_grpc-client
imagePullPolicy: Never
name: grpc-client
ports:
- containerPort: 8080
env:
- name: GRPC_SERVER_ADDRESS
value: "grpc-server-svc"
- name: GRPC_SERVER_PORT
value: "8081"
---
apiVersion: v1
kind: Service
metadata:
name: grpc-client-svc
spec:
selector:
app.kubernetes.io/name: grpc-client
ports:
- protocol: TCP
port: 8080
type: NodePort
亮点:
grpc-server-svc
服务作为 ClusterIP
仅在服务于 GRPC 服务器的集群内可用。NodePort
创建了 grpc-client-svc
服务,以演示从集群外部接收 curl 请求。env
部分:请注意,我将 GRPC_SERVER_ADDRESS
设置为 grpc-server-svc
因为我们不再处于 docker 环境中 host.docker.internal
不再是我们现在针对上述服务的选项。imagePullPolicy
设置为 Never
仅用于此示例,因为我使用的是本地 docker 注册表。复制:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
poc_grpc-client latest 7f6d886a1612 24 minutes ago 660MB
poc_grpc-server latest d46bf9481d1c 24 minutes ago 658MB
$ kubectl apply -f deployment_server.yml
deployment.apps/grpc-server created
service/grpc-server-svc created
$ kubectl apply -f deployment_client.yml
deployment.apps/grpc-client created
service/grpc-client-svc created
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/grpc-client-6ffcf6b6c8-846s5 1/1 Running 0 3s
pod/grpc-server-5d7fd9cb89-dkqlb 1/1 Running 0 7s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/grpc-client-svc NodePort 10.99.58.76 <none> 8080:32224/TCP 3s
service/grpc-server-svc ClusterIP 10.96.67.139 <none> 8081/TCP 7s
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h36m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/grpc-client 1/1 1 1 3s
deployment.apps/grpc-server 1/1 1 1 7s
NAME DESIRED CURRENT READY AGE
replicaset.apps/grpc-client-6ffcf6b6c8 1 1 1 3s
replicaset.apps/grpc-server-5d7fd9cb89 1 1 1 7s
$ kubectl cluster-info
Kubernetes master is running at https://172.17.0.4
$ curl http://172.17.0.4:32224
Client is running!!!
$ curl http://172.17.0.4:32224/hello?firstName=Cedric
Hello Cedric
如果您有任何问题,请在评论中告诉我!
关于java - kubernetes 中的 Grpc 连接不起作用 => 不可用 : Network closed for unknown reason,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62512989/
这是我的代码 14 20 {"Confirm Email"} 21 在第 17 行我得到错误 Type '{ pathname: string; user: { em
这是我的代码 14 20 {"Confirm Email"} 21 在第 17 行我得到错误 Type '{ pathname: string; user: { em
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 8 年前。 为什么 KeyEvent.getKeyText(0).substrin
我正在尝试 Rust 的新 wasm32-unknown-unknown 目标,我在调用数学函数(例如 sin、cos、exp、atan2)时遇到问题。 cargo .toml: [package]
当我为 spring-boot 创建启动项目时,我在 pom 文件中收到此错误。这只是为了创建一个基本的 Spring Boot 项目 Project build error: Invalid pac
我已经订阅了我想要传输的数据。但不知何故它不起作用。我收到此错误: The property pipe is not available for type "OperatorFunction" 这是我
运行以下查询时。select * from surgerys where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-M
我在运行存储过程时遇到以下异常: com.microsoft.sqlserver.jdbc.SQLServerException:不支持从 UNKNOWN 到 UNKNOWN 的转换。 过程定义如下:
我尝试运行以下代码。顺便说一句,我对 python 和 sklearn 都是新手。 import pandas as pd import numpy as np from sklearn.linear
我已经阅读了关于未知类型的官方文档,但我很难真正理解它是如何工作的。 人们可以在文档中读到:“在没有首先断言或缩小到更具体的类型之前,不允许对未知进行任何操作。” 但如果我有这个功能: const f
我正在尝试在Mac OS中设置Hadoop 2.6.0 我正在关注这篇文章: http://hadoop.apache.org/docs/r2.4.0/hadoop-project-dist/hado
配置 Nexus docker 注册表和代理“dockerhub-proxy”后,如下所述: https://help.sonatype.com/repomanager3/formats/docker
我收到此错误 - “ValueError:未知标签类型:'unknown'” 我已经在网上搜索但无法摆脱这个错误,顺便说一句,我是 python 的新手:) 我的数据有 5 行 22 列,最后一列是标
使用 SHA256 摘要标识符 拉取图像失败 最佳答案 不幸的是,这是 DockerHub 删除 Docker 1.9 守护进程的向后兼容性的副作用。当使用 Docker 1.10 推送图像时,较旧的
我是 postgresql 的新手,正在尝试使用全文搜索 to_tsvector但是我遇到了错误。 SQL 和错误 SELECT to_tsvector('english', 'The quick b
每当我这样做时 npm run watch ,第一次编译工作正常 - 但经过几次编译后,我最终会得到这个错误: 95% emitting unnamed compat pluginError: UNK
在一个新的 Angular 应用程序中,我收到以下错误:Error from chokidar : Error: UNKNOWN: unknown error, watch我已经删除并重新安装 nod
使用 Typescipt 4.x.x 我写了一些代码来实现其他语言 Elm/Rust/Haskell 中常用的 Maybe/Option 类型。 我想写一个可以接受映射类型的通用函数 type MyM
const submitted = useSelector((state) => state.post.submitted) 对于上面的状态。我得到错误: (参数)状态:未知对象的类型为“未知”。 这
我正在尝试将多架构 docker 镜像推送到 docker hub 并遇到错误(在 https://github.com/docker/distribution/issues/3100 处打开了 do
我是一名优秀的程序员,十分优秀!