kubernetes DaemonSet資源物件
What is a DaemonSet?
DaemonSet能夠讓所有(或者一些特定)的Node節點運行同一個pod。當節點加入到kubernetes叢集中,pod會被(DaemonSet)排程到該節點上執行,當節點從kubernetes叢集中被移除,被(DaemonSet)排程的pod會被移除,如果刪除DaemonSet,所有跟這個DaemonSet相關的pods都會被刪除。在使用kubernetes來執行應用時,很多時候我們需要在一個區域(zone)或者所有Node上運行同一個守護程序(pod),例如如下場景:每個Node上執行一個分散式儲存的守護程序,例如glusterd,ceph每個Node上執行日誌採集器,例如fluentd,logstash
Writing a DaemonSet Spec
Required Fields(必須欄位)
apiVersion, kind, metadata.spec
Pod Template
.spec.template
同時RestartPolicy 只能設定為 Always, 不指定,預設為 Always.
Pod Selector
spec.selector 支援兩種匹配:
-
matchLabels
-
matchExpressions
當兩種匹配方式都配置的時候,匹配結果為交集.
Running Pods on Only Some Nodes
當指定.spec.template.spec.nodeSelector, DaemonSet controller 將會在
How Daemon Pods are Scheduled
被DaemonSet controller建立的pod會預設指定.spec.nodeName,所以pod會被k8s的排程器忽略. 所以:
-
unschedulable 欄位不會被 DaemonSet controller識別。
-
當k8s的排程器沒有啟動的時候,DaemonSet controller也能工作。
Communicating with Daemon Pods
跟DaemonSet建立的pod通訊方法:
-
Push: DaemonSet建立的pod被配置成更新配置到其他服務,它們不需要客戶端。
-
NodeIP and Known Port: DaemonSet 建立的pod使用 hostPort, 所以通過node IP就可以通訊。
-
DNS:
-
Service:
Updating a DaemonSet
如果node labels 改變, DaemonSet 會迅速新增pod到新匹配的node,刪除不再匹配節點上的pod。
你可以修改DaemonSet建立的pod. 然而,不是所有的欄位都可以修改 。同時DaemonSet controller仍然使用之前的模板當新增加節點的時候。
刪除 DaemonSet時,如果kubectl指定--cascade=false, 建立的pods 會保留在node節點上. 你可以用不同的模板建立新的DaemonSet。新建立的DaemonSet通過相同的標籤會識別之前的pod,DaemonSet不會修改或者刪除之前建立的pod, 你可以手動刪除之前的pod來使DaemonSet自動建立新的pod。
Kubernetes 1.6版本及以後, DaemonSet支援滾動升級。
Alternatives to DaemonSet
Init Scripts
Bare Pods
Static Pods
靜態pods不會被 kubectl 或者其他 Kubernetes API 客戶端所管理. 因為靜態pod不依賴於 apiserver。
Replication Controller
相關推薦
kubernetes DaemonSet資源物件
What is a DaemonSet? DaemonSet能夠讓所有(或者一些特定)的Node節點運行同一個pod。當節點加入到kubernetes叢集中,pod會被(DaemonSet)排程到該節點上執行,當節點從kubernetes叢集中被移除,被(DaemonS
kubernetes建立資源物件
1.建立deployment資源物件 # cat nginx-deployment.yml apiVersion: apps/v1beta2 kind: Deployment metadata: name: nginx-deployment spec:
kubernetes建立資源物件yaml檔案例子--pod
kubernetes建立pod的yaml檔案,引數說明 apiVersion: v1 #指定api版本,此值必須在kubectl apiversion中 kind: Pod #指定建立資源的
如何擴充套件Kubernetes管理的資源物件?
Kubernetes是一套容器化解決方案,也是一套資源管理的架構和標準;本次分享是基於我在餓了麼現階段容器化經驗和理念的總結,探討深化Kubernetes在企業內部的應用的方法,介紹如何利用開源的API Server框架在企業內部打造和擴充套件Kubernetes管理的資源物件。 Kubernet
kubernetes資源物件--deployment
本文基於kubernetes 1.5.2版本編寫 概念 Deployment(中文意思為部署、排程)提供了一種更加簡單的更新RC和Pod的機制,K8S版本1.2實現的。通過在Deployment中描述所期望的叢集狀態,Deployment Controller會將現在的叢集狀態在一個可控的速度下逐步更新成
kubernetes資源物件ConfigMap學習(一)
生產環境中很多應用程式的配置可能需要通過配置檔案,命令列引數和環境變數的組合配置來完成。這些配置應該從image中解耦,以此來保持容器化應用程式的可移植性。在K8S1.2後引入ConfigMap來處理這種型別的配置資料。ConfigMap API資源提供了將配置資料注入容器的
kubernetes資源物件kind
PetSet首次在K8S1.4版本中,在1.5更名為StatefulSet。除了改了名字之外,這一API物件並沒有太大變化。注意:以下內容的驗證環境為CentOS7、K8S版本1.5.2,並部署SkyDNS。http://blog.csdn.net/liyingke112/a
kubernetes資源物件--Label
本文基於kubernetes 1.5.2版本編寫 概念 Label機制是K8S中一個重要設計,通過Label進行物件弱關聯,靈活地分類和選擇不同服務或業務,讓使用者根據自己特定的組織結構以鬆耦合
kubernetes federation 工作機制之資源物件同步
01 前言希望通過本文最簡單的方式向熟悉k8s的人說明白其上的federation是幹什麼的,如何工作的。關於federation,比較官方的說法是:叢集聯邦可以讓租戶/企業根據需要擴充套件或伸縮所需要的叢集;可以讓租戶/企業在跨地區甚至跨地域的多個叢集上部署、排程、監測管理應用。通過叢集聯邦,租戶/企業可以
kubernetes--優雅刪除資源物件
本文基於kubernetes 1.5.2版本編寫 當用戶請求刪除含有pod的資源物件時(如RC、deployment等),K8S為了讓應用程式優雅關閉(即讓應用程式完成正在處理的請求後,再關閉
kubernetes資源物件--Horizontal Pod Autoscaling(HPA)
下文基於kubernetes 1.5.2版本編寫 概念 HPA全稱Horizontal Pod Autoscaling,即pod的水平自動擴充套件。自動擴充套件主要分為兩種,其一為水平擴充套件,針對於例項數目的增減;其二為垂直擴充套件,即單個例項可以使用的資源的增減。HPA屬於前者。 HPA的操作物件是
kubernetes資源物件--pod和job
pod Pod是K8S的最小操作單元,一個Pod可以由一個或多個容器組成; 整個K8S系統都是圍繞著Pod展開的,比如如何部署執行Pod、如何保證Pod的數量、如何訪問Pod等。 特點 Pod是能夠被建立、排程和管理的最小單元; 每個Pod都有一個獨立的IP; 一個Pod由一個或多個容器構成,並共
Kubernetes 資源物件
[TOC] >在k8s中所有的物件都叫做資源,例如:pod,service等 #Pod 資源 pod是在k8s中最小單元,前面有提到,k8s支援自愈,彈性擴容等高階特性,那麼如果單純的在k8s節點中跑業務docker是沒有辦法支援這些高階特性,必須要有定製化的容器,那麼,pod就是這個官方已經定製化好的支
Kubernetes叢集資源監控
Kubernetes監控指標 叢集監控• 節點資源利用率• 節點數• 執行Pods Pod監控• Kubernetes指標(pod) DESIRED:預期的狀態CURRENT:當前的狀態UP-TO-DATE:更新後的狀態AVAILABLE:可以用的狀態 • 容器指標(cpu,mem)• 應用程式 K
Kubernetes 針對資源緊缺處理方式的配置_Kubernetes中文社群
如何在資源緊缺的情況下,保證 Node 的穩定性,是 Kubelet 需要面對的一個重要的問題。尤其對於記憶體和磁碟這種不可壓縮的資源,緊缺就相當於不穩定。 驅逐策略 Kubelet 能夠監控資源消耗,來防止計算資源被耗盡。一旦出現資源緊缺的跡象,Kubelet 就會主動終止一或多個 Pod
Kubernetes 叢集資源的那些事_Kubernetes中文社群
大多數時候,我們在跟 K8S 玩耍的時候,主要目的就是:“把 XXX 打個映象,在叢集上跑起來 ——— 誒快看,真的跑起來了嘿!”。 Kubernetes 和 Docker 的預設配置,就能夠幫我們省卻很多麻煩。不過大家都很清楚,資源問題是無法迴避的,我們在傳統 IT 環境下遇到的各種資源相關
k8s1.11命令列——實現原始碼導讀之kubectl patch更新資源物件
這一講我們來看kubectl patch更新資源物件命令,它的實現在NewCmdPatch方法中 獲取PatchOptions中儲存的命令列輸入的kubectl patch 後面跟的引數(如--all-namespace,--output,--patch等) 構建cmd
kubernetes-核心資源之Ingress
1、Ingress 在Kubernetes中,服務和Pod的IP地址僅可以在叢集網路內部使用,對於叢集外的應用是不可見的。為了使外部的應用能夠訪問叢集內的服務,在Kubernetes中可以通過NodePort和LoadBalancer這兩種型別的服務,或者使用Ingress。 插曲--------------
kubernetes DaemonSet的滾動更新
DaemonSet的滾動更新 DaemonSet 更新策略 DaemonSet 有兩種更新策略 : OnDelete: 預設的向後相容更新策略. 只有當你手動刪除老的DaemonSet pods
Kubernetes刪除資源後持續terminating狀態
net tor creat sop resource ont 狀態 grace yam Error from server (Forbidden): error when creating "/root/istio.yaml": configmaps &