RC:ReplicationController(老一代的Pod控制器)前端
用于确保由其管控的Pod对象副本数量,可以知足用户指望,多则删除,少则经过模板建立。nginx
特色:web
一样,它也能够经过yaml或json格式的资源清单来建立。其中spec字段通常嵌套一下字段json
与RC相比而言,RS不只支持基于等值的标签选择器,并且还支持基于集合的标签选择器。vim
标签:解决同类型的资源对象愈来愈多,为了更好的管理,按照标签分组。后端
经常使用标签分类:api
release(版本信息):stable(稳定版), canary(金丝雀版本), beta(测试版)缓存
environment(环境变量):dev(开发),qa(测试), production(生产)架构
application(应用):ui, as(application software 引用软件), pc, scapp
tier(架构层级):frontend(前端), backend(后端), cache(缓存)
partition(分区):customerA(客户A), customerB(客户B)
triack(品控级别):daily(天天), weekly(每周)
标签要作到:见名知意。
[root@master ~]# vim label.yaml
kind: Pod apiVersion: v1 metadata: name: labels labels: env: qa tier: frontend spec: containers: - name: myapp image: httpd
[root@master ~]# kubectl apply -f label.yaml
pod/labels created
//经过--show-labels显示资源对象的标签。
[root@master ~]# kubectl get pod --show-labels
//经过-l,查看仅包含某个标签的资源
[root@master ~]# kubectl get po -L env,tier
[root@master ~]# kubectl get po -l env,tier
给labels资源添加标签:
[root@master ~]# kubectl label pod labels app=pc pod/labels labeled
查看labels资源标签:
[root@master ~]# kubectl get pod -l app
[root@master ~]# kubectl get pod -l tier --show-labels
给labels资源删除标签:
[root@master ~]# kubectl label pod labels app- pod/labels labeled
给labels资源修改标签:
[root@master ~]# kubectl label pod labels env=dev --overwrite pod/labels labeled
[root@master ~]# vim label-svc.yaml
apiVersion: v1 kind: Service metadata: name: labels-svc spec: type: NodePort selector: env: qa tier: frontend ports: - protocol: TCP port: 80 targetPort: 80
[root@master ~]# kubectl apply -f label-svc.yaml service/labels-svc created
[root@master ~]# kubectl describe svc labels-svc
若是标签有多个,标签选择器选择其中一个,也能够关联成功,相反,若是选择器有多个,那么标签必须彻底知足条件,才能够关联成功!
标签选择器:标签的查询过滤条件。
基于等值关系的(equality-based):“=”,“==”,“!” 前面两个都是相等,最后是不等
基于集合关系(set-based):in, notin, exits三种。
例子:
[root@master ~]# vim slector.yaml
selector: matchLabels: app: nginx matchExpressions: - {key: name,operator: In,values: [zhangsan,lisi]} - {key: age,operator: Exists,values:}
matchLabels:指定键值对表示的标签选择器。
matchExpressions:基于表达式来指定的标签选择器。选择器列表间为“逻辑与”关系;使用ln或者Notln操做时,其values不强制要求非空的字符串列表,而使用Exists或DostNotExist时,其values必须为空。
使用标签选择器的逻辑:
它也是一种Pod控制器。
使用场景:若是必须将Pod运行在固定的某个或几个节点,且要优先于其余Pod的启动。一般状况下,默认会每一个节点都会运行,而且只能运行一个Pod。这种状况推荐使用DaemonSet资源对象。
监控程序:
日志收集程序:
[root@master ~]# kubectl get ds -n kube-system
运行一个web程序,在每个节点都运行一个Pod。
[root@master ~]# vim daemonset.yaml
kind: DaemonSet apiVersion: extensions/v1beta1 metadata: name: test-ds spec: template: metadata: labels: name: test-ds spec: containers: - name: test-ds image: httpd
[root@master ~]# kubectl apply -f daemonset.yaml
daemonset.extensions/test-ds created
RC, RS, Deployment, DaemonSet。Pod控制器。 statfulSet,lngress。pod
RBAC.基于用户的认证受权机制