簡體   English   中英

Kubernetes 雲提供商

[英]Kubernetes cloud provider

我是 Kubernetes 的新手,他們是一個我不確定完全理解的概念:雲提供商。

  • 我已經使用 RKE(Rancher 引擎)安裝了我的 Kubernetes 集群。
  • 我的集群設置在rancher2之上。
  • 我的節點是托管 OVH 服務器的虛擬機。

我設法運行具有 L7 入口和 ClusterIP 服務的應用程序,但每次我嘗試使用 L4 LoadBalancer 時,LoadBalancer 都卡在掛起狀態。 根據https://github.com/rancher/rancher/issues/14424,這是因為我沒有任何 CloudProvider。

但是 CloudProvider 的目的究竟是什么? 不是要在雲上運行 Kubernetes 節點、pods 嗎? 如果是的話,如果我的應用程序是 pods 並且由於我的配置已經在雲上並且可以從外部訪問,我為什么要費心去獲取 CloudProvider。

所以我的以下問題是:

  • CloudProvider 的角色究竟是什么?
  • 它在我的環境中有用嗎?
  • 是否必須擁有 CloudProvider 才能運行 L4 Load Balancer?
  • L4 LoadBalancer 的替代品是什么?
  • 我不能讓自定義 CloudProvider 不依賴此處列出的其中之一: https ://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/ 嗎? 像運行 NGINX 的自托管 CloudProvider 之類的?

感謝您對此主題的任何澄清/建議。 ——

牧場主的情況下

外部雲提供商是一個 kubernetes 控制器,它運行 kubernetes 運行所需的特定於雲提供商的循環。 這些循環最初是 kube-controller-manager 的一部分,但它們將 kube-controller-manager 與雲提供商特定代碼緊密耦合。 為了釋放kubernetes項目的這種依賴,引入了cloud-controller-manager。

這將我們帶到了Kubernetes Cloud Controller Manager的主題

Kubernetes v1.6 引入了一個名為 cloud-controller-manager 的新二進制文件。 cloud-controller-manager 是一個嵌入雲特定控制循環的守護進程。 這些特定於雲的控制循環最初位於 kube-controller-manager 中。 由於與 Kubernetes 項目相比,雲供應商以不同的速度開發和發布,將供應商特定代碼抽象為雲控制器管理器二進制文件允許雲供應商獨立於核心 Kubernetes 代碼發展。

關於 LoadBalancer 部分:

  • 有一個指南顯示了如何創建外部負載均衡器。 它說:

您需要有一個 Kubernetes 集群,並且必須配置 kubectl 命令行工具才能與您的集群通信。

  • 但是,如果您需要替代方案,則可能需要使用Ingress

管理對集群中服務的外部訪問的 API 對象,通常是 HTTP。 Ingress 可以提供負載平衡、SSL 終止和基於名稱的虛擬主機。

如果你想更好地了解這個概念,而不是查看這個 SO 線程

最后關於自定義Cloud Provider 可以為 RKE 啟用不同的雲提供商:

如果您想啟用不同的雲提供商,RKE 允許自定義雲提供商選項。 必須提供名稱,並且自定義雲提供商選項可以作為customCloudProvider的多行字符串customCloudProvider

我希望它有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM