![](/img/trans.png)
[英]Kubernetes: reserving subrange of service-cluster-ip-range for manual allocation
[英]Kubernetes network allocation range
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 和我的應用程序可以使用它。
我需要這樣的東西: https : //www.weave.works/docs/net/latest/tasks/ipam/configuring-weave/ 。
查看文檔
一個示例 NetworkPolicy 可能如下所示:
apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: test-network-policy namespace: default spec: podSelector: matchLabels: role: db policyTypes: - Ingress - Egress ingress: - from: - ipBlock: cidr: 172.17.0.0/16 except: - 172.17.1.0/24 - namespaceSelector: matchLabels: project: myproject - podSelector: matchLabels: role: frontend ports: - protocol: TCP port: 6379 egress: - to: - ipBlock: cidr: 10.0.0.0/24 ports: - protocol: TCP port: 5978
規則ipBlock
描述了ingress
和egress
規則的網絡范圍。 例如:
- ipBlock:
cidr: 172.17.0.0/16
except:
- 172.17.1.0/24
CIDR 代表Classless Inter-Domain Routing ,請參閱IPv4 CIDR 塊示例
k8s
網絡的精彩介紹其實這是個好問題。 這取決於您的 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
這為您的 pod 提供了一個從 192.168.16.32-63 的 IP 范圍。
您也可以使用 Weave CLI 進行設置,如果您需要,請告訴我。
希望這是有幫助的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.