新聞中心
Kubernetes是一個(gè)可移植的、可擴(kuò)展的開(kāi)源平臺(tái),用于管理容器化的工作負(fù)載和服務(wù),可促進(jìn)聲明式配置和自動(dòng)化。 Kubernetes 擁有一個(gè)龐大且快速增長(zhǎng)的生態(tài)系統(tǒng)。Kubernetes 的服務(wù)、支持和工具廣泛可用,本篇文章重點(diǎn)為大家講解一下Kubernetes1.5新特性。

西烏珠穆沁ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
主題簡(jiǎn)介
1、StatefulSets (原名PetSets)
StatefulSets 現(xiàn)在是 beta 版 (主要是修復(fù)和穩(wěn)定性)
2、改善聯(lián)邦支持
新命令:kubefed
DaemonSets
部署
Configmaps
3、簡(jiǎn)化集群部署
改進(jìn)kubeadm
Master的HA設(shè)置
4、節(jié)點(diǎn)魯棒性及可擴(kuò)展性
支持Windows Service容器
實(shí)現(xiàn)了CRI(容器運(yùn)行時(shí)接口)
添加kubelet API調(diào)用時(shí)身份驗(yàn)證和授權(quán)
新特性簡(jiǎn)介
1、API 機(jī)制
[beta] kube-apiserver支持OpenAPI從alpha移動(dòng)到beta, 第一個(gè)non-go客戶端是基于此特性。
2、應(yīng)用
[Stable]當(dāng)replica sets不能創(chuàng)建Pods時(shí),它們將通過(guò)API報(bào)告失敗的詳細(xì)底層原因。
[Stable] kubectl apply現(xiàn)可通過(guò)–prune刪除不再需要的資源
[beta] Deployments現(xiàn)可通過(guò)API升級(jí)到新版本,而之前是無(wú)法通過(guò)滾動(dòng)來(lái)進(jìn)行升級(jí)的
[beta] StatefulSets允許要求持久化identity或單實(shí)例存儲(chǔ)的工作負(fù)載從而在Kubernetes創(chuàng)建和管理。
[beta]為了提供安全保障,集群不會(huì)強(qiáng)行刪除未響應(yīng)節(jié)點(diǎn)上的Pods,如果用戶通過(guò)CLI強(qiáng)行刪除Pods會(huì)收到警告。
3、認(rèn)證
[Alpha]改進(jìn)了基于角色的訪問(wèn)控制alpha API。(包括一組默認(rèn)的集群角色)
[Beta]添加了對(duì)Kubelet API訪問(wèn)的認(rèn)證/授權(quán)機(jī)制。
4、AWS
[stable]角色出現(xiàn)在kubectl get nodes的結(jié)果里。
5、集群生命周期
[alpha] 提升了kubeadm二進(jìn)制包的交互和可用性,從而更易于新建一個(gè)運(yùn)行集群。
6、集群運(yùn)維
[alpha] 在GCE上使用kube-up/kube-down腳本來(lái)創(chuàng)建/移除集群高可用(復(fù)制)的主節(jié)點(diǎn)。
7、聯(lián)邦
[beta] 支持聯(lián)邦ConfigMaps。
[alpha] 支持聯(lián)邦Daemonsets。
[alpha] 支持聯(lián)邦Deployments。
[alpha]集群聯(lián)邦:為聯(lián)邦資源添加對(duì)于DeleteOptions.OrphanDependents的支持。
[alpha]引入新命令行工具:kubefed,簡(jiǎn)化聯(lián)邦控制臺(tái)的部署以及集群注冊(cè)/注銷體驗(yàn)。
8、網(wǎng)絡(luò)
[stable]服務(wù)可以通過(guò)DNS名稱被其他服務(wù)引用,而不是只有在pods里才可以。
[beta]為NodePort類型和LoadBalancer的服務(wù)保留源IP的選項(xiàng)。
[stable]啟用beta ConfigMap參數(shù)支持的DNS水平自動(dòng)伸縮
9、節(jié)點(diǎn)
[alpha]支持在容器運(yùn)行時(shí)啟用用戶命名空間重映射的時(shí)候,保留對(duì)宿主用戶命名空間的訪問(wèn)。
[alpha]引入了v1alpha1版本的CRI(容器運(yùn)行時(shí)接口) API,它允許可插拔的容器運(yùn)行時(shí);現(xiàn)有一個(gè)已經(jīng)就緒的用于測(cè)試和反饋的docker-CRI集成。
[alpha]Kubelet基于QoS層在每個(gè)Pod的CGroup層級(jí)里啟動(dòng)容器。
[beta]Kubelet集成了memcg提示消息API,來(lái)檢測(cè)是否超過(guò)閾值。
[beta]引入了Beta版本的容器化節(jié)點(diǎn)一致性測(cè)試: gcr.io/google_containers/node-test:0.2。從而讓用戶驗(yàn)證node設(shè)置。
10、調(diào)度
[alpha]添加了對(duì)不透明整數(shù)資源(node級(jí))的審計(jì)支持。
[beta] PodDisruptionBudget已經(jīng)升級(jí)到Beta版,當(dāng)想要應(yīng)用SLO時(shí),可以用來(lái)安全地drain節(jié)點(diǎn)。
11、UI
[stable]Dashboard UI如今顯示面向用戶的對(duì)象及它們的資源使用情況。
12、Windows
[alpha]添加了對(duì)Windows Server 2016節(jié)點(diǎn)和調(diào)度Windows Server Container的支持。
已知問(wèn)題
CRI已知問(wèn)題及限制。
當(dāng)volume路徑包含空格時(shí),DeviceNameFromMount()函數(shù)不能正確的返回volume路徑。
聯(lián)邦alpha版的特性不具有特征定義,因此默認(rèn)啟用,在未來(lái)的版本中將修復(fù)這一問(wèn)題。
聯(lián)邦控制面板可通過(guò)更新控制面板組件Deployment規(guī)格的鏡像字段來(lái)進(jìn)行升級(jí),然而在該版本中聯(lián)邦控制面板升級(jí)尚未進(jìn)行測(cè)試。
重大改變
1、節(jié)點(diǎn)控制器不再?gòu)?qiáng)行刪除來(lái)源于apiServer的pods
對(duì)于有狀態(tài)的應(yīng)用StatefulSet(原名為 PetSet)而言,這個(gè)改動(dòng)意味著創(chuàng)建替換的Pods被阻塞,直到舊的Pods確定不再運(yùn)行(意味著kubelet從分區(qū)返回,Node對(duì)象的刪除,云服務(wù)商里實(shí)例的刪除,或強(qiáng)行刪除api-Server里的Pod)。這里通過(guò)確保不可達(dá)的Pod不會(huì)被認(rèn)為已經(jīng)死亡來(lái)防止集群應(yīng)用出現(xiàn)“腦裂”的狀況,除非一些“包圍”操作提供了上述之一的情況。
對(duì)于其他現(xiàn)有的除StatefulSet外的控制器,這對(duì)于控制器替換Pods沒(méi)有影響,因?yàn)榭刂破鞑粫?huì)重用Pods名稱(他們使用generate-name)用戶編寫的控制器會(huì)重用Pod對(duì)象的名稱,應(yīng)該考慮這個(gè)變化。
當(dāng)使用kubectl delete … –grace-period=0 刪除一個(gè)對(duì)象時(shí),客戶端將開(kāi)始進(jìn)行優(yōu)雅的刪除并等待,直到資源完全被刪除。要立即強(qiáng)制刪除,使用–force 標(biāo)志。這可以防止用戶不小心讓兩個(gè)Stateful Set共享可能導(dǎo)致數(shù)據(jù)損壞的相同的持久存儲(chǔ)。
2、允許匿名API服務(wù)器的訪問(wèn),通過(guò)授權(quán)組系統(tǒng)設(shè)置認(rèn)證的用戶
kube-apiserver添加了–anonymous-auth 標(biāo)志,默認(rèn)為true。當(dāng)它啟用時(shí),訪問(wèn)安全端口的請(qǐng)求不會(huì)被其他配置的認(rèn)證方法所拒絕,這些請(qǐng)求被當(dāng)做匿名請(qǐng)求,并且用戶名為system:anonymous,組織為system:unauthenticated。 認(rèn)證的用戶被設(shè)為system:authenticated組。
3、即使路徑是用于類型的有效字段,如果路徑在json文件下不提供字段,kubectl get -o jsonpath=… 將拋出一個(gè)錯(cuò)誤。這個(gè)改變從pre-1.5版本開(kāi)始,即使他們目前不在 json文件下,也會(huì)返回一些字段的默認(rèn)值。
4、對(duì)于VolumeMounts的strategicmerge patchMergeKey是由“名稱”到“mountPath”的改變。這是必要的,因?yàn)槊Q字段引用Volume的名稱,并且不是VolumeMount的唯一鍵。如果安裝多個(gè)相同的volume,多個(gè)VolumeMounts將有同樣的 Volume名稱?!癿ountPath”是獨(dú)一無(wú)二的,并可以作為mergekey。
升級(jí)前注意事項(xiàng)
1、升級(jí)前重要的安全相關(guān)改變 必須在kube-apiserver設(shè)置–anonymous-auth=false參數(shù),除非你是一個(gè)測(cè)試該功能的開(kāi)發(fā)者并且了解它。如果不這樣,你會(huì)允許未經(jīng)授權(quán)的用戶訪問(wèn)你的apiserver。
必須在聯(lián)邦apiserver設(shè)置–anonymous-auth=false參數(shù),除非你是一個(gè)測(cè)試該功能的開(kāi)發(fā)者并且了解它。如果不這樣,你會(huì)允許未經(jīng)授權(quán)的用戶訪問(wèn)你的聯(lián)邦apiserver。你不需要調(diào)整kublete的該參數(shù):1.4的Kubelet APIs沒(méi)有授權(quán)。
2、batch/v2alpha1.ScheduledJob被重命名為batch/v2alpha1.CronJob。
3、PetSet被重命名為StatefulSet。如果你現(xiàn)在有PetSets,你要在升級(jí)為StatefulSets前后進(jìn)行一些額外的遷移操作。
4、如果你從v1.4.x升級(jí)你的集群聯(lián)邦組件,請(qǐng)更新你的federation-apiserver和federation-controller-manager到新版本。
5、廢棄的kubelet –configure-cbr0參數(shù)被移除。經(jīng)典的網(wǎng)絡(luò)模式也是。如果你依賴于此模式,請(qǐng)調(diào)研其他的網(wǎng)絡(luò)插件kubenet或cni是否滿足需求。
6、新的client-go結(jié)構(gòu),參考kubernetes/client-go進(jìn)行版本控制策略。
7、廢棄的kube-scheduler –bind-pods-qps和–bind-pods burst參數(shù)被移除,替換為–kube-api-qps和–kube-api-burst。
8、如果你需要使用1.4的特性:PodDisruptionBudget(例如創(chuàng)建了PodDisruptionBudget對(duì)象),那么在從1.4升級(jí)為1.5之前,你一定要?jiǎng)h除所有創(chuàng)建的PodDisruptionBudget對(duì)象(policy/v1alpha1/PodDisruptionBudget)。升級(jí)之后不可能刪除這些對(duì)象。它們的存在也會(huì)妨礙你使用1.5里Beta版的PodDisruptionBudget特性(policy/v1beta1/PodDisruptionBudget)。如果你已經(jīng)進(jìn)行了升級(jí),那么你需要降級(jí)到1.4來(lái)刪除這policy/v1alpha1/PodDisruptionBudget對(duì)象。
文章題目:詳解Kubernetes1.5新特性
網(wǎng)頁(yè)網(wǎng)址:http://www.dlmjj.cn/article/djchipj.html


咨詢
建站咨詢
