「開箱即用」 的 Kubernetes 集群
這是我以前的 10 分鐘內配置 Kubernetes 教程的精簡版和更新版。我刪除了一些我認為可以去掉的內容,所以,這個指南仍然是通順的。當你想在雲上創建一個集群或者儘可能快地構建基礎設施時,你可能會用到它。
1.0 挑選一個主機
我們在本指南中將使用 Ubuntu 16.04,這樣你就可以直接拷貝/粘貼所有的指令。下面是我用本指南測試過的幾種環境。根據你運行的主機,你可以從中挑選一個。
- DigitalOcean - 開發者雲
- Civo - UK 開發者雲
- Packet - 裸機雲
- 2x Dell Intel i7 伺服器 —— 它在我家中
Civo 是一個相對較新的開發者雲,我比較喜歡的一點是,它開機時間只有 25 秒,我就在英國,因此,它的延遲很低。
1.1 準備機器
你可以使用一個單台主機進行測試,但是,我建議你至少使用三台機器,這樣你就有一個主節點和兩個工作節點。
下面是一些其他的指導原則:
- 最好選至少有 2 GB 內存的雙核主機
- 在準備主機的時候,如果你可以自定義用戶名,那麼就不要使用 root。例如,Civo 通常讓你在
ubuntu
、civo
或者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 '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 項目的示例。
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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive