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究竟是个什么东西? 以及我们为什么在项目中会採用这种框架来实现,仅仅是依照师哥他们写好的代码编写同样格 ...
随机推荐
- 概率DP——BZOJ4008 [HNOI2015]亚瑟王
[HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑.他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 ...
- [LC] 434. Number of Segments in a String
Count the number of segments in a string, where a segment is defined to be a contiguous sequence of ...
- [LC] 22. Generate Parentheses
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- JS替换变量中的文字字母
var text='Hello world, Hello world'; var b= text.replace('world','zhengxiaoya'); // 找到字符串中的第一个'world ...
- 吴裕雄--天生自然python学习笔记:爬取我国 1990 年到 2017年 GDP 数据并绘图显示
绘制图形所需的数据源通常是不固定的,比如,有时我们会需要从网页抓取, 也可能需从文件或数据库中获取. 利用抓取网页数据技术,把我国 1990 年到 2016 年的 GDP 数据抓取出来 ,再利用 Ma ...
- python-django框架-电商项目-项目部署_20191127
python-django框架-电商项目-项目部署: uwsgi作为web服务器: 在pycharm中启动项目:使用python manage.py runserver 这个runserver是dja ...
- MS15-020 文件共享漏洞利用
Metasploit MS15-020漏洞利用 环境: 共享机/受害者:windows xp IP:192.168.222.1 攻击机:kali linux IP:192.168.10.1 msfco ...
- SpringCloud快速搭建
1.SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.负载均衡.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发 ...
- Linux安装完后的调优(linux 6)
1:关闭 SELinux 方法一: #sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #替换文本参数 ...
- linux更改系统ulimit
https://jingyan.baidu.com/article/c85b7a64b65d8c003aac957e.html

