025.掌握Service-SVC基础使用
一 Service简介
1.1 Service概念
1.2 Service定义详解
- 1 apiVersion: v1 #必须,api版本
- 2 kind: Service #必须,类型为Service
- 3 metadata: #必须,元数据
- 4 name: string #必须,Service名称
- 5 namespace: string #必须,命名空间,默认为default
- 6 labels: #自定义标签属性列表
- 7 - name: string
- 8 annotations: #自定义注解属性列表
- 9 - name: string
- 10 spec: #必须,详细描述
- 11 selector: [] #必须,Label Selector配置
- 12 type: ClusterIP #必须,Serice类型,详见如下
- 13 sessionAffinity: string #虚拟服务IP地址,当选择type=ClusterIP时,若不指定,则系统进行自动分配;当type=LoadBalancer时,需要指定
- 14 ports: #Service需要暴露的端口列表
- 15 - name: string #端口名称
- 16 protocol: #端口协议,支持TCP和UDP,默认为TCP
- 17 port: int #服务监听的端口号
- 18 targetPort: 8080 #需要转发到后端Pod的端口号
- 19 nodePort: int #当spec.type=NodePort时,指定映射到物理机的端口号
- 20 status: #当spec.type=LoadBalancer时,设置外部负载均衡的地址,用于公有云
- 21 loadBalancer: #外部负载均衡器
- 22 ingress: #外部负载均衡器
- 23 ip: string #外部负载均衡器的IP地址
- 24 hostname: string #外部负载均衡器的主机名
- ClusterIP:虚拟的服务IP地址,该地址用于Kubernetes集群内部的Pod访问,在Node上kube-proxy通过设置的iptables规则进行转发;
- NodePort:使用宿主机的端口,使能够访问各Node的外部客户端通过Node的IP地址和端口号就能访问服务;
- LoadBalancer:使用外接负载均衡器完成到服务的负载分发,需要在spec.status.loadBalancer字段指定外部负载均衡器的IP地址,并同时定义nodePort和clusterIP,用于公有云。
二 Service基本使用
2.1 Service的基本用法
- [root@k8smaster01 study]# cat webapp-rc.yaml
- 1 apiVersion: v1
- 2 kind: ReplicationController
- 3 metadata:
- 4 name: webapp
- 5 spec:
- 6 replicas: 2
- 7 template:
- 8 metadata:
- 9 name: webapp
- 10 labels:
- 11 app: webapp
- 12 spec:
- 13 containers:
- 14 - name: webapp
- 15 image: tomcat
- 16 ports:
- 17 - containerPort: 8080
- 1 apiVersion: v1
- 2 kind: Service
- 3 metadata:
- 4 name: webappservice
- 5 spec:
- 6 ports:
- 7 - port: 8081
- 8 targetPort: 8080
- 9 selector:
- 10 app: webapp
- Service负载分发策略:RoundRobin和SessionAffinity
- RoundRobin:轮询模式,即轮询将请求转发到后端的各个Pod上。
- SessionAffinity:基于客户端IP地址进行会话保持的模式,即第1次将某个客户端发起的请求转发到后端的某个Pod上,之后从相同的客户端发起的请求都将被转发到后端相同的Pod上。
2.2 多端口Service
- 1 apiVersion: v1
- 2 kind: Service
- 3 metadata:
- 4 name: webapp
- 5 spec:
- 6 ports:
- 7 - port: 8080
- 8 targetPort: 8080
- 9 name: web
- 10 - port: 8005
- 11 targetPort: 8005
- 12 name: management
- 13 selector:
- 14 app: webapp
- 1 apiVersion: v1
- 2 kind: Service
- 3 metadata:
- 4 name: kube-dns
- 5 namespace: kube-system
- 6 labels:
- 7 k8s-app: kube-dns
- 8 kubernetes.io/cluster-service: "true"
- 9 kubernetes.io/name: "KubeDNS"
- 10 spec:
- 11 selector:
- 12 k8s-app: kube-dns
- 13 clusterIP: 169.169.0.100
- 14 ports:
- 15 - name: dns
- 16 port: 53
- 17 protocol: UDP
- 18
- 19 - name: dns-tcp
- 20 port: 53
- 21 protocol: TCP
2.3 外部服务Service
- 1 apiVersion: v1
- 2 kind: Service
- 3 metadata:
- 4 name: my-service
- 5 spec:
- 6 ports:
- 7 - protocol: TCP
- 8 port: 80
- 9 targetPort: 80
- 1 apiVersion: v1
- 2 kind: Endpoints
- 3 metadata:
- 4 name: my-service
- 5 subsets:
- 6 - addresses:
- 7 - IP: 47.96.145.131
- 8 ports:
- 9 - port: 80
三 Headless Service
3.1 无头服务简介
3.2 Nginx场景实验
- 1 apiVersion: v1
- 2 kind: Service
- 3 metadata:
- 4 labels:
- 5 name: nginx-svc
- 6 name: nginx-svc
- 7 spec:
- 8 ports:
- 9 - protocol: TCP
- 10 port: 80
- 11 targetPort: 80
- 12 selector:
- 13 name: nginx-demo #定义selector
- 14 clusterIP: None
- 1 apiVersion: apps/v1
- 2 kind: Deployment
- 3 metadata:
- 4 labels:
- 5 name: nginx-demo
- 6 name: nginx-demo
- 7 spec:
- 8 replicas: 2
- 9 selector:
- 10 matchLabels:
- 11 name: nginx-demo
- 12 template:
- 13 metadata:
- 14 labels:
- 15 name: nginx-demo
- 16 spec:
- 17 containers:
- 18 - name: nginx
- 19 image: nginx:1.7.9
- 20 ports:
- 21 - containerPort: 80
- 22 name: web
025.掌握Service-SVC基础使用的更多相关文章
- WCF 在VS中,添加服务引用,地址输入http://ip/Service.svc,点击前往,提示错误,内容如下:
WCF的service端的webconfig如下: <?xml version="1.0"?> <configuration> <system.ser ...
- 025 01 Android 零基础入门 01 Java基础语法 03 Java运算符 05 if条件结构
025 01 Android 零基础入门 01 Java基础语法 03 Java运算符 05 if条件结构 本文知识点:Java中的if条件结构语句 关系运算符回顾 生活中根据条件进行判断采取不同操作 ...
- Service Worker基础知识整理
Service Worker是什么 service worker 是独立于当前页面的一段运行在浏览器后台进程里的脚本.它的特性将包括推送消息,背景后台同步, geofencing(地理围栏定位),拦截 ...
- .NET基础拾遗(7)Web Service的开发与应用基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...
- Windows Azure Service Bus (1) 基础
<Windows Azure Platform 系列文章目录> 我们在基于Windows Azure进行云端开发的时候,云端的软件通常都需要与其他软件进行交互.这些其他软件可能包括其他In ...
- Android Service基础
Service Service 是一个组件,用来执行长时间的后台操作,不提供用户界面. 另一个应用组件可以启动一个Service,它将持续地在后台运行,即便是用户转移到另一个应用它也不会停止. 另外, ...
- Web service基础
Web service是Web应用程序 平台是XML+http XML是不同平台和不同编程语言之间的语言,用于编解码数据. http是因特网协议 XML是web service的基础 Web serv ...
- Angularjs基础教程
Angularjs-基础教程 一些angualr的基础概念,适合入门. 1.下载 推荐 bower 或 npm 安装. bower install angular bower install angu ...
- WCF实现RESTFul Web Service
共同学习了前面一些概念,终于开始正题了哈.RESTful的Web Service调用直观,返回的内容容易解析.这里先会描述一个简单的场景--Web Service提供一个方法来搜索个人信息,传入人名, ...
- WCF基础教程——vs2013创建wcf应用程序
引言 近期在项目中见到了师哥们常常谈到的WCF这方面的知识.当时在写程序的时候也没有理解wcf究竟是个什么东西? 以及我们为什么在项目中会採用这种框架来实现,仅仅是依照师哥他们写好的代码编写同样格 ...
随机推荐
- 关于Apache Commons-Lang3的使用
在日常工作中,我们经常要使用到一些开源工具包,比如String,Date等等.有时候我们并不清楚有这些工具类的存在,造成在开发过程中重新实现导致时间浪费,且开发的代码质量不佳.而apache其实已经提 ...
- BZOJ 2318: Spoj4060 game with probability Problem (概率dp)(博弈论)
2318: Spoj4060 game with probability Problem Description Alice和Bob在玩一个游戏.有n个石子在这里,Alice和Bob轮流投掷硬币,如果 ...
- JAVA线程笔记。
继承thread类 并覆写thread类中的run()方法. class 类名称 extents Thread{public void run(){}}实现Runble接口的run方法 线程的star ...
- windows 不能在本地计算机启动apache2。有关更多信息,查阅系统事件日志。如果这是非Microsoft服务,请与服务厂商联系,并参考特定服务错误代码1
今天使用apache的时候又无法启动了,之前也遇到过,这次重点说这一次的情况,其他情况可以查看博主apache相关的其他博文:网上关于apache服务端的设置的很多,但是都不适合我的情况: 一般使用a ...
- drf三大认证
源码分析 """ 1)APIView的dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial( ...
- maven工程根项目运行ok但是子项目就报错的解决办法
正常启动没错 项目出现问题 maven工程根项目运行ok但是子项目就报错 报错信息是xxxx没有创建 解决办法 原来是子项目的依赖少了 没有配置1.8 所以会出现莫明其妙的bug
- 在 mac osx 上安装OpenOffice并以服务的方式启动
OpenOffice是Apache基金会旗下的一款先进的开源办公软件套件,包含文本文档.电子表格.演示文稿.绘图.数据库等.包含Microsoft office所有功能.它不仅可以作为桌面应用供普通用 ...
- mysql-5.7.25解压版本安装和navicat 12.1版本破解-4.8破解工具
1.配置环境变量 百度网盘下载https://pan.baidu.com/s/1tbOJiOG9l87HbIzsLApX4A 提取码 t657 (mysql-5.7.25大小300M解压后1.6G ...
- python 堡垒机讲解及实例
paramiko模块,该模块基于SSH用于连接远程服务器并执行相关操作. SSHClient:用于连接远程服务器并执行基本命令 #coding:utf-8 import paramiko ssh=pa ...
- iOS 编程:NSURLSession
定义:描述 Foundation 框架类在标准的网络传输协议下,用 URLs 连接因特网并与服务器交互的一整套体系. 支持的传输协议: File Transfer Protocol (ftp://) ...