日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Pod在多可用区worker节点上的高可用部署

發布時間:2024/8/23 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pod在多可用区worker节点上的高可用部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、??????需求分析

當前kubernetes集群中的worker節點可以支持添加多可用區中的ECS,這種部署方式的目的是可以讓一個應用的多個pod(至少兩個)能夠分布在不同的可用區,起碼不能分布在同一個可用區,已達到高可用或者同城災備的部署。

二、??????效果圖

三、??????實現原理

為了實現上述的效果,kubernetes提供了pod的親和性和反親和性來保證pod在節點級別,可用區級別的高可用部署;具體的值為topologyKey:failure-domain.beta.kubernetes.io/zone。

四、??????實現步驟

在ACK上創建完集群后,不論從哪個可用區添加節點,都會對該節點打上對應的可用區標簽,比如,一個節點是屬于北京可用區a的,那么在加入到kubernetes集群后,該節點上會有一個這樣的標簽:failure-domain.beta.kubernetes.io/zone: cn-beijing-a。

在有了上述標簽后,對應用進行多可用區部署時,我們就可以使用一下yaml文件來使不同的pod分配到不同的可用區。

? ? ?Yaml文件示例:

apiVersion: apps/v1 kind: Deployment metadata:name: redis-cache spec:selector:matchLabels:app: storereplicas: 3template:metadata:labels:app: storespec:affinity:podAntiAffinity:preferredDuringSchedulingIgnoredDuringExecution:- labelSelector:matchExpressions:- key: appoperator: Invalues:- storetopologyKey: "failure-domain.beta.kubernetes.io/zone"containers:- name: redis-serverimage: redis:3.2-alpine

上面yaml文件中的podAntiAffinity:部分規定了node的反親和性,并且由于使用了topologyKey: "failure-domain.beta.kubernetes.io/zone",如果failure-domain.beta.kubernetes.io/zone這個key有三種value,比如cn-beijing-a,cn-beijing-b,cn-beijing-c;那么pod會被分配在這三個不同的可用區。并且由于使用了preferredDuringSchedulingIgnoredDuringExecution,所以如果pod個數大于可用區個數的話,pod會盡可能的放在不同的可用區,最后會出現多出來的pod會與原有pod在同一個可用區。

上面的使用方式還有很多種,包括node級別的,詳細請參考:https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity

五、??????注意問題(云盤)

由于云盤不能跨可用區掛載,如果有pod使用了存儲卷,該pod需要被調度到與存儲卷相同的可用區的機器上。

其他存儲卷比如NAS,OSS是可以采用上述部署方式的。

?

原文鏈接
本文為云棲社區原創內容,未經允許不得轉載。

總結

以上是生活随笔為你收集整理的Pod在多可用区worker节点上的高可用部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。