溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ReplocaSet,DaemonSet

發(fā)布時間:2020-02-25 10:39:48 來源:網(wǎng)絡(luò) 閱讀:268 作者:qq5bb2021f831d3 欄目:云計算

ReplicaSet

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

用于確保由其管控的Pod對象副本數(shù)量,能夠滿足用戶期望,多則刪除,少則通過模板創(chuàng)建。

特點:

  • ? 確保Pod資源的對象的數(shù)量精準
  • ? 確保Pod監(jiān)控運行
  • ? 彈性伸縮。

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

  • ? replicas:期待的Pod對象副本數(shù)量
  • ? selector:當前控制器匹配Pod對象副本的標簽選擇器
  • ? template:Pod副本的模板

與RC相比而言,RS不僅支持基于等值的標簽選擇器,而且還支持基于集合的標簽選擇器。

標簽:解決同類型的資源對象越來越多,為了更好的管理,按照標簽分組。

常用標簽分類:

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(每周)

標簽要做到:見名知意。

[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 

如果標簽有多個,標簽選擇器選擇其中一個,也可以關(guān)聯(lián)成功,相反,如果選擇器有多個,那么標簽必須完全滿足條件,才可以關(guān)聯(lián)成功!

標簽選擇器:標簽的查詢過濾條件。

基于等值關(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:指定鍵值對表示的標簽選擇器。

matchExpressions:基于表達式來指定的標簽選擇器。選擇器列表間為“邏輯與”關(guān)系;使用ln或者Notln操作時,其values不強制要求非空的字符串列表,而使用Exists或DostNotExist時,其values必須為空。

使用標簽選擇器的邏輯:

  1. 同時指定的多個標簽之間的邏輯關(guān)系為“與”操作。
  2. 使用空值的標簽選擇器意味著每個資源對象都將被選擇中。
  3. 空的標簽選擇器無法選中任何資源。

DaemonSet

它也是一種Pod控制器。

使用場景:如果必須將Pod運行在固定的某個或幾個節(jié)點,且要優(yōu)先于其他Pod的啟動。通常情況下,默認會每個節(jié)點都會運行,并且只能運行一個Pod。這種情況推薦使用DaemonSet資源對象。

監(jiān)控程序:

日志收集程序:

[root@master ~]# kubectl get ds -n kube-system

運行一個web程序,在每一個節(jié)點都運行一個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.基于用戶的認證授權(quán)機制

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI