Kubernetes 本地設定?

Kubernetes 本地設定?

我想知道如何在我的 Ubuntu 20 DPS 上設定 kubernetes 叢集我的意思是,我已經安裝了 docker 和 kubeadm 我知道如何進行部署、服務和少量入口,我使用了一個已經配置的 kubernetes 叢集(aks)

我需要設定我的 dps 來公開一些 Web 應用程式(網站、api、cdn 等),而設定 kubernetes 需要執行哪些步驟?如何在特定子 DNS 上公開某個網站(例如第三層網域:trd.mysite.com)

我需要安裝一些插件,如 nginx-controller、metallb 和 flannel 嗎?我不明白這些網路的東西,我也對課程/教程感興趣,請幫助我,謝謝!

編輯:這些是我的yaml,現在我只想在主域(xxxx.com)上公開一個web 應用程序,然後我將添加一個內部REST api 和另一個將使用其餘api 並在第三級域上公開的web 應用程式( yyy.xxxxx.com) http://www.mediafire.com/file/c7qwouqri441wek/Kube.zip/file

答案1

好吧,那麼看吧。為了能夠成功運行伺服器,您將需要:

1. 泊塢窗

2.如果您喜歡使用安裝庫貝德姆- 您需要以下 Kubernetes 軟體套件。我們在這個答案中僅討論 kubeadm 方式。請參閱內部文件本身以取得其他工具。

否則你可以使用例如迷你庫貝,庫貝噴霧,種類。我喜歡minikube,很善良。

  • kind 是一個使用 Docker 容器「節點」來運行本地 Kubernetes 叢集的工具。 kind 主要是為了測試 Kubernetes 本身而設計的,但也可以用於本地開發或 CI。
  • MiniKube 通常是當有人想要開始時發現的第一個 Kubernetes 技術(Kubernetes 官方文件提供了使用 miniKube 部署第一個叢集的教學)。這是一個非常簡單的解決方案,可以安裝在筆記型電腦上,並且專為學習和測試而設計。啟動時,它將部署一個單節點叢集(最小規模)。

您可以在此處閱讀有關所有工具的資訊:

3. CNI- 用於集群內正確的網路。

CNI 插件有幾十個,你應該選擇一些。

最受歡迎的是法蘭絨和印花布。有時(取決於您的需求),您可以安裝運河。簡而言之 - 您正在同時安裝 Calico網路政策+ Flannel 作為網路的常規 CNI。

這是重要提示!要正確安裝 CNI - 您應該在建立叢集之前提前選擇它。那是因為您必須使用正確的--pod-network-cidr=標誌來初始化叢集。

  • kubeadm init --pod-network-cidr=10.244.0.0/16用於法蘭絨
  • kubeadm init --pod-network-cidr=192.168.0.0/16對於印花布
  1. 入口入口控制器

管理對叢集中服務的外部存取的 API 對象,通常是 HTTP。

Ingress 可以提供負載平衡、SSL 終止和基於名稱的虛擬託管。

為了使 Ingress 資源正常運作,叢集必須有一個入口控制器跑步。

不同入口控制器的完整清單:入口控制器。比較矩陣為這裡

最受歡迎的:Nginx 入口控制器、Kubernetes 入口控制器(OOB,也是基於 nginx。但這些是不同的)、Traefik


建立集群的步驟:

您應該取消 master 的污染,以便可以在其上運行 pod。如果沒有這個,你將無法在你的 master 上運行 pod。

kubectl taint nodes --all node-role.kubernetes.io/master-

答案2

在閱讀所有內容之前,請研究 kubespray,它使用 ansbile 為您創建集群,但是如果您想了解 kubernetes 在幕後如何工作,請遵循答案的其餘部分。

設定 kubernetes 叢集的第一步是了解元件及其工作原理,
僅安裝 kubeadm 不會啟動叢集,您應該在部署 yaml 檔案之前安裝滿足您需求的每個元件。

這是一個 github 頁面鏈接,它使用 kubeadm 來啟動整個 kubernetes 集群,其中包含 3 個主節點和任意數量的工作節點。
注意:它使用舊版本,但對於學習 kubernetes 元件來說是一個很好的參考。確保檢查有關重要集群組件的 yaml 創建的腳本,並閱讀集群組件的詳細資訊以了解其功能。
https://github.com/cookeem/kubeadm-ha/blob/master/v1.11/README.md
如果您想在網域上的叢集上公開 Web 應用程序,您需要安裝入口控制器管理器,它允許您建立入口資源。
這是來自 kubernetes 文件的 ingress yaml 範例
https://kubernetes.io/docs/concepts/services-networking/ingress/
如果您想使用有效的憑證進行 https 操作,您可以使用 kubernetes Secrets 或在叢集上設定憑證管理員以自動進行加密取得和續訂,
這兩個選項都有詳細記錄,您所需要做的就是進行google搜尋以找到如何製作您的入口資源使用這些憑證
確保您的網域指向一個叢集節點(工作節點或主節點)的公共 IP 位址

Metallb 與本地叢集一起使用,以提供雲端提供者內建的負載平衡器服務類型

flannel 是一個為叢集提供網路的網路插件,
如果您希望 pod 能夠相互通信,您應該有一個網路插件 cni,例如 flannel、calico 或任何其他支援的插件,
將 flannel 視為叢集的網路交換機

相關內容