• k8s笔记——kubernetes中的三种IP


    kubernetes概念

    Master:集群控制节点,每个集群需要至少一个master节点负责集群的管控

    Node:工作负载节点,由master分配容器到这些node工作节点上,然后node节点上的docker负责容器的运行

    Pod:kubernetes的最小控制单元,容器都是运行在pod中的,一个pod中可以有1个或者多个容器

    Controller控制器,通过它来实现对pod的管理,比如启动pod、停止pod、伸缩pod的数量等等

    Service:pod对外服务的统一入口,下面可以维护者同一类的多个pod

    Label:标签,用于对pod进行分类,同一类pod会拥有相同的标签

    NameSpace:命名空间,用来隔离pod的运行环境

    kubernetes中的三种IP

    Kubernetes 系统中的三种IP

    • Node IP:Node 节点的 IP 地址
    • Pod IP: Pod 的 IP 地址
    • Cluster IP: Service 的 IP 地址

    首先,Node IP 是 Kubernetes 集群中节点的物理网卡 IP 地址(一般为内网),所有属于这个网络的服务器之间都可以直接通信,所以 Kubernetes 集群外要想访问 Kubernetes 集群内部的某个节点或者服务,肯定得通过 Node IP 进行通信(这个时候一般是通过外网 IP 了)

    然后 Pod IP 是每个 Pod 的 IP 地址,它是网络插件进行分配的,前面我们已经讲解过

    最后 Cluster IP 是一个虚拟的 IP,仅仅作用于 Kubernetes Service 这个对象,由 Kubernetes 自己来进行管理和分配地址。

    Service的资源清单文件:

    kind: Service  # 资源类型
    apiVersion: v1  # 资源版本
    metadata: # 元数据
      name: service # 资源名称
      namespace: dev # 命名空间
    spec: # 描述
      selector: # 标签选择器,用于确定当前service代理哪些pod
        app: nginx
      type: # Service类型,指定service的访问方式
      clusterIP:  # 虚拟服务的ip地址
      sessionAffinity: # session亲和性,支持ClientIP、None两个选项
      ports: # 端口信息
        - protocol: TCP 
          port: 3017  # service端口
          targetPort: 5003 # pod端口
          nodePort: 31122 # 主机端口
    
    • ClusterIP:默认值,它是Kubernetes系统自动分配的虚拟IP,只能在集群内部访问
    • NodePort:将Service通过指定的Node上的端口暴露给外部,通过此方法,就可以在集群外部访问服务
    • LoadBalancer:使用外接负载均衡器完成到服务的负载分发,注意此模式需要外部云环境支持
    • ExternalName: 把集群外部的服务引入集群内部,直接使用
  • 相关阅读:
    【C++笔试强训】第二十一天
    Fast-dds window编译问题(卡在Asio, Tinyxml2)
    pdf提取其中一页,怎么实现?
    在浏览器输入url到页面展示出来
    亮点“剧透”丨一年一度的开发者盛会观看指南
    CentOS安装kafka单机部署
    Linux SHELL脚本编程
    SpringCloud Sentinel 使用
    x265线程池机制和并行编码机制分析
    Linux Shell 实现密码掩码输入
  • 原文地址:https://blog.csdn.net/e891377/article/details/139302000