在Kubernetes中有没有办法,或者有一个网络插件,我们可以在上面限制IP分配的范围。例如,我正在尝试使用weave和子网192.168.16.0/24。我希望通过Kubernetes分配到pod的IP限制在192.168.16.10-30范围内。
然而,我的应用程序可能会根据需要使用其余的IP,例如,我的应用程序可以从192.168.16.31-50启动一个虚拟IP,但我想要一些机制来确保我指定的IP范围不会被K8s分配,并且我的应用程序可以使用该IP。
我需要这样的东西:https://www.weave.works/docs/net/latest/tasks/ipam/configuring-weave/。
发布于 2020-02-10 22:10:29
Network Policy资源将有所帮助
示例NetworkPolicy可能如下所示:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy元数据:名称:测试网络策略命名空间:默认规范: podSelector: matchLabels:角色: db policyTypes:-入口-出口入口:- from:- ipBlock: cidr: 172.17.0.0/16 except:- 172.17.1.0/24 - namespaceSelector: matchLabels: project: myproject- podSelector: matchLabels:角色:前端端口:-协议: TCP端口: 6379出口:- to:- ipBlock: cidr: 10.0.0.0/24端口:-协议: TCP端口: 5978
规则ipBlock描述了ingress和egress规则的网络范围。例如:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24CIDR
CIDR代表Classless Inter-Domain Routing,请参见samples of IPv4 CIDR blocks
更多信息
有关更多信息,请参见the NetworkPolicy reference.
发布于 2020-02-11 02:05:40
实际上这是一个很好的问题。这取决于你的CNI,在你使用weavenet的情况下。
我假设您在Weavenet上使用的是daemonset。如果是这样的话,在您的daemonset yaml文件中添加类似这样的内容。
spec:
containers:
- name: weave
command:
- /home/weave/launch.sh
env:
- name: IPALLOC_RANGE
value: 192.168.16.32/27这将为您的pods提供一个从192.168.16.32到63的IP范围。
你也可以用Weave CLI来设置,如果你需要的话,请告诉我。
希望这能对你有所帮助。
https://stackoverflow.com/questions/60141509
复制相似问题