kubernetes安裝(國內環境)
起
既然打算學習kubernetes,那麼首先要做的就是如何安裝k8s。由於k8s的很多核心原理都是基於Linux,所以如果打算學習kubernetes,在Linux上面安裝kubernetes是一個很好的建議。所以接下來就介紹如何在Linux上面安裝kubernetes。
承
kubernetes的國外安裝其實非常簡單,國內安裝的主要問題在於kubernetes部件所需的官方鏡像在 http://gcr.io(Google Cloud Container Registry)上,很不辛,這個網站被牆了。所以解決了這個問題,國內環境的安裝也就簡單了。
安裝環境
OS : Ubuntu 16.04
網路 : 國內網路,無VPN
目標 : 單節點集群安裝
Kubernetes需要安裝的部件如下:
最為簡單的方式是使用官方的快速安裝工具kubeadm,其中Kubeadm, Kubelet和kube-cni可以直接從ubuntu源中下載,剩下的部件有相應的docker鏡像,所以可以直接通過kubeadm init來獲取。由於需要獲取docker鏡像,所以在此之前,還要安裝docker。
總結下來,安裝步驟如下:
- 添加相應的源
- 下載Docker & Kubeadm & Kubelet & Kubernetes-cni
- 關閉swap
- 獲取鏡像列表,以便從國內獲取
- 初始化環境
- 配置授權信息, 以便可以便捷訪問kube-apiserver
- 添加網路插件
- 單節點,設置master節點也可以運行Pod(默認策略是master節點不運行)
- 部署其他插件
轉
下面將分步說明:
添加相應的源 由於需要下載Kubeadm,Kubelet和Kubernetes-cni,多以需要添加源。國外的直接添加google源,具體可以網上搜索。國內的推薦中科大的源,命令如下:
bash cat <<EOF > /etc/apt/sources.list.d/kubernetes.list deb http://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main EOF
下載Docker & Kubeadm & Kubelet & Kubernetes-cni
apt-get install -y docker.io kubelet kubernetes-cni=0.6.0-00 kubeadm
添加源之後,使用 apt-get update 命令會出現錯誤,原因是缺少相應的key,可以通過下面命令添加(E084DAB9 為上面報錯的key後8位):
gpg --keyserver keyserver.ubuntu.com --recv-keys E084DAB9
gpg --export --armor E084DAB9 | sudo apt-key add -
關閉swap
如果不關閉kubernetes運行會出現錯誤, 及時安裝成功了,node重啟後也會出現kubernetes server運行錯誤。
sudo swapoff -a #暫時關閉,永久關閉可以上網查詢
獲取鏡像列表
由於官方鏡像地址被牆,所以我們需要首先獲取所需鏡像以及它們的版本。然後從國內鏡像站獲取。
kubeadm config images list
獲取鏡像列表後可以通過下面的腳本從阿里雲獲取:
images=(
kube-apiserver:v1.12.1
kube-controller-manager:v1.12.1
kube-scheduler:v1.12.1
kube-proxy:v1.12.1
pause:3.1
etcd:3.2.24
coredns:1.2.2
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
done
初始化環境
這個就很簡單了,只需要簡單的一個命令:
kubeadm init
配置授權信息
所需的命令在init成功後也會有提示,主要是為了保存相關的配置信息在用戶目錄下,這樣不用每次都輸入相關的認證信息。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
添加網路插件
上面安裝成功後如果通過查詢kube-system下Pod的運行情況,會放下和網路相關的Pod都處於Pending的狀態,這是因為缺少相關的網路插件,而網路插件有很多個,可以選擇自己需要的。
安裝參考: https://kubernetes.feisky.xyz/bu-shu-pei-zhi/cluster/kubeadm#pei-zhi-network-plugin
單節點,設置master節點也可以運行Pod
kubernetes官方默認策略是worker節點運行Pod,master節點不運行Pod。如果只是為了開發或者其他目的而需要部署單節點集群,可以通過以下的命令設置:
kubectl taint nodes --all node-role.kubernetes.io/master-
部署其他插件
由於很多官方的插件所需鏡像也在 http://gcr.io 上,所以遇到這種情況,可以通過下面的方式獲取:
將yaml文件中鏡像地址的k8s.gcr.io替換成registry.cn-hangzhou.aliyuncs.com/google_containers
合
這些都是自己學習過程中的總結,所以有任何錯誤的地方,歡迎指正。附贈一份自己畫的步驟圖:
推薦閱讀:
TAG:環境 | Kubernetes | 科技 |