今夜
用於準備本資料的資訊取自
我們先從 SIG cluster-lifecycle 的重要介紹開始: 動態故障轉移集群 Kubernetes(或更準確地說,自架 HA 部署)現在 kubeadm
(init
и join
)。 簡而言之,為此:
- 集群使用的證書被轉移為秘密;
- 可以在 K8s 叢集內使用 etcd 叢集(即擺脫先前存在的外部依賴)
etcd 操作符 ; - 記錄提供容錯配置的外部負載平衡器的建議設定(將來計劃消除這種依賴性,但現階段還沒有)。
使用 kubeadm 建立的 Kubernetes HA 叢集的架構
實作細節可以參見
API
團隊 apply
一般來說 聲明式物件管理 kubectl
在 api 伺服器中。 開發商自己簡短地解釋了他們的決定: kubectl apply
- 在 Kubernetes 中使用配置的基本部分,然而,“它充滿了錯誤並且難以修復”,因此需要將該功能恢復正常並轉移到控制平面。 當今存在的問題的簡單明了的例子:
有關實施的詳細資訊位於
提供 alpha 版本 kubectl
)在您這邊執行驗證(在 kubectl create
и kubectl apply
)並根據方案(kubectl explain
)。 詳細資訊 - 在
預先存在的日誌 O_APPEND
(但不是 O_TRUNC
)以避免在某些情況下遺失日誌,並方便使用外部實用程式截斷日誌以進行輪換。
同樣在 Kubernetes API 的上下文中,可以注意到, PodSandbox
и PodSandboxStatus
runtime_handler
記錄有關的信息 RuntimeClass
在 pod 中(在有關文本中了解更多) AdmissionReview
他們支持。 最後,Admission Webhooks 規則現在是
貯存
PersistentLocalVolumes
subPath
subPathExpr
,現在用於確定所需的目錄名稱。 該功能最初出現在 Kubernetes 1.11 中,但在 1.14 中仍處於 alpha 版本狀態。
與先前的 Kubernetes 版本一樣,針對積極開發的 CSI(容器儲存介面)引入了許多重大變更:
CSI
可用(作為 alpha 版本的一部分) ExpandCSIVolumes
,以及特定 CSI 驅動程式中對此操作的支援的可用性。
alpha 版本中 CSI 的另一個功能 - CSIInlineVolume
功能門。
與CSI 相關的Kubernetes「內部」也取得了進展,這些進展對於最終用戶(系統管理員)來說並不那麼明顯......目前,開發人員被迫支援每個儲存插件的兩個版本:一個- “在舊方法”,在 K8s 程式碼庫內部(在 -tree 中),第二個 - 作為新 CSI 的一部分 (閱讀更多相關信息,例如,
這一切都導致了 alpha 版本達到了
此外,還支援具有 CSI 的區塊設備(CSIBlockVolume
)
節點/Kubelet
推出 Alpha 版本 /metrics/resource/v1alpha1
。 開發商的長期策略
一個非常有趣的細微差別:儘管與使用 Prometheus 格式的各種情況相比,gRPC 端點具有明顯的效能優勢 (請參閱下面的基準之一的結果),作者更喜歡 Prometheus 的文本格式,因為這個監控系統在社群中有明確的領導地位。
「gRPC 與主要監控管道不相容。 Endpoint 僅適用於向 Metrics Server 傳送指標或監控與其直接整合的元件。 在 Metrics Server 中使用快取時 Prometheus 文字格式的效能 夠好了 鑑於 Prometheus 在社區中的廣泛採用,我們更喜歡 Prometheus 而不是 gRPC。 一旦 OpenMetrics 格式變得更加穩定,我們將能夠使用基於原型的格式來接近 gRPC 性能。”
在新的 Kubelet 端點中使用 gRPC 和 Prometheus 格式進行指標比較的效能測試之一。 更多圖表和其他詳細資訊可以在
其他變化包括:
- 現在的 Kubelet(一次)
試圖阻止 在重新啟動和刪除操作之前容器處於未知狀態。 - 當使用
現在到初始化容器PodPresets
添加 與常規集裝箱的資訊相同。 - 庫貝萊特
開始使用 usageNanoCores
來自 CRI 統計提供程序,以及 Windows 上的節點和容器添加 網路統計。 - 作業系統和架構資訊現在記錄在標籤中
kubernetes.io/os
иkubernetes.io/arch
節點物件(從 beta 轉移到 GA)。 - 能夠為 pod 中的容器指定特定的系統使用者群組(
RunAsGroup
,出現在K8s 1.11 )先進的 測試版之前(預設為啟用)。 - du 和 find 在 cAdvisor 中使用,
更換 關於 Go 的實現。
CLI的
在 cli-runtime 和 kubectl 中
簡單檔案使用範例
另外:
-
添加 新團隊kubectl create cronjob
,其名字不言而喻。 - В
kubectl logs
現在你可以結合 旗幟-f
(--follow
用於流日誌)和-l
(--selector
用於標籤查詢)。 - Kubectl
教過的 複製通配符選擇的檔案。 - 致團隊
kubectl wait
添加 旗--all
選擇指定資源類型的命名空間中的所有資源。
他人
以下功能已獲得穩定 (GA) 狀態:
-
,在 Pod 規格中用於定義 Pod 準備情況中考慮的附加條件;ReadinessGate
- 支援大頁面(功能門稱為
);HugePages
-
自訂PodDNS ; - 優先權API
Pod 優先權與搶佔 .
Kubernetes 1.14 中引入的其他變更:
- 預設 RBAC 策略不再允許 API 訪問
discovery
иaccess-review
未經身份驗證的用戶 (未經驗證). - 官方 CoreDNS 支持
確保 僅限Linux,因此當使用kubeadm在叢集中部署它(CoreDNS)時,節點必須只能在Linux上運行(使用nodeSelectors來解決此限制)。 - 現在預設 CoreDNS 配置
用途 轉發插件 而不是代理。 另外,在 CoreDNS 中添加 readinessProbe,它會阻止適當的(未準備好服務)pod 上的負載平衡。 - 在 kubeadm 中,分階段
init
或upload-certs
,成為可能 載入將新控制平面連接到 kubeadm-certs 密鑰所需的憑證(使用標誌--experimental-upload-certs
). - 適用於 Windows 安裝的 alpha 版本已經出現
支持 gMSA(群組託管服務帳戶)- Active Directory 中也可以由容器使用的特殊帳戶。 - 對於 G.C.E.
活性 etcd 和 kube-apiserver 之間的 mTLS 加密。 - 使用/依賴軟體的更新:kubeadm 中支援 Go 1.12.1、CSI 1.1、CoreDNS 1.3.1、Docker 18.09,支援的最低 Docker API 版本現在為 1.26。
聚苯乙烯
另請閱讀我們的博客:
- «
Kubernetes 1.13:主要創新概述 “; - «
Kubernetes 1.12:主要創新概述 “; - «
Kubernetes 1.11:主要創新概述 “; - «
Kubernetes 1.10:主要創新概述 “。
來源: www.habr.com