![](/img/trans.png)
[英]Getting real ip from Google Cloud Load Balancer and cloudflare
[英]Cannot access Load Banalcer IP from Google Cloud Shell after creating GKE Cluster
我正在学习 GKE 服务并创建了一个包含以下信息的GKE cluster
$ gcloud container clusters list
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
mycluster us-east1-b 1.14.10-gke.27 35.X.X.X n1-standard-1 1.14.10-gke.27 3 RUNNING
我创建了自己的VPC subnet
,其范围低于我分配给集群的范围。
IP address range : 10.7.0.0/24
以下辅助 IP 范围由 GKE 引擎分配
Secondary IP range
gke-mycluster-pods-765b8f97 10.44.0.0/14
gke-mycluster-services-765b8f97 10.237.0.0/20
创建集群后节点信息如下:
$kubectl get nodes
NAME STATUS ROLES AGE VERSION
gke-mycluster-default-pool-c2ddd83e-km5k Ready <none> 21m v1.14.10-gke.27
gke-mycluster-default-pool-c2ddd83e-trrl Ready <none> 21m v1.14.10-gke.27
gke-mycluster-default-pool-c2ddd83e-x4w3 Ready <none> 21m v1.14.10-gke.27
我的部署 YAML 如下创建一个 nginx 容器:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mywebapp-replicaset
labels:
app: mywebapp
type: front-end
spec:
template:
metadata:
name: myngix-pod
labels:
app: mywebapp
type: front-end
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
replicas: 3
selector:
matchLabels:
type: front-end
以下是我的服务定义
apiVersion: v1
kind: Service
metadata:
name: mywebapp-services
labels:
app: mywebapp
type: front-end
spec:
type: LoadBalancer
ports:
- targetPort: 80
port: 80
selector:
app: mywebapp
type: front-end
使用 kubectl 命令创建服务后,它看起来像这样
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.237.0.1 <none> 443/TCP 23h
mywebapp-services LoadBalancer 10.237.12.141 <pending> 80:31102/TCP 6s
现在,如果我尝试从Gcloud shell
访问LoadBalancer IP
它超时,我错过了什么
$ curl http://10.237.12.141:80
curl: (7) Failed to connect to 10.237.12.141 port 80: Connection timed out
地址 10.xxx 是您的 VPC 中的私有 IPv4 地址。 Cloud Shell 未在您的 VPC 中运行。 因此无法访问该地址。 您必须使用外部 IP。
有关私有 IPv4 地址的更多信息:
还有私有 IPv6 地址。 Google Cloud VPC 不支持 IPv6。 某些 Google Cloud 服务(例如 HTTP(S) 负载均衡器)确实支持 IPv6,但这些资源不属于您项目的 VPC。
VPC 网络仅支持 IPv4 单播流量。 它们不支持网络内的广播、多播或 IPv6 流量; VPC 网络中的虚拟机只能发送到 IPv4 目标,并且只能接收来自 IPv4 源的流量。 但是,可以为全局负载均衡器创建 IPv6 地址。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.