Linux中國

「開箱即用」 的 Kubernetes 集群

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

1.0 挑選一個主機

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

  • DigitalOcean - 開發者雲
  • Civo - UK 開發者雲
  • Packet - 裸機雲
  • 2x Dell Intel i7 伺服器 —— 它在我家中

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

1.1 準備機器

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

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

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

現在,在每台機器上都運行以下的步驟。它將需要 5-10 鍾時間。如果你覺得太慢了,你可以使用我放在 Gist 的腳本 :

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

1.2 登入和安裝 Docker

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

$ sudo apt-get update 
  && sudo apt-get install -qy docker.io

1.3 禁用 swap 文件

這是 Kubernetes 的強制步驟。實現它很簡單,編輯 /etc/fstab 文件,然後注釋掉引用 swap 的行即可。

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

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

1.4 安裝 Kubernetes

$ sudo apt-get update 
  && sudo apt-get install -y apt-transport-https 
  && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

$ echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" 
  | sudo tee -a /etc/apt/sources.list.d/kubernetes.list 
  && sudo apt-get update 

$ sudo apt-get update 
  && sudo apt-get install -y 
  kubelet 
  kubeadm 
  kubernetes-cni

1.5 創建集群

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

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

$ sudo kubeadm init

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

我們複製一份 Kube 配置:

mkdir -p $HOME/.kube  
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config  
sudo chown $(id -u):$(id -g) $HOME/.kube/config

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

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

2.0 安裝網路

許多網路提供商提供了 Kubernetes 支持,但是,默認情況下 Kubernetes 都沒有包括。這裡我們使用來自 Weaveworks 的 Weave Net,它是 Kebernetes 社區中非常流行的選擇之一。它近乎不需要額外配置的 「開箱即用」。

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

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

$ curl -SL "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d &apos;n&apos;)&env.IPALLOC_RANGE=172.16.6.64/27" 
| kubectl apply -f -

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

2.2 在集群中加入工作節點

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

3.0 收穫

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

$ kubectl get nodes
NAME        STATUS    ROLES     AGE       VERSION  
openfaas1   Ready     master    20m       v1.9.2  
openfaas2   Ready     <none>    19m       v1.9.2  
openfaas3   Ready     <none>    19m       v1.9.2  

如果你想看到我一步一步創建集群並且展示 kubectl 如何工作的視頻,你可以看下面我的視頻,你可以訂閱它。

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

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

作者:Alex Ellis 譯者:qhwdw 校對:wxy

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


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國