1. 程式人生 > >【從零開始/親測國內外均可】基於阿里雲Ubuntu的kubernetes(k8s)主從節點分散式叢集搭建——分步詳細攻略v1.11.3【準備工作篇】

【從零開始/親測國內外均可】基於阿里雲Ubuntu的kubernetes(k8s)主從節點分散式叢集搭建——分步詳細攻略v1.11.3【準備工作篇】

從零開始搭建k8s叢集——香港節點無牆篇【大陸節點有牆的安裝方法我會在每一步操作的時候提醒大家的注意,並告訴大家如何操作】

由於容器技術的火爆,現在使用K8s開展服務變得越來越廣泛了。

本攻略是基於阿里雲主機搭建的一個單主節點和單從節點的最簡k8s分散式叢集。

為了製作本攻略,特地重灌了系統,將系統環境變為剛買到的雲主機狀態。

真正的從零開始搭建k8s叢集!就讓我們開始吧!

注意!下面的所有的操作都必須在每一臺欲加入k8s叢集的節點上執行一遍,不論主從,因此不要忘記遺漏哪臺節點沒有安裝噢!

Step1 真真正正的一臺剛剛申請的阿里雲主機,什麼都沒裝。可以看到什麼命令都沒有。

【!】這裡要注意,k8s對於加入叢集的節點的主機配置是有需求的。這裡我把官網的最低配置要求複製在這裡了。

  • One or more machines running a deb/rpm-compatible OS, for example Ubuntu or CentOS. (作業系統需求,我個人建議用Ubuntu)
  • 2 GB or more of RAM per machine. Any less leaves little room for your apps. (叢集所有節點的記憶體至少2GB)
  • 2 CPUs or more on the master. (master節點至少2個CPU)
  • Full network connectivity among all machines in the cluster. A public or private network is fine.(有良好的公網和內網網路)

Step2 由於k8s是容器管理平臺,而其安裝和管理容器是基於Docker的。因此需要先下載相應版本的docker。

在這裡選擇安裝k8s v1.11 的官方推薦docker版本——docker-ce 17.03

apt-get update

apt-get install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

add-apt-repository "deb https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"
# 可以使用 apt-cache madison docker 命令來檢視目前可以下載安裝的docker版本
apt-get update && apt-get install -y docker-ce=$(apt-cache madison docker-ce | grep 17.03 | head -1 | awk '{print $3}')

在執行完上述的命令之後,輸入 docker version 檢視docker-c3 17.03的安裝是否成功。

如果得到如下圖顯示的情況,表明docker-c3 17.03安裝成功。

Step3 安裝kubeadm、kubelet 和 kubectl

這裡要特別注意kubeadm、 kubelet 和 kubectl 的版本必須要一致!否則就會出現各種難以名狀的錯誤,親測翻車... 所以在使用apt-get安裝時一定要指明你安裝的版本。這裡我們全部選擇目前較為穩定的1.11.3版本。

apt-get update && apt-get install -y apt-transport-https curl

【!】注意,這一步在國內節點操作的話會卡死,需要提前安裝VPN!

# 這一步要注意,如果在國內節點執行這個操作,是會卡死的,因為需要連線谷歌伺服器
# 因此,需要提前為你的ubuntu安裝VPN,保證 curl www.google.com 能成功獲取到資訊,才能執行這個命令
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

apt-get update

apt-get install kubeadm=1.11.3-00
# 這裡要注意一下,在k8s v1.12 推出後, kubeadm雖然指定了版本,但是會將最近版本的kubectl和kubelet
# 一併下載下來,導致版本不匹配
# 因此可以使用 apt-get --purge remove kubectl 及 apt-get --purge remove kubelet 解除安裝預設安裝的最新版本
# 轉而用 apt-get install kubectl=1.11.3-00 及 apt-get install kubelet=1.11.3-00 重新安裝和kubeadm對應的版本

安裝完成後,使用 kubeadm version 命令來驗證安裝的版本是否正確以及是否安裝成功。若出現以下情況說明安裝成功。

同樣的方式安裝kubectl

# 可以使用 apt-get --purge remove kubectl 來解除安裝之前安裝的不匹配版本的kubectl
apt-get install kubectl=1.11.3-00

驗證kubectl安裝是否成功以及版本是否正確。

同樣的方式安裝kubelet

# 可以使用 apt-get --purge remove kubelet 來解除安裝之前安裝的不匹配版本的kubelet
apt-get install kubelet=1.11.3-00

驗證kubelet安裝是否成功以及版本是否正確。

到目前為止,所有的安裝k8s的工具就準備齊全了。要注意,上述操作必須要在每一臺欲加入k8s叢集的節點,不論主從,都要準備的操作,因此不要忘記遺漏哪臺節點沒有安裝噢!

後續的步驟就在我的下一篇部落格裡講到。歡迎大家繼續閱讀!