歡迎光臨
每天分享高質量文章

“開箱即用” 的 Kubernetes 叢集 | Linux 中國

當你想在雲上建立一個叢集或者盡可能快地構建基礎設施時,你可能會用到它。
— Alex Ellis


致謝
編譯自 | https://blog.alexellis.io/your-instant-kubernetes-cluster/ 
 作者 | Alex Ellis
 譯者 | qhwdw ? ? ? ? ? 共計翻譯:105 篇 貢獻時間:177 天

這是我以前的 10 分鐘內配置 Kubernetes[1] 教程的精簡版和更新版。我刪除了一些我認為可以去掉的內容,所以,這個指南仍然是通順的。當你想在雲上建立一個叢集或者盡可能快地構建基礎設施時,你可能會用到它。

1.0 挑選一個主機

我們在本指南中將使用 Ubuntu 16.04,這樣你就可以直接複製/貼上所有的指令。下麵是我用本指南測試過的幾種環境。根據你執行的主機,你可以從中挑選一個。

◈ DigitalOcean[2] – 開發者雲
◈ Civo[3] – UK 開發者雲
◈ Packet[4] – 裸機雲
◈ 2x Dell Intel i7 伺服器 —— 它在我家中

Civo 是一個相對較新的開發者雲,我比較喜歡的一點是,它開機時間只有 25 秒,我就在英國,因此,它的延遲很低。

1.1 準備機器

你可以使用一個單臺主機進行測試,但是,我建議你至少使用三臺機器,這樣你就有一個主節點和兩個工作節點。

下麵是一些其他的指導原則:

◈ 最好選至少有 2 GB 記憶體的雙核主機
◈ 在準備主機的時候,如果你可以自定義使用者名稱,那麼就不要使用 root。例如,Civo 通常讓你在 ubuntucivo 或者 root 中選一個。

現在,在每臺機器上都執行以下的步驟。它將需要 5-10 鐘時間。如果你覺得太慢了,你可以使用我放在 Gist[5] 的指令碼 :

  1. $ curl -sL https://gist.githubusercontent.com/alexellis/e8bbec45c75ea38da5547746c0ca4b0c/raw/23fc4cd13910eac646b13c4f8812bab3eeebab4c/configure.sh | sh

1.2 登入和安裝 Docker

從 Ubuntu 的 apt 倉庫中安裝 Docker。它的版本可能有點老,但是,Kubernetes 在老版本的 Docker 中是測試過的,工作的很好。

  1. $ sudo apt-get update \

  2.  && sudo apt-get install -qy docker.io

1.3 禁用 swap 檔案

這是 Kubernetes 的強制步驟。實現它很簡單,編輯 /etc/fstab 檔案,然後註釋掉取用 swap 的行即可。

儲存它,重啟後輸入 sudo swapoff -a

一開始就禁用 swap 記憶體,你可能覺得這個要求很奇怪,如果你對這個做法感到好奇,你可以去 這裡閱讀它的相關內容[6]

1.4 安裝 Kubernetes 包

  1. $ sudo apt-get update \

  2.  && sudo apt-get install -y apt-transport-https \

  3.  && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

  4. $ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" \

  5.  | sudo tee -a /etc/apt/sources.list.d/kubernetes.list \

  6.  && sudo apt-get update

  7. $ sudo apt-get update \

  8.  && sudo apt-get install -y \

  9.  kubelet \

  10.  kubeadm \

  11.  kubernetes-cni

1.5 建立叢集

這時候,我們使用 kubeadm 初始化主節點並建立叢集。這一步僅在主節點上操作。

雖然有警告,但是 Weaveworks[7] 和 Lucas(他們是維護者)向我保證,kubeadm 是可用於生產系統的。

  1. $ sudo kubeadm init

如果你錯過一個步驟或者有問題,kubeadm 將會及時告訴你。

我們複製一份 Kube 配置:

  1. mkdir -p $HOME/.kube  

  2. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  

  3. sudo chown $(id -u):$(id -g) $HOME/.kube/config

確保你一定要記下如下的加入 token 的命令。

  1. $ sudo kubeadm join --token c30633.d178035db2b4bb9a 10.0.0.5:6443 --discovery-token-ca-cert-hash sha256:<hash>

2.0 安裝網路

許多網路提供商提供了 Kubernetes 支援,但是,預設情況下 Kubernetes 都沒有包括。這裡我們使用來自  Weaveworks[7] 的 Weave Net,它是 Kebernetes 社群中非常流行的選擇之一。它近乎不需要額外配置的 “開箱即用”。

  1. $ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

如果在你的主機上啟用了私有網路,那麼,你可能需要去修改 Weavenet 使用的私有子網路,以便於為 Pod(容器)分配 IP 地址。下麵是命令示例:

  1. $ curl -SL "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC;_RANGE=172.16.6.64/27" \

  2. | kubectl apply -f -

Weave 也有很酷的稱為 Weave Cloud 的視覺化工具。它是免費的,你可以在它上面看到你的 Pod 之間的路徑流量。這裡有一個使用 OpenFaaS 專案的示例[8]

2.2 在叢集中加入工作節點

現在,你可以切換到你的每一臺工作節點,然後使用 1.5 節中的 kubeadm join 命令。執行完成後,登出那個工作節點。

3.0 收穫

到此為止 —— 我們全部配置完成了。你現在有一個正在執行著的叢集,你可以在它上面部署應用程式。如果你需要設定儀錶板 UI,你可以去參考 Kubernetes 檔案[9]

  1. $ kubectl get nodes

  2. NAME        STATUS    ROLES     AGE       VERSION  

  3. openfaas1   Ready     master    20m       v1.9.2  

  4. openfaas2   Ready     <none>    19m       v1.9.2  

  5. openfaas3   Ready     <none>    19m       v1.9.2  

如果你想看到我一步一步建立叢集並且展示 kubectl 如何工作的影片,你可以看下麵我的影片,你可以訂閱它。

你也可以在你的 Mac 電腦上,使用 Minikube 或者 Docker 的 Mac Edge 版本,安裝一個 “開箱即用” 的 Kubernetes 叢集。閱讀在這裡的我的評估和第一印象[10]


via: https://blog.alexellis.io/your-instant-kubernetes-cluster/

作者:Alex Ellis[12] 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂

© 2024 知識星球   網站地圖