第七章 Kubernetes 固定 Pod IP 地址方法

文章目录

  • 第七章 Kubernetes 固定 Pod IP 地址方法
  • 一、自定义 IP 地址池
    • 1、下载 calico 管理工具 calicoctl
    • 2、设置 IP 固定方式
    • 3、创建 IP 地址池
  • 二、以 redis-cluster 为例,来固定 Pod IP 地址的案例
    • 1、多个 Pod 固定 IP 地址池
      • 修改配置文件
      • 查看运行结果
    • 2、单个 pod 固定IP
  • 总结

一、自定义 IP 地址池

我部署的 Kubernetes 集群采用的网络组件是 calico ,这个需要下载 calico 管理工具 calicoctl 来创建自定义的地址池。

1、下载 calico 管理工具 calicoctl

curl -O -L  https://github.com/projectcalico/calicoctl/releases/download/v3.18.4/calicoctl
chmod +x calicoctl
cp calicoctl /usr/local/bin/

2、设置 IP 固定方式

修改配置文件 vim /etc/cni/net.d/10-calico.conflist,将 ipam 类型修改为 calico-ipam

3、创建 IP 地址池

### 查看现有地址池
[root@k8s-master-01 ~]# calicoctl get ippool
NAME                  CIDR            SELECTOR
default-ipv4-ippool   10.100.0.0/16   all()
### 设置地址池配置文件
### 创建第一个地址池
[root@k8s-master-01 ~]#  cat ippool1.yaml
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:name: new-pool1
spec:blockSize: 31cidr: 10.10.10.0/30     #这里设置的地址池可用 IP 的个数是四个,从 0--3ipipMode: AlwaysnatOutgoing: true
### 创建命令
calicoctl create -f ippool1.yaml ### 创建第二个地址池
[root@k8s-master-01 ~]#  cat ippool2.yaml
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:name: new-pool2
spec:blockSize: 31cidr: 10.10.10.4/31   #这里设置的地址池的可以 IP 是两个,分别是 4--5ipipMode: AlwaysnatOutgoing: true
### 创建命令 calicoctl create -f ippool2.yaml ### 查看现有地址池
[root@k8s-master-01 ~]# calicoctl get ippool
NAME                  CIDR            SELECTOR
default-ipv4-ippool   10.100.0.0/16   all()
new-pool1             10.10.10.0/30   all()
new-pool2             10.10.10.4/31   all()

二、以 redis-cluster 为例,来固定 Pod IP 地址的案例

实现的方案主要使用到 calico 组件的两个 Kubernetes 的注解:
1、cni.projectcalico.org/ipAddrs:单个pod固定IP
2、cni.projectcalico.org/ipv4pools:多pod固定IP池

1、多个 Pod 固定 IP 地址池

以上我创建的两个地址池就是为了 redis-cluster 准备的,我设置 redis-cluster 三主三从,以上的两个地址池可用的 IP 地址一共是 6 个,所以说尽管出现意外情况导致 Pod 重启,IP 地址发生变化,也是在集群中这个 6 个 IP 地址间变化,不会导致集群失败的情况。

修改配置文件

查看运行结果

可以看出,创建的 6 个 pod 的 IP 地址为0–5

[root@k8s-master-01 redis_6.2.4]# kubectl get pods -n judicial -o wide|grep redis
redis-cluster-0                1/1     Running   0          37h   10.10.10.5       k8s-work-03   <none>           <none>
redis-cluster-1                1/1     Running   0          37h   10.10.10.3       k8s-work-05   <none>           <none>
redis-cluster-2                1/1     Running   0          37h   10.10.10.2       k8s-work-02   <none>           <none>
redis-cluster-3                1/1     Running   0          37h   10.10.10.1       k8s-work-04   <none>           <none>
redis-cluster-4                1/1     Running   0          37h   10.10.10.0       k8s-work-01   <none>           <none>
redis-cluster-5                1/1     Running   0          37h   10.10.10.4       k8s-work-03   <none>           <none>

2、单个 pod 固定IP

单个 Pod 固定 IP 的方式很简单,只需要写入地址池中没有被使用的 IP 地址就可以。

总结

以上就是 Pod 固定 IP 的方法,在使用过程中可能会遇到 IP 没有释放等问题导致 pod 启动失败,导致这种原因可能是 pod 被删除后,使用的 IP 地址未被释放,所以需要使用以下命令对地址池的 IP 进行释放,才能够被 pod 重新使用。

### 释放已分配的 IP
calicoctl ipam release --ip 10.10.10.100

