首页 > 其他分享 >K8S之Service

K8S之Service

时间:2024-08-23 14:18:03浏览次数:9  
标签:Service service nginx xx Pod K8S name

对于K8S整个集群来说,Pod地址是可变的。一个Pod因某些原因退出了,而其设置了副本数replicas大于1那么该Pod就会在集群的任意节点重新启动。重新启动后的Pod的IP与原IP地址不同,这样就不能根据Pod的IP来进行调度。于是K8S引入了Service概念,它为Pod提供了一个入口,主要通过Labels标签来选择后端Pod,不论Pod地址如何变更,只要Pod的Labels标签没变,那么就可以通过service来调度

三种模式

user space、 iptables、 ipvs

Service类型

  1. Cluster IP 通过集群内部IP暴露服务,只能通过集群内部访问,默认类型
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    nginx-service
spec:
  type: ClusterIP
  selector:   ##定义标签选择器,代理后端nginx-service的pod
    name: nginx-service    
  ports:
  - port: 8080  
  1. LoadBalance 使用云提供商的负载均衡器,可以向外部暴露服务。外部的负载均衡器可以路由到NodePort服务和Cluster IP服务
apiVersion: v1
kind: service
metadata:
  name: xx-service
spec:
  selector:
    app: APP
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9378
  clusterIP: xx.xx.xx.xx
  loadBalancerIP: x.x.x.x  
  type: LoadBalancer
status:
  loadBalance:
    ingress:
    - ip: a.a.a.a      
  1. NodePort node的基本的port,service可以通过NodeIP:NodePort访问service服务,NodePort会路由到ClusterIP 服务,这个ClusterIP 会通过请求自动创建
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    nginx-service
spec:
  type: NodePort
  selector:   ##定义标签选择器,代理后端nginx-service的pod
    name: nginx-service    
  ports:
  - port: 8080  
  1. ExternalName 通过返回CNAME和它的值,可以将服务映射到externalName字段的内容,没有任何类型代理被创建,用于访问集群内其他没有labels的Pod,也可以访问其他NameSpace里的service
apiVersion: v1
kind: Service
metadata:
  name: xx-service
  namespace: prod
spec:
  type: ExternalName
  externalName: xx.xx.xx.xx.com  

标签:Service,service,nginx,xx,Pod,K8S,name
From: https://www.cnblogs.com/codechange/p/17832364.html

相关文章

  • K8S之配置信息应用
    在K8S中,为容器提供预先定义好的数据,K8S支持四种volume:Secret、ConfigMap、DownloadAPI、ServiceAccountTokenSecret把Pod想要访问的加密数据存放到etcd中,然后可以在Pod容器通过挂载的方式访问secret里保存的数据一旦secret被创建,我们可以通过三种方式使用在创建Pod时,通过......
  • docker启动问题: Job for docker.service failed because the control process exited
    系统环境:centos7docker版本:Dockerversion26.1.4,build5650f9b问题:Jobfordocker.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusdocker.service"and"journalctl-xe"fordetails.使用systemctlstatus......
  • D3 k8s之pod共享网络和文件的实现原理
    》pod是一个逻辑概念,不是一个隔离的环境。引入pod目的是满足容器之间密切协作关系所需的环境,尤其是网络通信和文件共享的需求1、容器之间网络通信》 假设nginx应用程序启用了http_stub_status_module模块,以提供关于nginx运行状态的统计信息。同时,获取这些统计信息的访问路......
  • 【App Service】在App Service中配置Virtual applications and directories,访问目录中
    问题描述在AppServiceWindows的环境中,想一个AppServices下部署多个站点,比如/根目录下,从wwwroot中读取项目文件,而/files则通过配置的虚拟目录来读取\mounts\sitefiles目录中的静态文件。在AppService的 ConfigurationPathMapping中配置如下:通过Kudu查看AppService......
  • D2 k8s之pod存在的意义
    1、pod简介》 kubernetes提供的一系列资源和功能都是以pod为中心展开的,旨在高效的管理和编排这些pod》 pod是kubernetes中最小的调度单元,一个pod可以包含一个或多个容器,这些容器运行在同一节点上,从而可以实现共享网络、存储以及其他资源。这种涉及使得pod能够满足复杂的应用程序......
  • kubeadm升级k8s之1.23.17->1.24.17
    查看当前版本[root@k8s-master31~]#kubectlgetnodes-owideNAMESTATUSROLESAGEVERSIONINTERNAL-IPEXTERNAL-IPOS-IMAGEKERNEL-VERSIONCONTAINER-RUNTIMEk8s-master31Ready......
  • .NetCore里使用定时任务BackgroundService
    原文链接:https://blog.csdn.net/x1234w4321/article/details/140797306namespaceXCGWebApp.TimerService{///<summary>///后台定时任务///</summary>publicclassTimerBackgroundService:BackgroundService{protectedoverrid......
  • ASP.NET Core 6.0 ServiceCollection 实现依赖注入
    ASP.NETCore6lOC容器控制反转(InversionofControl,IoC)是一种软件设计模式,其目的是降低代码之间的耦合度。在C#中,可以使用依赖注入(DependencyInjection,DI)来实现控制反转。一般系统分为UI层、BLL层、DAL层、IBLL层和IDAL层,IOC实质是通过抽象IBLL(接口、抽象类......
  • k8s限制外部管理访问
    #允许控制节点iptables-AINPUT-smaster-node-ptcp--dport6443-jACCEPT#允许数据节点iptables-AINPUT-sdata-node-ptcp--dport6443-jACCEPT#允许k8s内部服务网段iptables-AINPUT-s10.40.0.0/16-ptcp--dport6443-jACCEPT#允许k8s内部POD网段iptab......
  • centos 7 部署k8s
    一、环境准备集群角色主机名操作系统IP地址内核Masterk8s-masterCentOSLinuxrelease7.9.2009(Core)172.16.99.713.10.0-957.el7.x86_64Nodek8s-node01CentOSLinuxrelease7.9.2009(Core)172.16.99.723.10.0-957.el7.x86_64Nodek8s-node02Cent......