码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • k8s——5、service


    文章目录

    • service简介
    • 使用iptables处理service
    • 使用ipvs模式的service
      • service的类型
        • ClusterIP类型
        • NodePort类型
        • LoadBalancer类型
        • headless
        • ExternalName类型


    使用阿里云主机ECS,
    四台主机信息如下:
    server1 — 私网IP:10.0.0.2 ----公网IP: 47.108.54.185 ---- 搭建docker仓库harbor
    server2 — 私网IP:10.0.0.3 ----公网IP: 47.108.144.231 ---- k8s集群主节点
    server3 — 私网IP:10.0.0.4 ----公网IP: 47.108.115.206 ---- k8s集群节点
    server4 — 私网IP:10.0.0.5 ----公网IP: 47.108.28.42 ---- k8s集群节点

    参考:
    https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/
    https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands官网文档

    service简介

    • Service可以看作是一组提供相同服务的Pod对外的访问接口。借助Service,应用可以方便的实现服务发现和负载均衡

    • Service默认只支持4层负载均衡能力,没有7层功能(可以通过Ingress实现)

    • Service的类型:
      ClusterIP:默认值,k8s系统给Service自动分配的虚拟IP,只能在集群内部访问。
      NodPort:将Service通过指定的集群节点上的端口暴露给外部,访问任意一个NodelP:nodePort都将路由到ClusterIP。
      Loadalancer:在Nodeort的基础上,借助cloud provider创建一个外部的负载均衡器,并将请求转发到:NodePort,此模式只能在云服务器上使用。
      ExternaName:将服务通过DNS CNAME记录方式转发到指定的域名(通过spec.extemINAME设定)

    由于Pod会随时起停,所以分配固定IP不合适。且直接将容器地址暴露给外网也是不安全的做法。所以,在这中间,就需要Service来实现

    • Service是由kube-proxy组件,加上iptables来共同实现的
    • kube-proxy通过iptables处理Service的过程,需要在宿主机上设置相当多的iptables规则,如果宿主机有大量的Pod,不断刷新iptables规则,会消耗大量的CPU资源
    • IPVS模式的Service,可以使k8s集群支持更多量级的Pod

    开启kube-proxy的ipvs模式:
    yum install -y ipvsadm #所有节点安装
    kubectl edit cm kube-proxy -n kube-system #修改IPVS模式

    使用iptables处理service

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    使用ipvs模式的service

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    service的类型

    ClusterIP类型

    在这里插入图片描述
    在这里插入图片描述

    NodePort类型

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    LoadBalancer类型

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述私有仓库需要先拉取metallb镜像
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    headless

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    ExternalName类型

    生产环境中,有很多业务是部署在集群之外的。从服务的角度来说,有些服务是部署在集群内的,有些是部署在集群外的。在访问外部服务的时候,如果外部服务的接口变动了该如何处理呢?那么可以使用服务的ExternalName类型。
    本质就是添加dns解析记录

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    android10.0(Q) MTK 6765 user版本打开root权限
    YOLOV5/YOLOV7/YOLOV8改进:用于低分辨率图像和小物体的新 CNN 模块SPD-Conv
    python爬虫(数据获取——selenium)
    Django 请求与相应实例及解决表单返回403问题方法
    外贸独立站开发功能分析
    【OpenGauss 列存储学习总结 2】
    面试必备:聊聊分布式锁的多种实现!
    【HCIA】生成树
    洛谷 P4440 [COCI2017-2018#3] Programiranje
    【计算机毕业设计】32.学生宿舍管理系统源码
  • 原文地址:https://blog.csdn.net/qq_43604376/article/details/124974229
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号