摘要:創建的配置如下在這個中,我們設置了兩個,創建后,查看實驗會通過來篩選,并且設定的符合該的副本應該為個。文件的內容如下此時,我們創建另一個可以看到,的為,我們嘗試給添加一個,看下會出現什么效果。可以發現的狀態已經為。
創建ReplicaSet
ReplicaSet的配置如下
apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp namespace: default spec: replicas: 2 selector: matchLabels: app: myapp release: canary template: metadata: name: myapp-pod labels: app: myapp release: canary environment: qa spec: containers: - name: myapp-container image: ikubernetes/myapp:v1 ports: - name: http containerPort: 80
在這個ReplicaSet中,我們設置了兩個label,app=myapp, release=canary , 創建rs后,查看
[root@master manifests]# kubectl create -f rs-demo.yaml --dry-run replicaset.apps/myapp created (dry run) [root@master manifests]# kubectl create -f rs-demo.yaml replicaset.apps/myapp created [root@master manifests]# kubectl get pods NAME READY STATUS RESTARTS AGE myapp-bj795 1/1 Running 0 18s myapp-blmx8 1/1 Running 0 18s [root@master manifests]# vim rs-demo.yaml [root@master manifests]# kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS myapp-b8sb5 1/1 Running 0 5m app=myapp,environment=qa,release=canary myapp-blmx8 1/1 Running 0 8m app=myapp,environment=qa,release=canary [root@master manifests]# kubectl get rs NAME DESIRED CURRENT READY AGE myapp 2 2 2 39s實驗
ReplicaSet會通過label app=myapp, release=canary 來篩選Pod,并且設定的符合該label的Pod副本應該為2個。
pod-demo.yaml文件的內容如下:
apiVersion: v1 kind: Pod metadata: name: pod-demo namespace: default labels: app: myapp tier: frontend spec: containers: - name: myapp image: ikubernetes/myapp:v1 ports: - name: http containerPort: 80 - name: https containerPort: 443 - name: busybox image: busybox:latest #ImagePullPolicy: IfNotPresent command: - "/bin/sh" - "-c" - "sleep 3600"
此時,我們創建另一個pod
[root@master manifests]# kubectl create -f pod-demo.yaml pod/pod-demo created [root@master manifests]# kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS myapp-b8sb5 1/1 Running 0 5m app=myapp,environment=qa,release=canary myapp-blmx8 1/1 Running 0 7m app=myapp,environment=qa,release=canary pod-demo 2/2 Running 0 11s app=myapp,tier=frontend
可以看到,pod-demo的label為 app=myapp,tier=frontend ,我們嘗試給pod-demo添加一個label release=canary ,看下會出現什么效果。
[root@master manifests]# kubectl label pods pod-demo release=canary pod/pod-demo labeled [root@master manifests]# kubectl get pods --show-labels NAME READY STATUS RESTARTS AGE LABELS myapp-b8sb5 1/1 Running 0 5m app=myapp,environment=qa,release=canary myapp-blmx8 1/1 Running 0 8m app=myapp,environment=qa,release=canary pod-demo 2/2 Terminating 0 34s app=myapp,release=canary,tier=frontend
可以發現: pod-demo的狀態已經為 Terminating。 說明ReplicaSet通過標簽選擇器獲取到了三個副本,然后預期的副本數被設定為2,它隨機殺掉了一個。
應該是隨機的, 不過,我測試了幾次,都是把新建的pod-demo殺掉了。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/32698.html
摘要:祈使式的腳本很難長期地對系統狀態進行自動維護。這些事件包括的創建消亡的更新例如標簽副本數量等。每當上述事件發生,這個事件所牽扯到的具體的對象就會被放入這個工作隊列中。 本期文章來自才云科技(Caicloud)CEO 張鑫的技術原創。導言:Kubernetes 是一個龐大的軟件系統,欲從源碼層精通 Kubernetes 的進階學習者往往會經歷 Kubernetes:從入門到放棄 的挫敗...
摘要:的核心是以容器為中心的管理環境。命名空間提供了名稱范圍。換句話說,確保或同類組始終可用。用于管理有狀態應用程序,它管理一組的部署和擴展,并提供有關這些的排序和唯一性的保證。 條分縷析帶你充分理解Kubernetes的各個細節與部分:它是什么,它如何解決容器編排問題,它包含哪些你必須掌握的關鍵對象,以及如何快速上手部署使用Kubernetes。 showImg(https://segme...
摘要:標識是與操作對象間的紐帶。集群為每個對象維護三類信息對象元數據期望狀態與實際狀態元數據指對象的基本信息,比如命名標簽注釋等等,用于識別對象期望狀態一般由用戶配置來描述的實際狀態是由集群各個組件上報的集群實際的運行情況。 綜述 學習Kubernetes時,發現它的概念和術語還是比較多的,光靠啃官方文檔比較晦澀。所以邊學習邊整理,對主要的概念和術語做一下分類及簡要說明。感覺把重要概念都理解...
摘要:在這篇文章中,我們來看是如何部署應用程序到,以及如何將它作為一個公共服務的。在中的是跟應用程序通信的入口。每個除了運行在部署的主要應用程序上的也為終端運行。部署是高級別的抽象。 Travix總部位于荷蘭,是一家在線旅游商務網站,業務輻射全球28個國家,成立于2011年,旗下有五個網站:CheapTickets,BudgetAir,Vliegwinkel和Flugladen。公司通過這五...
摘要:本文分享了擴展以及管理混合云環境時可能遇到的挑戰,以及如何簡單高效地完成擴展。跨云擴展的挑戰你已經決定使用云了,所以讓我們回過頭來思考一下最初的問題。節點組件是中的。在向上或向下擴展或調整集群大小時,為部署命中公有,響應狀態代碼始終為。 流量突增時,我們需要擴展應用程序以滿足用戶需求。本文分享了擴展Kubernetes以及管理混合云環境時可能遇到的挑戰,以及如何簡單高效地完成Kuber...
閱讀 3702·2021-11-11 11:00
閱讀 2180·2021-10-08 10:05
閱讀 2672·2021-10-08 10:04
閱讀 3204·2021-09-30 09:48
閱讀 3763·2021-09-27 14:10
閱讀 1704·2021-09-09 09:33
閱讀 2100·2019-08-30 15:55
閱讀 1602·2019-08-30 13:53