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究竟是个什么东西? 以及我们为什么在项目中会採用这种框架来实现,仅仅是依照师哥他们写好的代码编写同样格 ...
随机推荐
- java word另存为word xml格式
1.jacob-1.15-M3-x86.dll copy到c:\\windows\system32 2.引入jacob.jar 把jacob.dll(不同版本的jacob的dll文件名有所不同)复制到 ...
- python学习笔记(12)常用模块
一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...
- iOS传感器集锦、飞机大战、开发调试工具、强制更新、Swift仿QQ空间头部等源码
iOS精选源码 飞机大作战 MUPhotoPreview -简单易用的图片浏览器 LLDebugTool是一款针对开发者和测试者的调试工具,它可以帮... 多个UIScrollView.UITable ...
- LabVIEW部分视觉函数中文解说
IMAQ Learn Pattern 2 VI 在匹配阶段创建您要搜索的图案匹配的模板图像的描述,此描述的数据被附加到输入模板图像中.在匹配阶段,从模板图像中提取模板描述符并且用于从检查图像中搜索模板 ...
- python语法基础-函数-基础-长期维护
############### 函数的定义调用,返回值和返回值接收 ############## def mylen(): s = "myname" i = 0 for ...
- 源码中TODO、FIXME和XXX的含义
前言: 今天在阅读Qt Creator的源代码时,发现一些注释中有FIXME英文单词,用英文词典居然查不到其意义! 实际上,在阅读一些开源代码时,我们常会碰到诸如:TODO.FIXME和XXX的单词 ...
- 一次完整的HTTP请求响应过程(很详细)
一. HTTP请求和响应步骤 图片来自:理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的. 二.TCP/IP协 ...
- JavaScript的数据类型有哪些?
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- LINQ之路 6:延迟执行(Deferred Execution) 笔记
这里刚看的时候不理解. 这个特性在我们通过foreach循环创建查询时会变成一个真正的陷阱.假如我们想要去掉一个字符串里的所有元音字母,我们可能会写出如下的query: IEnumerable< ...
- 关于使用gitlab协同开发提交代码步骤
记录使用gitlab协同开发时从自己的分支向master分支提交代码的步骤: 环境:安装了git和TortoiseGit(git的可视化工具) 1.首先切换到自己的分支(如果不在自己的分支) 2.gi ...