ReplocaSet,DaemonSet

ReplicaSet

RC:ReplicationController(老一代的Pod控制器)

用於確保由其管控的Pod對象副本數量,能夠滿足用戶期望,多則刪除,少則通過模板創建。

特點:

  • ​ 確保Pod資源的對象的數量精準
  • ​ 確保Pod監控運行
  • ​ 彈性伸縮。

同樣,它也可以通過yaml或json格式的資源清單來創建。其中spec字段一般嵌套一下字段

  • ​ replicas:期待的Pod對象副本數量
  • ​ selector:當前控制器匹配Pod對象副本的標籤選擇器
  • ​ template:Pod副本的模板

與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

ReplocaSet,DaemonSet

[root@master ~]# kubectl get po -l env,tier

ReplocaSet,DaemonSet

給labels資源添加標籤:

[root@master ~]# kubectl label pod labels  app=pc
pod/labels labeled

查看labels資源標籤:

[root@master ~]# kubectl get pod -l app

ReplocaSet,DaemonSet

[root@master ~]# kubectl get pod -l tier --show-labels

ReplocaSet,DaemonSet

給labels資源刪除標籤:

[root@master ~]# kubectl label pod labels  app-
pod/labels labeled

ReplocaSet,DaemonSet

給labels資源修改標籤:

[root@master ~]# kubectl label pod labels env=dev --overwrite 
pod/labels labeled

ReplocaSet,DaemonSet

[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必須爲空。

使用標籤選擇器的邏輯:

  1. 同時指定的多個標籤之間的邏輯關係爲“與”操作。
  2. 使用空值的標籤選擇器意味着每個資源對象都將被選擇中。
  3. 空的標籤選擇器無法選中任何資源。

DaemonSet

它也是一種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.基於用戶的認證授權機制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章