Kubernetes 固定 Pod IP 地址方法相关推荐

  1. linux下如何设置固定的ip地址?

    最近要为ARM开发板挂载nfs文件系统,但是总是因为忘记设置ip地址而导致内核不能正确进入控制台,故找到了将linux操作系统ip地址设为固定的ip地址方法. 打开/etc/network/inter ...

  2. Win10 Hyper-V 固定虚拟机IP地址的方法

    Windows10系统Hyper-V中存在着一个名为"Default Switch"的缺省虚拟交换机,其本质上是一块虚拟网卡,其所连接的虚拟网络的类型为"Internal ...

  3. docker-compose 固定容器IP地址

    写在前面 构建微服务的时候需要固定容器的ip,防止后期重启后ip变动. 本来说在portainer里面固定的ip,虽然效果挺好的,但是还是想写在docker-compose里面. 这里提供两种方法固定 ...

  4. 安卓手机修改IP地址方法全解析

    常见修改安卓手机IP地址的方法 1.使用静态IP地址 静态IP地址是指手动设置一个固定的IP地址,以便在每次连接网络时都能使用相同的IP地址.在安卓手机上,用户可以通过以下步骤设置静态IP地址: (1 ...

  5. python在windows和linux_python在windows和linux下获得本机本地ip地址方法小结

    本文实例总结了python在windows和linux下获得本机本地ip地址方法.分享给大家供大家参考.具体分析如下: python的socket包含了丰富的函数和方法可以获得本机的ip地址信息,so ...

  6. android 获取网卡mac_Android获取本机Mac地址及IP地址方法

    1.Android  获取本机Mac 地址方法: 需要在AndroidManifest.xml文件中添加权限: public String getLocalMacAddress() { WifiMan ...

  7. mac系统访问群晖服务器地址,获取发现访问 U-NAS 系统管理中心 IP 地址方法

    摘要:方法一:系统自带显示系统开机运行后,在访问U-NAS管理中心界面会出现访问地址IP具体位置再在 To visit U-NAS Management Center: 的下方,红色边框区域内为U-N ...

  8. linux配置虚拟IP地址方法

    linux配置虚拟IP地址方法 在日常linux管理工作中,需要为应用配置单独的IP地址,以达到主机与应用的分离,在应用切换与迁移过程中可以做到动态切换,特别是在使用HA的时候,这种方案可以保证主机与 ...

  9. Linux服务器配置静态IP地址方法

    Linux服务器设置静态IP地址方法 动态获取ip地址使用起来的确很方便,但是如果是提供服务的机器,如果ip地址总是变化的化,会影响使用,这个时候就需要给服务器设置静态ip地址了 以操作系统版本为ce ...

最新文章

  1. 研究速递:老年人的心智能力不一定在衰减,抗干扰的能力会更强
  2. Delphi中将DBGRID中的内容输出到WORD中
  3. linux VM映像chroot注入修改root密码
  4. 3 Useful BookmarkLets for Debugging
  5. java 数组 参数 ppt,Java自学课件-数组.ppt
  6. Python:langdetect和langid检测语言类型
  7. 使用OpenCV进行相机标定
  8. 笔记:Microservices for Java Developers
  9. java原理—反射机制
  10. __name__ == '__main__'
  11. php socket_create_listen(),socket_create_listen()
  12. 解决pandas不计算/不保存运算结果/数值不变的问题
  13. 【编程开发】 C与C++中的关于函数指针的强制类型转换与指针函数的关系
  14. 6. Python基础:输入输出语句介绍
  15. 使用 webservice 实现 RPC 调用
  16. 别以透明的名义降低人工智能的能力
  17. SQL中is not null和!=“ “的区别
  18. 2023年北京邮电大学计算机考研信息汇总
  19. 【学习日志】2022.10.16 万用头文件 sstream C++进制转换
  20. Windows远程桌面服务漏洞(CVE-2019-0708)复现测试

热门文章

  1. 计算机组成原理页表长度,清华计算机组成原理习题课课件习题课1-7.ppt
  2. 原理图中的电阻旁边有个”NC“,什么意思?
  3. 修改web服务器的缺省旗标,tomcat撤销server信息(改变您的HTTP服务器的缺省banner)...
  4. 如何下载台湾的硕博论文--大陆的论文不给力呀
  5. 数字化经济能力:产品原型展示
  6. Linux基础第二部分。done
  7. LDPC码Gallager论文解读
  8. android 指定区域内绘制,Android实现扫一扫功能之绘制指定区域透明区域
  9. HTML5期末大作业:电商购物网站设计——电商购物网站设计(55页) 电商网页设计制作 简单静态HTML网页作品 购物网页作业成品 学生商城网站模板
  10. BeatBox终极版——Head first java 650