今天会说明一下,实务上如何将 Open-Match svc endpoints,从 kubernetes 中暴露出来。由於先前都是以同 cluster 之间呼叫,并不会有需要外部 ip 的问题,但进入生产环境时,极有可能会将核心与部件分开在不同的 clusters 中,故此介绍一下端点暴露的方式与呼叫的方法。
方法一:透过修改 yaml
kind: Service
apiVersion: v1
metadata:
name: open-match-frontend
...
spec:
selector:
app: open-match
component: frontend
release: open-match
clusterIP: None
# type: ClusterIP
type: LoadBalancer
...
方法二:透过修改 helm 使用 values
frontend: &frontend
hostName:
grpcPort: 50504
httpPort: 51504
portType: LoadBalancer
replicas: 3
或直接 helm upgrade
helm upgrade open-match --namespace open-match open-match/open-match \
--set global.gcpProjectId=[YOUR_GCPPROJECT_ID] \
--set backend.portType=LoadBalancer
结果
~ kubectl get services -n open-match open-match-frontend
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
open-match-frontend ClusterIP 10.0.3.7 <none> 50504/TCP,51504/TCP 74d
~ kubectl get services -n open-match open-match-frontend
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
open-match-frontend LoadBalancer 10.0.3.7 104.198.205.71 50504/TCP,51504/TCP 74d
丛集外的对象须透过 EXTERNAL-IP
进行呼叫,而同样位於丛集内的服务直接呼叫 SERVICE_NAME
丛集外
frontendConn, err := grpc.Dial("104.198.205.71:50504", grpc.WithInsecure())
丛集内
frontendConn, err := grpc.Dial("open-match-frontend:50504", grpc.WithInsecure())
<<: [区块链&DAPP介绍 Day21] contract 案例3 - 比大小下注游戏
>>: [面试][後端]请简述 Node.js 的 Event Loop
前言 今天来讲解特殊型别中的 never,never 是一种函式回传值的状况,跟 void 很像,稍...
想解决的问题 起因是今年七月开 Netflix 开始限制共享家庭方案,认证规则目前没有公开,但会根据...
HTML是什麽 首先关於 HTML 是网页三兄弟中最容易也是最基础的一种标记语言(markup la...
介绍JSX JSX 是一种在 JavaScript 里面的标签语法,让我们可以在写逻辑时使用 HTM...
这边的 EC 指的是 Electronic Commerce,也就是所谓的电子商务,我们将用一到两章...