Pod一般不建议设置静态IP地址,若想要实现设置静态IP,可以参考下面的方法。像亚马逊、阿里云等厂家是支持静态IP的,但如果是自己的私有云,可以参考下面的方法。这里使用的是calico网络方案,其他的网络方案,好像并不支持,更详细的 *** 作,可以看看calico的官方文档。
IP Pool资源定义
IPPool资源yaml定义
字段说明
metadata:
spec:
blockSize说明
请在 V3.3.0 版本后使用blockSize
IPv4 26和IPv6 122的默认块大小为64个地址的块。这允许将地址按组分配给在同一主机上运行的工作负载。通过对地址进行分组,主机之间以及与其他BGP对等方之间交换的路由更少。如果主机在一个块中分配所有地址,则将为其分配一个附加块。如果没有更多可用的块,则主机可以从分配给其他主机的块中获取地址。为借用的地址添加了特定的路由,这会影响路由表的大小。
将块大小从默认值增加(例如,使用24IPv4为每个块提供256个地址)意味着每个主机更少的块,并且可能会减少路由。但是,请尝试确保池中至少有与主机一样多的块。
从默认值减小块大小(例如,使用28IPv4为每个块提供16个地址)意味着每个主机有更多块,因此可能有更多路由。如果它允许块在主机之间更公平地分布,那么这将是有益的。
关于cidr和blockSize设置
比如你新增一个IPPool,cidr设置为192.169.0.0/29,在没有设置blockSize情况下,默认是/26的blockSize,这样是不允许的,192.169.0.0/29可用地址为8个,而默认blockSize为26将会把IP段分为64块,没有足够的IP,所以是无效的,所以blockSize应该等于大于子网掩码。
新创建的IPPool,可以在原有的IPPool中某一子网,比如
nodeSelector说明
以下所有的语法,都可以使用&&或||进行组合
kubernetes设置指定IP的场景及方法:
主要通过annotations指定。
基于namespace或者每个pod指定IP池
指定静态IP地址
说明:cni.projectcalico.org/ipAddrsNoIpam:绕过IPAM分配给Pod的IPv4和/或IPv6地址的列表。任何IP冲突和路由都必须手动或由其他系统来处理。Calico仅在其IP地址属于Calico IP池内时才将路由分配到Pod。如果分配的IP地址不在Calico IP池中,则必须确保通过另一种机制来处理到该IP地址的路由。
申请浮动IP
基于node节点标签分配IP
IPPool生效优先顺序
如果将这些方法中的一种以上用于IP地址分配,则它们将具有以下优先级,其中1为最高优先级:
基于namespace指定IP池
查看当前存在的IP池
创建新的IP池
创建新的namespace,并指定IP池
创建应用测试
注意namespace设置test-ippool
为pod指定静态IP地址或地址范围
指定地址范围
创建IP地址池
创建应用测试
注意spec.template.metadata.annotations指定了使用的IPPool
Pod设置静态IP
创建应用
虽然官方说名cni.projectcalico.org/ipAddrs:后面是IPv4或IPv6列表,实际并不支持,仅可以设置一个IP地址。所以Pod副本数超过1个是不行的。
设置的IP地址必须包含在已存在的IPPool中
根据节点标签分配IP
删除或禁用已存在的IPPool
如果不禁用或删除,创建的Pod也有可能分配到其他IPPool中的地址段
禁用IPPool
删除IPPool
给节点打上标签
创建IPPool
创建应用测试
设置hotspot方法如下:
网关路由器的网络参数如下:
WAN 口对应外网IP 为10.200.15.200/24,网关为10.200.15.1
LAN 口对应内网IP 为192.168.1.1/24
DNS:61.139.2.69
根据这些参数需要先配置好IP 地址、网关和DNS,并打开DNS 缓存等。
进入 ip address 配置IP 地址:
进入 ip route 配置网关:
进入 ip firewall nat 设置好NAT 伪装:
进入 ip dns 配置DNS 缓存:
总结配置Hotspot 参数的基本流程是:
1、先进入ip hotspot user profile 设置用户分组规则
2、然后在ip hotspot user 添加用户的帐号
3、进入ip hotspot server profile 配置服务器规则
4、在ip pool 中分配IP 地址段,根据需要启用DHCP 服务
5、在ip hotspot server 添加并启用hotspot 服务
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)