一、Service简介

  • Service为Pod提供固定服务端点
  • Service的本质是一条iptables或者ipvs的转发规则
  • userspace:1.1-
  • iptables:1.1+
  • ipvs:1.11+

二、Service类型

  • ExternalName
  • ClusterIP:使用集群网络提供服务
  • NodePort:直接使用节点网络提供服务
  • LoadBalancer:例如k8s构建在阿里云上,可以直接使用阿里云提供的SLB服务

三、使用清单创建service

  • ClusterIP类型:通过svc的IP访问
# cat redis-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: redis-svc
namespace: default
spec:
selector: #支持等值选择器
app: redis
role: logstor
clusterIP: 10.99.99.99 #客户不指定,会自动分配
type: ClusterIP
ports:
- port: 6379 #Service端端口
targetPort: 6379 #Pod端端口
  • NodePort类型:通过访问node的IP访问
# cat myapp-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
namespace: default
spec:
selector: #支持等值选择器
app: myapp
release: canary
clusterIP: 10.99.99.100
type: NodePort
ports:
- port: 80 #Service端端口
targetPort: 80 #Pod端端口
nodePort: 10080 #节点端端口,端口范围:30000-32767

四、资源记录

  • SVC_NAME.NS_NAME.DOMAIN.LTD. :资源记录格式
  • svc.cluster.local. :默认域名后缀
  • redis-svc.default.svc.cluster.local. :以上redis-svc的资源记录endpoint

五、回话粘性

# kubectl patch svc myapp-svc -p '{"spec":{"sessionAffinity":"ClientIP"}}'  #来自同一个IP的客户端调度到同一个pod,默认none

六、无头Service(Headless)

  • 正常的service:service_name --> cluster_ip
  • 无头的service:service_name --> pod_ip
# cat myapp-svc-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-svc-headless
namespace: default
spec:
selector:
app: myapp
release: canary
clusterIP: "None"
ports:
- port: 80
targetPort: 80
# dig -t A myapp-svc-headless.default.svc.cluster.local. @10.244.0.2 #10.244.0.2为coreDNS的地址,可以解析到myAPP的pod的所以ip

七、开启kubernetes支持ipvs

# vim /etc/sysconfig/kubelet
KUBE_PROXY_MODE=ipvs 开机装载ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4模块

7、kubernetes资源清单之Service资源190714的更多相关文章

  1. 6、kubernetes资源清单之Pod控制器190714

    一.Pod控制器的类别 ReplicationController:早期唯一的控制器,已废弃 ReplicaSet:控制Pod满足用户期望副本:标签选择器选择由自己管理的Pod副本:Pod资源模板完成 ...

  2. (七)Kubernetes Service资源

    Service概述 为什么要使用Service Kubernetes Pod是平凡的,由Deployment等控制器管理的Pod对象都是有生命周期的,它们会被创建,也会意外挂掉.虽然它们可以由控制器自 ...

  3. Kubernetes 学习10 Service资源

    一.Service对应组件关系 1.在kubernetes平台之上,pod是有生命周期的,所以为了能够给对应的客户端提供一个固定的访问端点,因此我们在客户端和服务Pod之间添加一个固定的中间层,这个中 ...

  4. kubernetes 资源清单定义入门

    k8s中的资源 什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet Deploymen ...

  5. k8s资源清单基础

    资源清单介绍 创建资源的方法  apiserver仅接收JSON格式的资源定义  yaml格式提供配置清单 apiserver可自动把yaml转换成json格式数据 资源清单五个一级字段   1.ap ...

  6. 1.k8s概述、安装、名词解释、资源清单

    一.k8s概述 1.简介 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernete ...

  7. kubernetes系列08—service资源详解

    本文收录在容器技术学习系列文章总目录 1.认识service 1.1 为什么要使用service Kubernetes Pod 是有生命周期的,它们可以被创建,也可以被销毁,然而一旦被销毁生命就永远结 ...

  8. kubernetes系列06—kubernetes资源清单定义入门

    本文收录在容器技术学习系列文章总目录 1.认识kubernetes资源 1.1 常用资源/对象 workload工作负载型资源:pod,ReplicaSet,Deployment,StatefulSe ...

  9. Kubernetes学习之路(十)之资源清单定义

    一.Kubernetes常用资源 以下列举的内容都是 kubernetes 中的 Object,这些对象都可以在 yaml 文件中作为一种 API 类型来配置. 类别 名称 工作负载型资源对象 Pod ...

随机推荐

  1. python:enumerate 函数

    说明 enumerate()是python的内置函数: 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 多用于 ...

  2. Git复习(十一)之常见命令用法

    创建版本库 git init 进入一个文件,执行该命令此时目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了. ...

  3. Delphi 触发异常的方法

  4. deployment控制pod进行滚动更新以及回滚

    更新pod镜像两种方式: 方式一:kubectl set image deployment/${deployment name} ${container name}=${image} 例: kubec ...

  5. php页面禁用错误报告

    //禁用错误报告 error_reporting(0);#or ini_set("display_errors","Off"); //开启错误报告 ini_se ...

  6. hihocoder1384/CH0601 Genius ACM[贪心+倍增+归并排序]

    提交地址. 关于lyd给的倍增方法,即从当前枚举向后的$2^k$长度($k$从$1$开始),如果可行就将$k$加一以扩大范围,不可行时将范围不断减半直至$0$. 举个例子,假设当下在1,目标答案是13 ...

  7. Android 热修复 Tinker platform 中的坑,以及详细步骤(二)

    操作流程: 一.注册平台账号: http://www.tinkerpatch.com 二.查看操作文档: http://www.tinkerpatch.com/Docs/SDK 参考文档: https ...

  8. 自定义Vue组件

    自定义Vue组件的三步骤 1.创建组件 2.注册组件 3.使用组件 创建组件 //创建组件 var myclock = { data(){ return { clock: new Date().toL ...

  9. 阿里云服务器(Linux)上打开新端口

    1.配置安全组: 2.开放防火墙规则 查看想开的端口是否已开 # firewall-cmd --query-port=8888/tcp    提示no表示未开 开永久端口号 firewall-cmd ...

  10. 计算机网络(八),TCP的滑动窗口

    目录 1.RTT和RTO 2.TCP使用滑动窗口做流量控制与乱序重排 3.滑动窗口的基本原理 八.TCP的滑动窗口 TCP头部中的窗口字段:滑动窗口大小,用来告知发送端接受端的缓存大小,以此控制发送端 ...