云原生生态周报 Vol. 11 | K8s 1.16 早知道
業(yè)界要聞
Pivotal 發(fā)布了完全基于 Kubernetes 的 Pivotal Application Service(PAS)預(yù)覽版
這意味著 Pivotal 公司一直以來在持續(xù)運(yùn)作的老牌 PaaS 項(xiàng)目 Cloud Foundry (CF)終于得以正式擁抱 Kubernetes。PAS 將 CloudFoundry 的核心控制平面完全移植到了 Kubernetes 之上,從而使得用戶可以使用 CF 聞名已久的 cf push APP 命令一鍵在 Kubernetes 上發(fā)布應(yīng)用;而與此同時(shí),操作人員則可以通過 K8s API 來進(jìn)行平臺(tái)層的管理。
Linkerd 2.4 發(fā)布:
Linkerd 2.4 發(fā)布,此版本增加了流量分割和服務(wù)網(wǎng)格接口(SMI,Service Mesh Interface)支持;Linkerd 的新流量分割功能,允許用戶動(dòng)態(tài)控制服務(wù)流量的百分比。這個(gè)功能強(qiáng)大的特性,可以通過 Kubernetes 服務(wù)之間請(qǐng)求流量的增量轉(zhuǎn)移,實(shí)現(xiàn)灰度和藍(lán)綠部署等策略。
上游重要進(jìn)展
1. Kubernetes 設(shè)計(jì)增強(qiáng)提議(KEP)
(a) PVC/PV 克隆在 K8s 1.16 即將 Beta:https://github.com/kubernetes/enhancements/pull/1147
K8s 的 PVC/PVC 已經(jīng)支持以克隆的形式創(chuàng)建,這使得用戶可以一鍵復(fù)制當(dāng)前的容器應(yīng)用在使用的整個(gè)存儲(chǔ)依賴(包括數(shù)據(jù))。這個(gè)特性在測試、調(diào)試、搬遷等很多場景中都有需求。
(b) External credential providers: https://github.com/kubernetes/enhancements/pull/1137
- k8s client 的認(rèn)證方式現(xiàn)在只有 kubeconfig 一種。目前上游正在提議支持對(duì)接外部鑒權(quán)系統(tǒng),以減少類似證書回滾、證書保存等問題;
- 支持 bearer tokens;支持 mTLS;等其他動(dòng)態(tài)認(rèn)證方式;
- 動(dòng)態(tài)認(rèn)證的配置通過 configmap 下發(fā);其中包括認(rèn)證系統(tǒng)的配置,工具等;
(c) Service Topology: add graduation criteria:https://github.com/kubernetes/enhancements/pull/1132
- 支持 k8s 服務(wù)拓?fù)涓兄牧髁抗芾?#xff0c;實(shí)現(xiàn)服務(wù)的“本地訪問”,本地可能包括:同一個(gè) region,同一個(gè) node,同一個(gè) ns 等;
- 需要支持“本地服務(wù)”的健康檢查,LB 規(guī)則等;考慮增加:PodLocator controller,kube-proxy 支持感知服務(wù)的拓?fù)渑渲?#xff0c;dns 支持拓?fù)涓兄?#xff1b;
2. Kubernetes v1.16.0-alpha.1 發(fā)布
其中幾個(gè)需要重點(diǎn)關(guān)注的更新包括:
- k8s 原生支持 api 響應(yīng)壓縮;如果 client 請(qǐng)求 Header 中帶 Accept-Encoding: gzip,且 response body 大于 128KB,那么客戶端會(huì)接收到 GZIP 壓縮的響應(yīng);go client 默認(rèn)支持,其他語言客戶端需要適配;參考(#77449, @smarterclayton)
- 新增 runtimeclass admission controller,用來給 pod 配置特定 runtime 類型的 overhead,比如 kata 容器和 runc 的 pod overhead 就會(huì)差別很大;PodOverhead 在 1.16 中是一個(gè) alpha 特性;參考(#78484, @egernst)
3. knative 項(xiàng)目
(a) 簡化 eventing 的事件消費(fèi)處理: 社區(qū)正在計(jì)劃簡化事件消費(fèi)處理,Google 正在進(jìn)行原型的設(shè)計(jì),后續(xù)會(huì)將相關(guān)代碼進(jìn)行分享。
(b) 縮容時(shí)可配置自定義策略來選擇 pod 縮容:暫定將在 1.0 版本提供 proposal
(c) 基于 Envoy Filter的Knative Activator 方案:Istio Team 最近給 knative 提出的 Knative Activator 新方案,通過在 Ingress Gateway 的 Envoy 中加入一個(gè)特殊的 filter,來實(shí)現(xiàn) Activator 的功能。目前正在進(jìn)行 POC,通過 Mixer Adapter 來實(shí)現(xiàn)激活 Autoscaler。
開源項(xiàng)目推薦
1. IBM 開源的 Serverless 方案 – kabanero:
kabanero 構(gòu)建在 knative, istio,tekton之上,提供build、流量管理、CICD等能力,同時(shí)支持Eclipse codewind,Eclipse Che等IDE對(duì)接;目前主要面向 Java 生態(tài)。
2. kyverno, 一個(gè) Kubernetes 原生的 Policy Engine 項(xiàng)目:
(a) kyverno作為一個(gè) dynamic admission controller 運(yùn)行在k8s集群中,接受 APIServer 的 Admission WebHook HTTP 回調(diào)請(qǐng)求,來匹配類似資源的類型,名稱,標(biāo)簽,資源規(guī)格等檢查策略;
- 可以看到,相比于 OPA,kyverno 更加輕量級(jí),可以認(rèn)為只是 K8s 本身的 Policy 能力的一個(gè)封裝
(b) 這些檢查策略可以通過kyverno的自定義資源類型kyverno.io/v1alpha1來定義;
(c) 主要的使用場景是,可以對(duì)相同應(yīng)用在不同部署環(huán)境做不同策略的 admission 的 validating 和 mutating
本周閱讀推薦
知名技術(shù)媒體發(fā)布了對(duì) Kubernetes 生態(tài)在 2020 年的趨勢預(yù)測,主要包括了三個(gè)重點(diǎn)方向:
(a) Serverless 架構(gòu)
(b) 混合云架構(gòu)
(c) 端到端的 CI/CD 方案
Helm 是目前云原生技術(shù)體系中進(jìn)行應(yīng)用管理最被廣泛使用的開源項(xiàng)目,沒有之一。根據(jù) CNCF 剛剛發(fā)布的 KubeCon EU 2019 的總結(jié)報(bào)告,Kubernetes(k8s),Prometheus 和 Helm 這三個(gè)項(xiàng)目,再次蟬聯(lián) KubeCon 上最被關(guān)注的開源項(xiàng)目前三名。如果您還不了解 Helm V3,可以移步《深度解讀Helm 3: 猶抱琵琶半遮面》
我們知道 Kubernetes 中關(guān)于使用存儲(chǔ)卷的機(jī)制有 In-Tree、Flexvolume 模式,那為何還要提出 CSI 方式呢?CSI 標(biāo)準(zhǔn)使 K8S 和存儲(chǔ)提供者之間將徹底解耦,將存儲(chǔ)的所有的部件作為容器形式運(yùn)行在 K8S 上,它具有怎樣的協(xié)議規(guī)范,如何部署及使用呢?
總結(jié)
以上是生活随笔為你收集整理的云原生生态周报 Vol. 11 | K8s 1.16 早知道的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Knative 基本功能深入剖析:Kna
- 下一篇: 解锁云原生 AI 技能|在 Kubern