您好,登錄后才能下訂單哦!
RC:ReplicationController(老一代的Pod控制器)
用于確保由其管控的Pod對象副本數量,能夠滿足用戶期望,多則刪除,少則通過模板創建。
特點:
同樣,它也可以通過yaml或json格式的資源清單來創建。其中spec字段一般嵌套一下字段
與RC相比而言,RS不僅支持基于等值的標簽選擇器,而且還支持基于集合的標簽選擇器。
標簽:解決同類型的資源對象越來越多,為了更好的管理,按照標簽分組。
常用標簽分類:
release(版本信息):stable(穩定版), canary(金絲雀版本), beta(測試版)
environment(環境變量):dev(開發),qa(測試), production(生產)
application(應用):ui, as(application software 引用軟件), pc, sc
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.基于用戶的認證授權機制
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。