环境介绍
主机 | IP地址 | 服务 |
---|---|---|
master | 192.168.1.21 | k8s |
node01 | 192.168.1.22 | k8s |
node02 | 192.168.1.23 | k8s |
基于 https://blog.51cto.com/14320361/2464655 的实验继续进行
ReplicaSet简单介绍
1. RC:ReplicationController(老一代的pod控制器)
用来确保由其管控的Pod对象副本数量,能够满足用户期望,多则删除,少则通过模本创建
特点:
- 确保Pod资源对象的数量精准。
- 确保pod健康运行。
- 弹性伸缩
同样,它也可以通过yaml或json格式的资源清单来创建。其中spec字段一般嵌套以下字段:
- replicas:期望的Pod对象副本数量。
- selector:当前控制器匹配Pod对此项副本的标签选择器
- template:pod副本的模板
与RC相比而言,RS不仅支持*基于等值*的标签选择器,而且还支持*基于集合*的标签选择器。
2. 标签:解决同类型的资源对象,为了更好的管理,按照标签分组。
常用的标签分类:
- release(版本):stable(稳定版)、canary(金丝雀版本)、beta(测试版本)
- environment(环境变量):dev(开发)、qa(测试)、production(生产)
- application(应用):ui、as(application software应用软件)、pc、sc
- tier(架构层级):frontend(前端)、backend(后端)、cache(缓存)
- partition(分区):customerA(客户A)、customerB(客户B)
- track(品控级别):daily(每天)、weekly(每周)
标签要做到:见名知意。
3.测试
(1)编写一个pod的yaml文件
[root@master ~]# vim label.yaml
kind: Pod
apiVersion: v1
metadata:
name: labels
labels:
env: qa
tier: frontend
spec:
containers:
- name: myapp
image: httpd
<1>执行一下
[root@master ~]# kubectl apply -f label.yaml --record
<2>查看一下
[root@master ~]# kubectl get pod --show-labels
//通过--show-labels显示资源对象的
[root@master ~]# kubectl get po -L env,tier
//显示某个键对应的值