TL; DR 在GKE专用群集中,我无法使用内部/专用IP公开服务。
我们的部署由大约20个微服务和4个整体组成,目前完全在GoogleCloud的VM上运行。我正在尝试将此基础架构移至GKE。该项目的第一步是建立一个私有GKE集群(即没有任何公共IP)来代替我们的阶段。在此阶段中,我需要在内部公开所有微服务端点以及整体端点以进行调试(意味着,仅适用于连接到VPC的端点),这就是我遇到的问题。我尝试了2种方法:
import pandas as pd
df = pd.DataFrame({'NO': ['a', 'a', 'b', 'b', 'c', 'c', 'd', 'd', 'e', 'e', 'e', 'f', 'f'], 'CODE': ['1', '1', '1', '1', '4', '1', '4', '1', '4', '4', '1', '4', '1']})
Out[1]:
NO CODE
0 a 1
1 a 1
2 b 1
3 b 1
4 c 4
5 c 1
6 d 4
7 d 1
8 e 4
9 e 4
10 e 1
11 f 4
12 f 1
这是有效的,尽管有严格的限制。 ILB创建转发规则,并且 GCP的limitation为每个网络75个转发规则。这意味着我们在一个网络中不能建立超过3个集群。不被我们接受。
NO CODE
c 4
c 1
d 4
d 1
e 4
e 4
e 1
f 4
f 1
b。我尝试使用一个Nginx入口控制器,该控制器最终根本没有IP。
apiVersion: v1
kind: Service
metadata:
name: session
annotations:
cloud.google.com/load-balancer-type: "Internal"
labels:
app: session
type: ms
spec:
type: LoadBalancer
selector:
app: session
ports:
- name: grpc
port: 80
targetPort: 80
protocol: TCP
第三个选项是配置防火墙规则,这将切断对公共IP的任何访问。出于安全考虑,这在内部被拒绝。
我停留在这个阶段,需要一些指针才能继续前进。请帮忙
答案 0 :(得分:0)
我从所附的屏幕截图中可以看到,您的GKE群集是私有群集。
由于您希望从同一VPC网络中的所有资源访问GKE群集内的服务和应用程序,因此我建议您使用NodePort [1]。
[1] https://cloud.google.com/kubernetes-engine/docs/concepts/service#service_of_type_nodeport