作者 | Alex Ellis
譯者 | qhwdw ? ? ? ? ? 共計翻譯:105 篇 貢獻時間:177 天
這是我以前的 10 分鐘內配置 Kubernetes[1] 教程的精簡版和更新版。我刪除了一些我認為可以去掉的內容,所以,這個指南仍然是通順的。當你想在雲上建立一個叢集或者盡可能快地構建基礎設施時,你可能會用到它。
1.0 挑選一個主機
我們在本指南中將使用 Ubuntu 16.04,這樣你就可以直接複製/貼上所有的指令。下麵是我用本指南測試過的幾種環境。根據你執行的主機,你可以從中挑選一個。
Civo 是一個相對較新的開發者雲,我比較喜歡的一點是,它開機時間只有 25 秒,我就在英國,因此,它的延遲很低。
1.1 準備機器
你可以使用一個單臺主機進行測試,但是,我建議你至少使用三臺機器,這樣你就有一個主節點和兩個工作節點。
下麵是一些其他的指導原則:
ubuntu
、civo
或者 root
中選一個。現在,在每臺機器上都執行以下的步驟。它將需要 5-10 鐘時間。如果你覺得太慢了,你可以使用我放在 Gist[5] 的指令碼 :
$ 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 記憶體,你可能覺得這個要求很奇怪,如果你對這個做法感到好奇,你可以去 這裡閱讀它的相關內容[6]。
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[7] 和 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[7] 的 Weave Net,它是 Kebernetes 社群中非常流行的選擇之一。它近乎不需要額外配置的 “開箱即用”。
$ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
如果在你的主機上啟用了私有網路,那麼,你可能需要去修改 Weavenet 使用的私有子網路,以便於為 Pod(容器)分配 IP 地址。下麵是命令示例:
$ curl -SL "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')&env.IPALLOC;_RANGE=172.16.6.64/27" \
| kubectl apply -f -
Weave 也有很酷的稱為 Weave Cloud 的視覺化工具。它是免費的,你可以在它上面看到你的 Pod 之間的路徑流量。這裡有一個使用 OpenFaaS 專案的示例[8]。
2.2 在叢集中加入工作節點
現在,你可以切換到你的每一臺工作節點,然後使用 1.5 節中的 kubeadm join
命令。執行完成後,登出那個工作節點。
3.0 收穫
到此為止 —— 我們全部配置完成了。你現在有一個正在執行著的叢集,你可以在它上面部署應用程式。如果你需要設定儀錶板 UI,你可以去參考 Kubernetes 檔案[9]。
$ 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 叢集。閱讀在這裡的我的評估和第一印象[10]。
via: https://blog.alexellis.io/your-instant-kubernetes-cluster/
作者:Alex Ellis[12] 譯者:qhwdw 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出