Chr*_* G. 5 go kubernetes grpc istio
gRPC的新功能:
拥有gRPC客户端,如何使用路由?
我的gRPC服务器位于此本地路径10.0.1.6/hw。
如果我在Pod中运行它,它正在Kubernetes窗格中运行和监听,并且在内部工作。但是我现在通过url和ingress访问它。
但是如何测试没有端口号的路由是否真正起作用?
const (
address = "10.0.1.6:80/hw"
defaultName = "World"
)
var (
conn *grpc.ClientConn
c pb.GreeterClient
)
func setupRPC() {
var err error
conn, err = grpc.Dial(address, grpc.WithInsecure())
c = pb.NewGreeterClient(conn)
if err != nil {
log.Fatalf("did not connect: %v", err)
}
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
could not greet: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial tcp: lookup tcp/80/hw: nodename nor servname provided, or not known"
Run Code Online (Sandbox Code Playgroud)
你知不知道怎么?还是如何测试gRPC端点?
如果它在 Pod 内部工作,那么您只需要公开它。您可以通过为服务添加 yaml 定义来完成此操作。就像下面这样。
apiVersion: v1
kind: Service
metadata:
namespace: $YOUR_NAMESPCAE
labels:
app: $YOUR_SERVICE_NAME
name: $YOUR_SERVICE_NAME
spec:
ports:
- name: $YOUR_GRCP_PORT
port: $YOUR_GRCP_PORT
targetPort: $YOUR_GRCP_PORT
selector:
app: $YOUR_SERVICE_NAME
status:
loadBalancer: {}
Run Code Online (Sandbox Code Playgroud)
请注意,它表示$YOUR_GRCP_PORT您定义将公开的 grcp 端口。
现在您只需要编辑您提到的入口即可。它应该类似于以下内容。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: vizix-ingress
namespace: preprod-vizix-io
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: "/"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: $YOUR_SERVICE_NAME
servicePort: $YOUR_GRCP_PORT
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
495 次 |
| 最近记录: |