我使用 Kubespray 部署工具(启用了 kubeadm 实验功能标志)部署了一个 Kubernetes 1.10.4 集群(3 个 Master,2 个 Workers)。
顺便说一句,我将 Canal 用作“kube_network_plugin”。
我的客户有一些网络限制。他们提供了以下网络空间:
- 192.168.150.0/25
- 192.168.150.128/25
- 192.168.151.0/25
关于 kubespray 'k8s-cluster.yml',我已经更改了默认参数,默认为:
- kube_service_addresses:10.233.0.0/18
- kube_pods_subnet:10.233.64.0/18
- kube_network_node_prefix:24
我们尝试更改这些参数以匹配客户提供给我们的网络空间,但不幸的是,此修改没有按预期工作。我们很快意识到使用 /25 掩码无法按预期工作,因此我们尝试从 /25 到 /20 使用,但没有任何效果。
我尝试使用 192.168.150.0/18 或 172.18.0.0/18 并且一切顺利(只要我们使用 /18 掩码),如下所示。
kube_service_addresses: 192.168.150.0/18
kube_pods_subnet: 192.168.151.0/18
kube_network_node_prefix: 24
当使用不同于 /18 的掩码时,集群呈现的行为有点奇怪,因为例如 kube-dns pod、kube-proxy pod、kube-autoscaler 等,根本不会起床或 canal-pods部署在一个节点中,但在其他集群节点中却没有。
Kubernetes 是否有任何限制/约束不支持与 /18 不同的任何网络,或者我做错了什么?
我在网上搜索过这个,但在我读到的所有内容中都没有明确说明这一点。有人说(https://docs.projectcalico.org/v3.1/reference/calicoctl/resources/ippool)可以设置与默认值(/16)不同的掩码,但事实是如果我们改变它,它不起作用。
你能帮我解决这个问题吗?
此致,
佩德罗·克拉沃·洛佩斯。