新聞中心
ReplicaSet
RC:ReplicationController(老一代的Pod控制器)
創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),網(wǎng)站設(shè)計(jì),綿陽服務(wù)器托管等一站式綜合服務(wù)型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對手中脫穎而出創(chuàng)新互聯(lián)建站。
用于確保由其管控的Pod對象副本數(shù)量,能夠滿足用戶期望,多則刪除,少則通過模板創(chuàng)建。
特點(diǎn):
- ? 確保Pod資源的對象的數(shù)量精準(zhǔn)
- ? 確保Pod監(jiān)控運(yùn)行
- ? 彈性伸縮。
同樣,它也可以通過yaml或json格式的資源清單來創(chuàng)建。其中spec字段一般嵌套一下字段
- ? replicas:期待的Pod對象副本數(shù)量
- ? selector:當(dāng)前控制器匹配Pod對象副本的標(biāo)簽選擇器
- ? template:Pod副本的模板
與RC相比而言,RS不僅支持基于等值的標(biāo)簽選擇器,而且還支持基于集合的標(biāo)簽選擇器。
標(biāo)簽:解決同類型的資源對象越來越多,為了更好的管理,按照標(biāo)簽分組。
常用標(biāo)簽分類:
release(版本信息):stable(穩(wěn)定版), canary(金絲雀版本), beta(測試版)
environment(環(huán)境變量):dev(開發(fā)),qa(測試), production(生產(chǎn))
application(應(yīng)用):ui, as(application software 引用軟件), pc, sc
tier(架構(gòu)層級):frontend(前端), backend(后端), cache(緩存)
partition(分區(qū)):customerA(客戶A), customerB(客戶B)
triack(品控級別):daily(每天), weekly(每周)
標(biāo)簽要做到:見名知意。
[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顯示資源對象的標(biāo)簽。
[root@master ~]# kubectl get pod --show-labels
//通過-l,查看僅包含某個標(biāo)簽的資源
[root@master ~]# kubectl get po -L env,tier
[root@master ~]# kubectl get po -l env,tier
給labels資源添加標(biāo)簽:
[root@master ~]# kubectl label pod labels app=pc
pod/labels labeled
查看labels資源標(biāo)簽:
[root@master ~]# kubectl get pod -l app
[root@master ~]# kubectl get pod -l tier --show-labels
給labels資源刪除標(biāo)簽:
[root@master ~]# kubectl label pod labels app-
pod/labels labeled
給labels資源修改標(biāo)簽:
[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
如果標(biāo)簽有多個,標(biāo)簽選擇器選擇其中一個,也可以關(guān)聯(lián)成功,相反,如果選擇器有多個,那么標(biāo)簽必須完全滿足條件,才可以關(guān)聯(lián)成功!
標(biāo)簽選擇器:標(biāo)簽的查詢過濾條件。
基于等值關(guān)系的(equality-based):“=”,“==”,“!” 前面兩個都是相等,最后是不等
基于集合關(guān)系(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:指定鍵值對表示的標(biāo)簽選擇器。
matchExpressions:基于表達(dá)式來指定的標(biāo)簽選擇器。選擇器列表間為“邏輯與”關(guān)系;使用ln或者Notln操作時,其values不強(qiáng)制要求非空的字符串列表,而使用Exists或DostNotExist時,其values必須為空。
使用標(biāo)簽選擇器的邏輯:
- 同時指定的多個標(biāo)簽之間的邏輯關(guān)系為“與”操作。
- 使用空值的標(biāo)簽選擇器意味著每個資源對象都將被選擇中。
- 空的標(biāo)簽選擇器無法選中任何資源。
DaemonSet
它也是一種Pod控制器。
使用場景:如果必須將Pod運(yùn)行在固定的某個或幾個節(jié)點(diǎn),且要優(yōu)先于其他Pod的啟動。通常情況下,默認(rèn)會每個節(jié)點(diǎn)都會運(yùn)行,并且只能運(yùn)行一個Pod。這種情況推薦使用DaemonSet資源對象。
監(jiān)控程序:
日志收集程序:
[root@master ~]# kubectl get ds -n kube-system
運(yùn)行一個web程序,在每一個節(jié)點(diǎn)都運(yùn)行一個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.基于用戶的認(rèn)證授權(quán)機(jī)制
網(wǎng)站名稱:ReplocaSet,DaemonSet
鏈接地址:http://fisionsoft.com.cn/article/ggpghc.html