首页 > 其他分享 >k8s service资源

k8s service资源

时间:2023-05-10 10:57:12浏览次数:28  
标签:service Service 模型 代理 proxy Pod k8s 资源 name


在Kubernetes中,Service资源是一种抽象的逻辑概念,它定义了一组Pod的访问方式,为Pod提供稳定的DNS名称和IP地址,通过代理(Proxy)的方式向应用程序终端用户提供可靠的访问。

Service资源对象提供了以下功能:

  1. 为一组具有相同功能但可能在不同Pod或节点中的Pod提供一个稳定的虚拟IP地址和DNS名称。
  2. 负责流量负载均衡,实现将请求分配到后端Pod上的算法。
  3. 可以控制访问Kubernetes服务的入口和出口。

Service资源类型

Service资源对象有四种类型:ClusterIP、NodePort、LoadBalancer、ExternalName。

  1. ClusterIP类型:创建一个虚拟IP地址,供集群内部其他Pod或Service使用,实现同一namespace内部的服务访问。创建样例如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: myservice
    spec:
      selector:
        app: MyApp
      ports:
      - name: http
        protocol: TCP
        port: 80
        targetPort: 8080
      type: ClusterIP

     

  2. NodePort类型:映射一个固定端口到Service的一个端口上,实现集群外部对服务的访问。通过此类型可以实现对集群内部某个服务的暴露。创建样例如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: myservice
    spec:
      selector:
        app: MyApp
      ports:
      - name: http
        protocol: TCP
        port: 80
        targetPort: 8080
      type: NodePort

     

  3. LoadBalancer类型:在Cloud Provider上创建一个负载均衡器,将Service的请求流量分发到后端Pod上。只有按需云(例如AWS、Azure等)支持的类型,适用于云环境。创建样例如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: myservice
    spec:
      selector:
        app: MyApp
      ports:
      - name: http
        protocol: TCP
        port: 80
        targetPort: 8080
      type: LoadBalancer

     

  4. ExternalName类型:映射一个Service到其他的DNS服务器上,主要用于访问集群外的服务。创建样例如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: my-database
    spec:
      type: ExternalName
      externalName: database.example.com

     

kube-proxy代理模型

kube-proxy是Kubernetes集群用于实现问请求代理到后端的Pod的一个组件。kube-proxy提供的代理模型包括三种:userspace、iptables和ipvs。

  1. userspace模型:kube-proxy将Service的请求流量通过userspace进程进行转发。当userspace进程接收到请求后,会将请求转发至后端的Pod。这种模型具有广泛的兼容性,并且稳定性较高,因为这种代理模型需要在用户空间和内核之间切换,其性能比其他代理模型略低;在Kubernetes 1.2版本之前,userspace是默认的代理模型

  2. iptables模型:创建Service对象的操作会触发kube-proxy创建相应的iptables规则来代理Service的请求。这种模型的性能比userspace模型更高。iptables模型是Kubernetes 1.2版本以后默认使用的代理模型;

  3. ipvs模型:kube-proxy使用ipvs代理后端Pod的请求,可以实现更高效的负载均衡功能。ipvs模型需要安装ipvs和ipset两个工具包,并且在内核中需要开启ipvs模块,因此相对来说安装和配置较为复杂,但具有非常高的性能。

在实际的生产环境中,用户可以根据实际的需求选择不同的代理模型,以满足不同的性能和可靠性要求。除此之外,kube-proxy还支持设置其他参数来优化代理性能、实现会话保持等功能。

标签:service,Service,模型,代理,proxy,Pod,k8s,资源,name
From: https://www.cnblogs.com/bad-joker/p/17387291.html

相关文章

  • Kubernetes概述 (一篇教你认识k8s)
    一、Kubernetes概述 1.k8s是什么K8S的全称为Kubernetes(K12345678S),PS:“嘛,写全称也太累了吧,不如整个缩写”。作用:用于自动部署、扩展和管理“容器化(containerized)应用程序"的开源系统。可以理解成K8S是负责自动化运维管理多个容器化程序(比如Docker)的集群,是一......
  • 下篇:使用jenkins发布go项目到k8s,接上篇的手工体验改造为自动化发布
    写在开篇关于上篇本篇在 《上篇:带你手工体验从写代码、编译、打包镜像、部署到K8S的全过程》 的基础上,将手动的过程通过jenkins工具将其改造成自动化。环境准备我的环境说明:组件安装方式访问IP访问端口jenkinsdocker192.168.11.2548086gitlabdocker192......
  • k8s教程
    1minikube安装minikube官网:https://minikube.sigs.k8s.io/docs/start/我们在centos系统下安装首先我们需要安装docker,这里略下载rpm包curl-LOhttps://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm安装rpm-Uvhminikube-latest.x86_......
  • ReactHub:我用 ChatGPT 搞了一个 React 的资源导航网站,谁有我用心啊!
    大家好,我是DOM哥。图谱年年有,今年我来盘!之前已经盘完了Vue的技术图谱,今天来盘React的。我用ChatGPT开发了一个React的资源导航网站。不管你是资深React用户,还是刚入门想学习React的小白,这个网站都能帮助到你。网站地址:https://dombro.site/react#/react项目托管......
  • 假期充电,用阿里云 Serverless K8s + AIGC 搭建私人代码助理
    作者:子白、冬岛AI技术正在引领科技创新浪潮,随着ChatGPT和Midjourney的走红,AIGC技术正在世界范围内掀起一股AI技术浪潮。开源领域也涌现了许多类似模型,如FastGPT、Moss、StableDiffusion等。这些模型展现出的惊人效果吸引企业和开发者们投身其中,但是复杂繁琐的部署方式......
  • java.lang.IllegalStateException: Failed to check the status of the service 的解
    参考资料java.lang.IllegalStateException:Failedtocheckthestatusoftheservice的解决办法_Hello_World_QWP的博客-CSDN博客环境条件springcloud,注册中心用的是zookeeper;报错原因@ReferenceprivateXXXServicexxxService;解决方法@Refe......
  • spark资源动态调整--内容搬运,周知
    动态资源分配Spark的动态资源分配就是executor数据量的动态增减,具体的增加和删除数量根据业务的实际需要动态的调整。具体表现为:如果executor数据量不够,则增加数量,如果executor在一段时间内空闲,则移除这个executor。动态增加executor配置项:spark.dynamicAllocation.schedulerB......
  • android.app.BackgroundServiceStartNotAllowedException
    ---------beginningofcrash05-0901:25:24.46521872187EAndroidRuntime:FATALEXCEPTION:main05-0901:25:24.46521872187EAndroidRuntime:Process:com.android.gallery3d,PID:218705-0901:25:24.46521872187EAndroidRuntime:java.lang.Runti......
  • k8s容器资源需求与资源限制
    在Kubernetes中,我们可以通过为容器定义资源需求和限制来管理容器的资源使用。资源需求(ResourceRequests):指容器在调度和运行时需要的最小资源。当定义了资源需求后,Kubernetes会根据该需求进行调度,安排节点资源。如果节点不能满足指定的需求,Pod将不会被调度。资源需求包括:CP......
  • 如何灵活运用Linux 进程资源监控和进程限制
    报告Linux进程统计信息你可以使用 mpstat 单独查看每个处理器或者系统整体的活动,可以是每次一个快照或者动态更新。为了使用这个工具,你首先需要安装 sysstat:#yumupdate&&yuminstallsysstat[基于CentOS的系统]#aptitutdeupdate&&aptitudeinst......