DaemonSet是在Kubernetes1.2 版本新增的一種資源對(duì)象
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的周村網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!DaemonSet
能夠讓所有(或者一些特定)的Node
節(jié)點(diǎn)僅運(yùn)行一份Pod
。當(dāng)節(jié)點(diǎn)加入到kubernetes集群中,Pod會(huì)被(DaemonSet)調(diào)度到該節(jié)點(diǎn)上運(yùn)行,當(dāng)節(jié)點(diǎn)從kubernetes集群中被移除,被(DaemonSet)調(diào)度的Pod會(huì)被移除,如果刪除DaemonSet,所有跟這個(gè)DaemonSet相關(guān)的pods都會(huì)被刪除。
在使用kubernetes來(lái)運(yùn)行應(yīng)用時(shí),很多時(shí)候我們需要在一個(gè)區(qū)域(zone)
或者所有Node
上運(yùn)行同一個(gè)守護(hù)進(jìn)程(pod)
,例如如下場(chǎng)景:
DaemonSet的Pod調(diào)度策略與RC很類似,除了使用系統(tǒng)內(nèi)置的調(diào)度算法在每個(gè)Node上進(jìn)行調(diào)度,也可以在Pod定義中使用NodeSelector或NodeAffinity來(lái)指定滿足條件的Node范圍進(jìn)行調(diào)度
DaemonSet 資源文件格式
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
1.下面例子定義為在每個(gè)Node上都啟動(dòng)一個(gè)filebeat
容器,其中掛載了宿主機(jī)目錄"/var/log/messages"
$ vi k8s-log-filebeat.yaml
apiVersion: v1
kind: ConfigMap # 定義一個(gè)config文件內(nèi)容
metadata:
name: k8s-logs-filebeat-config
namespace: kube-system
data:
# 填寫filebeat讀取日志相關(guān)信息
filebeat.yml: |-
filebeat.prospectors:
- type: log
paths:
- /messages
fields:
app: k8s
type: module
fields_under_root: true
output.logstash:
# specified logstash port (by default 5044)
hosts: ['10.0.0.100:5044']
---
apiVersion: apps/v1
kind: DaemonSet # DaemonSet 對(duì)象,保證在每個(gè)node節(jié)點(diǎn)運(yùn)行一個(gè)副本
metadata:
name: k8s-logs
namespace: kube-system
spec:
selector:
matchLabels:
project: k8s
app: filebeat
template:
metadata:
labels:
project: k8s
app: filebeat
spec:
containers:
- name: filebeat
image: docker.elastic.co/beats/filebeat:6.8.1
args: [
"-c", "/etc/filebeat.yml",
"-e",
]
resources:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 500m
memory: 500Mi
securityContext:
runAsUser: 0
# 進(jìn)行實(shí)際掛載操作
volumeMounts:
# 將configmap里的配置掛載到 /etc/filebeat.yml 文件中
- name: filebeat-config
mountPath: /etc/filebeat.yml
subPath: filebeat.yml
# 將宿主機(jī) /var/log/messages 路徑掛載到 /messages中
- name: k8s-logs
mountPath: /messages
# 定義卷
volumes:
- name: k8s-logs
hostPath:
path: /var/log/messages
type: File
- name: filebeat-config
configMap:
name: k8s-logs-filebeat-config
2.使用kubectl create 命令創(chuàng)建該DeamonSet
$ kubectl create -f k8s-log-filebeat.yaml
configmap/k8s-logs-filebeat-config created
daemonset.apps/k8s-logs created
3.查看創(chuàng)建好的DeamonSet和Pod,可以看到在每個(gè)Node上都創(chuàng)建了一個(gè)Pod
$ kubectl get ds -n kube-system | grep "k8s-logs"
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
k8s-logs 2 2 0 2 0 <none> 2m15s
$ kubectl get pods -n kube-system -o wide | grep "k8s-logs"
k8s-logs-gw4bs 0/1 Running 0 87s <none> k8s-node01 <none> <none>
k8s-logs-p6r6t 0/1 Running 0 87s <none> k8s-node02 <none> <none>
在kubernetes 1.6以后的版本中,DaemonSet也能執(zhí)行滾動(dòng)升級(jí)了,即在更新一個(gè)DaemonSet模板的時(shí)候,舊的Pod副本會(huì)被自動(dòng)刪除,同時(shí)新的Pod副本會(huì)被自動(dòng)創(chuàng)建,此時(shí)DaemonSet的更新策略(updateStrategy)為RollingUpdate,如下:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: k8s-logs
namespace: kube-system
spec:
updateStrategy:
type: RollingUpdate
updateStrategy 的另外一個(gè)值是OnDelete,即只有當(dāng)手工刪除了DaemonSet創(chuàng)建的Pod副本,新的Pod副本才會(huì)被創(chuàng)建出來(lái),如果不設(shè)置updateStrategy的值,則在kubernetes 1.6之后的版本中會(huì)被默認(rèn)設(shè)置為RollingUpdate(滾動(dòng)升級(jí))。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章名稱:Kubernetes資源對(duì)象之DaemonSet-創(chuàng)新互聯(lián)
路徑分享:http://bm7419.com/article44/ddpjee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷、品牌網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容