在 Kubernetes (k8s) 中,apiserver 的 IIP和 VIP的区别

在 Kubernetes (k8s) 中,apiserver 的 IIP(Internal IP) 和 VIP(Virtual IP) 是与集群网络通信和高可用性设计相关的两个重要概念。

  1. IIP(Internal IP)
    定义:
    IIP 是 apiserver 所在节点的内部网络 IP 地址,通常是集群内部网络中用于通信的私有 IP。
    作用:
    集群内的组件(如 kubelet、kube-proxy、controller-manager 等)通过 IIP 与 apiserver 通信。
    在单节点或非高可用场景下,客户端(如 kubectl)也可能直接通过 IIP 访问 apiserver。
    特点:
    通常是静态分配的私有 IP,例如 192.168.x.x 或 10.x.x.x。
    依赖于节点网络配置,节点重启或网络变更可能导致 IIP 变化。

  2. VIP(Virtual IP)
    定义:
    VIP 是一个虚拟的 IP 地址,通常由负载均衡器(如 HAProxy、Keepalived)或云服务提供商的负载均衡服务分配。
    作用:
    在高可用(HA)场景下,多个 apiserver 实例部署在不同的节点上,VIP 提供一个统一的访问入口。
    客户端(如 kubectl、kubelet)通过 VIP 访问 apiserver,负载均衡器将请求转发到可用的 apiserver 实例。
    特点:
    VIP 是动态的,不依赖于某个具体节点的 IIP。
    当某个 apiserver 节点故障时,负载均衡器会自动将流量切换到其他健康节点,确保高可用性。

  3. IIP 与 VIP 的对比
    特性 IIP VIP
    定义 节点内部网络 IP 虚拟 IP,负载均衡器分配
    作用范围 集群内部通信 外部客户端访问、高可用场景
    依赖性 节点网络配置,可能变化 负载均衡器,独立于节点网络
    高可用性 无 有,支持故障切换
    使用场景 单节点、开发测试环境 多节点、生产环境

  4. 实际应用场景
    单节点集群:
    在单节点或非高可用场景下,客户端直接通过节点的 IIP 访问 apiserver。
    多节点高可用集群:
    部署多个 apiserver 实例,每个实例绑定一个唯一的 IIP。
    使用负载均衡器(如 HAProxy + Keepalived)配置一个 VIP。
    客户端通过 VIP 访问 apiserver,负载均衡器实现流量分发和故障切换。
    云环境:
    在云平台(如 AWS、GCP、Azure)上,通常使用云服务提供的负载均衡器(如 ELB、NLB)分配 VIP,客户端通过 VIP 访问 apiserver。

  5. 配置示例
    使用 HAProxy + Keepalived 配置 VIP
    安装 Keepalived:
    配置 Keepalived 管理 VIP,实现故障切换。

    vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
    auth_type PASS
    auth_pass yourpassword
    }
    virtual_ipaddress {
    192.168.1.100 # VIP 地址
    }
    }

安装 HAProxy:

配置 HAProxy 将流量转发到多个 apiserver 的 IIP。

复制代码
frontend k8s-api
    bind 192.168.1.100:6443  # 绑定 VIP
    default_backend apiservers
 
backend apiservers
    balance roundrobin
    server node1 192.168.1.101:6443 check
    server node2 192.168.1.102:6443 check

客户端配置:

将 kubectl 的配置指向 VIP:

复制代码
clusters:
- cluster:
    server: https://192.168.1.100:6443
  name: kubernetes
  1. 总结
    IIP 是节点内部网络 IP,适用于单节点或非高可用场景。
    VIP 是虚拟 IP,通过负载均衡器提供高可用访问,适用于多节点生产环境。
    在高可用集群中,推荐使用 VIP 访问 apiserver,以提高可靠性和可维护性。
    通过合理配置 IIP 和 VIP,可以确保 Kubernetes 集群的稳定运行和高效管理
相关推荐
不开心就吐槽2 小时前
docker-compose方式快速安装MySQL
运维·docker·容器
芥子沫2 小时前
Docker安装思源笔记&使用指南
笔记·docker·容器·思源笔记
行思理2 小时前
macos 下 docker使用方法 新手教程
macos·docker·容器
团儿.2 小时前
Docker Swarm:打造高效、可扩展的容器编排引擎,引领微服务新纪元(上)
docker·微服务·容器·docker-swarm集群
small_white_robot3 小时前
vulnerable_docker_containement 靶机
运维·网络·web安全·网络安全·docker·容器
橙色云-智橙协同研发3 小时前
PLM实施专家宝典:离散制造企业工程变更的“流程金融”方案
云原生·解决方案·plm·国产plm·产品服务·工程方案·工程变更
丈剑走天涯5 小时前
kubernetes 源码编译(ubuntu) kubernetes-1.34.1
java·容器·kubernetes·1024程序员节
..Move...5 小时前
基于VMware和Cent OS的Docker Engine安装与配置
运维·docker·容器
信仰_2739932435 小时前
Eureka 多层缓存机制详解
缓存·云原生·eureka
路漫漫其修远兮sjw5 小时前
常用docker命令速查表
运维·docker·容器·模型部署