GKE Cluster 创建的网络设置
在GCP上创建GKE Cluster不算是太难的事情。可以通过页面的操作或者Terraform来创建。这里来分享一下其中的网络设置。
一, 首先需要规划好5个网段,分别是
- Master CIDR:创建的master 从中分配一个IP 地址
- Node CIDR:创建出来的node 从中分配一个IP 地址 (VPC对应的子网)
- POD CIDR: K8S上管理的基本单元从中分配一个IP地址 (VPC对应子网的Secondary地址一)默认每个Node最多允许110POD
- Service CIDR: 暴露出来的服务从中分配一个IP地址 (VPC对应子网Secondary地址二)
- Authorized CIDR (可选): 指定那些地址可以访问到master 节点。一般来说可以指定持续发布工具所在的网段。
所划分的段需要根据具体情况,比如Node数量, Pod数量, 服务数量来定。
二,在Cluster 创建的过程中,有些image你是需要从外网来pull的,比如说你 需要集成了边车(side car)Istio。这时候你是需要开放Egress 433 端口的给对应的Node节点。 需要说明的是,虽然我们在处理的小单位都是容器级别的,但是防火墙的配置还是以容器所寄宿的Node来管理。
三,Cluster 创建结束之后,我们应该可以看到有三条Ingress的允许访问规则
- 允许master CIDR 访问所有node
- 允许pod CIDR 访问node
- 允许Node CIDR 访问node (node间互访)
四,当你需要NAT Gateway的时候,比如说你在一个后端服务里边边车运行了一个Cloud SQL的代理,需要访问另外一个项目的 SQL 服务。当你配置的时候, 你需要在Gloud NAT所涵盖的子网网段里边选择Node子网。需要记住容器的最终网络出口还是Node。 同时需要开放VPC防火墙, 允许 Egress 3306,3307 端口到对应的 SQL 服务IP地址。