【发布时间】:2020-08-11 15:30:22
【问题描述】:
各位, 尝试将 GKE 集群从 1 个节点增加到 3 个节点时,在不同的区域(us-centra1-a、b、c)中运行。以下似乎很明显:
安排在新节点上的 Pod 无法访问 Internet 上的资源...即无法连接到条带 api 等(可能与 kube-dns 相关,尚未测试尝试在没有 DNS 查找的情况下离开的流量)。
同样,我无法按预期在 K8s 中的 pod 之间进行路由。 IE。似乎跨az调用可能会失败?使用 openvpn 进行测试时,无法连接到新节点上安排的 pod。
我注意到的另一个问题是 Metrics 服务器似乎不稳定。 kubectl top nodes 显示新节点未知。
在撰写本文时,掌握k8s版本1.15.11-gke.9
正在关注的设置:
VPC-native (alias IP) - disabled
Intranode visibility - disabled
gcloud 容器集群描述 cluster-1 --zone us-central1-a
clusterIpv4Cidr: 10.8.0.0/14
createTime: '2017-10-14T23:44:43+00:00'
currentMasterVersion: 1.15.11-gke.9
currentNodeCount: 1
currentNodeVersion: 1.15.11-gke.9
endpoint: 35.192.211.67
initialClusterVersion: 1.7.8
instanceGroupUrls:
- https://www.googleapis.com/compute/v1/projects/skilful-frame-180217/zones/us-central1-a/instanceGroupManagers/gke-cluster-1-default-pool-ff24932a-grp
ipAllocationPolicy: {}
labelFingerprint: a9dc16a7
legacyAbac:
enabled: true
location: us-central1-a
locations:
- us-central1-a
loggingService: none
....
masterAuthorizedNetworksConfig: {}
monitoringService: none
name: cluster-1
network: default
networkConfig:
network: .../global/networks/default
subnetwork: .../regions/us-central1/subnetworks/default
networkPolicy:
provider: CALICO
nodeConfig:
diskSizeGb: 100
diskType: pd-standard
imageType: COS
machineType: n1-standard-2
...
nodeIpv4CidrSize: 24
nodePools:
- autoscaling: {}
config:
diskSizeGb: 100
diskType: pd-standard
imageType: COS
machineType: n1-standard-2
...
initialNodeCount: 1
locations:
- us-central1-a
management:
autoRepair: true
autoUpgrade: true
name: default-pool
podIpv4CidrSize: 24
status: RUNNING
version: 1.15.11-gke.9
servicesIpv4Cidr: 10.11.240.0/20
status: RUNNING
subnetwork: default
zone: us-central1-a
下一个故障排除步骤是创建一个新池并迁移到该池。也许答案正盯着我的脸……会不会是nodeIpv4CidrSize a /24?
谢谢!
【问题讨论】:
-
我创建了一个与您发布的设置完全相同的集群,它有效。使用 1 个节点创建,对其进行测试,扩展到 3 个节点,其他节点上的 pod 也具有出口访问权限。我注意到您启用了 networkpolicy (calico),您可以粘贴
kubectl describe networkpolicy的输出吗?如果您测试 ping 其他 pod 和 ping/curling 外部资源并将输出粘贴到此处,那也很好。 -
谢谢!在 UI 中,它说网络策略已禁用,这就是为什么我没有关注 calico。这完全有道理!
kubectl describe networkpolicy什么都不返回...但我现在清楚地看到gcloud container clusters describe cluster-1 --zone us-central1-a输出中的印花布设置。叹息....我不想建立一个新的集群:)。有没有掉印花布的命令? :) -
运行
gcloud container clusters update cluster-1 --no-enable-network-policy,如果它解决了您的问题,请告诉我,如果可以,我会写一个答案来解释其背后的原因,好吗? -
当我更新集群以禁用网络策略插件时,describe 命令显示
networkPolicyConfig: disabled: true我想知道您是否发送命令启用它然后再次禁用它会更新到正确的状态。由于我需要向您传递一些命令,所以我会写作为答案,但如果它解决了您的问题,我会等待您的反馈,如果没有,我们会继续挖掘 ;)
标签: kubernetes google-cloud-platform google-kubernetes-engine