kubeadm搭建kubernetes集群之二:創建master節點


在上一章kubeadm搭建kubernetes集群之一:構建標准化鏡像中我們用VMware安裝了一個CentOS7虛擬機,並且打算用這個虛擬機的鏡像文件作為后續整個kubernetes的標准化鏡像,現在我們就以這個鏡像為基礎,開始安裝kubernetes集群吧;

前提條件

由於要用到谷歌的服務,所以要求您的網絡環境可以科學上網,具體的方案就不在這里說了;

復制文件

如下圖所示,cent7是我們上一章操作完成后對應的CentOS7的VMware文件夾,現在把這個文件夾復制三份一模一樣的,再分別重命名為maste、node1、node2: 
這里寫圖片描述

啟動master

打開VMware軟件,選中上面我們復制的master文件夾,選中里面的文件然后點擊“打開”按鈕,如下圖: 
這里寫圖片描述

如下圖,點擊紅框中的“編輯虛擬機設置”按鈕 
這里寫圖片描述

如下圖,在設置頁面中將虛擬機名字改成”master”: 
這里寫圖片描述

如下圖,點擊紅框中的按鈕啟動master: 
這里寫圖片描述

如下圖,在彈出的窗口中選擇“我已復制該虛擬機”: 
這里寫圖片描述

修改hostname再重啟master

等master啟動完畢,進入系統,修改/etc/hostname文件,這里面只有一行內容“localhost.localdomain”,改成”master”;

修改完hostname文件后,重啟master;

啟動kubelet服務

執行以下命令設置kubelet自啟動,然后再啟動kubelet服務:

systemctl enable kubelet;systemctl start kubelet

初始化kubernetes的master服務

執行以下命令,初始化kubernetes的master服務,此時由於要去下載谷歌服務的鏡像文件,所以請保證當前網絡可以科學上網:

kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=0.0.0.0

如果網絡沒有問題,就請耐心等待吧,大約二十分鍾就會完成init過程,如下圖:

這里寫圖片描述

注意上圖中的最后一句kubeadm join –token 4fccd2.b0e0f8918bd95d3e 192.168.119.132:6443,在node加入的時候我們就是用這一句來將node加入到集群的;

為什么init操作要用這么長時間呢?執行docker images命令可以看到下載多了很多鏡像,如下圖:

這里寫圖片描述

新增了6個鏡像;

如果不能科學上網,可以使用下面的方法下載鏡像:

下載鏡像

在運行kubeadm之前,需要在本地先下載一系列images,這些images名稱和版本,可以運行kubeadm init,初始化后得到

具體會生成在/etc/kubernetes/manifest目錄下,通過grep命令可以列出,比如

cat etcd.yaml | grep gcr*
    image: gcr.io/google_containers/etcd-amd64:3.0.17

那具體需要下載哪些images和相應的版本呢? 可以參照kubernetes kubeadm手冊,具體地址

https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/

 查看kubeadm的版本號:

[root@master ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.5", GitCommit:"f01a2bf98249a4db383560443a59bed0c13575df", GitTreeState:"clean", BuildDate:"2018-03-19T15:50:45Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

這里就有比較清楚的版本和對應關系。

如何獲取鏡像

國內因為gcr.io被牆,所以要么通過代理FQ獲取,要么尋找其他辦法。我的辦法是訪問

https://hub.docker.com/,然后搜索kube-apiserver-amd64,會列出各位大神已經build好的images

 

進入源代碼倉庫如下圖:

點擊dockerfile查看鏡像打包的版本

 選擇相應的版本,進行pull

docker pull maichong/etcd-amd64:3.1.10 docker pull maichong/pause-amd64:3.0 docker pull maichong/kube-proxy-amd64:v1.9.2 docker pull maichong/kube-scheduler-amd64:v1.9.2 docker pull maichong/kube-controller-manager-amd64:v1.9.2 docker pull maichong/kube-apiserver-amd64:v1.9.2

下載完查看鏡像

 

創建kube目錄,添加kubectl配置

執行以下命令,把配置信息復制到執行目錄中:

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

添加Calico(網絡組件)

執行以下命令,安裝Calico

kubectl apply -f http://docs.projectcalico.org/v2.4/getting-started/kubernetes/installation/hosted/kubeadm/1.6/calico.yaml

檢查是否啟動成功

執行以下命令,看基礎服務的pod都起來了沒有:

kubectl get pods --all-namespaces

看到的pod信息如下圖所示,紅框中有一個pod並不是Running狀態,而是ContainerCreating:

這里寫圖片描述

這時候請耐心等待幾分鍾,再看就會變成下面的狀態:

這里寫圖片描述

用docker images命令看一下,發現多了幾個鏡像,如下圖:

這里寫圖片描述

用kubectl get node命令查看當前的節點信息,能看見只有一個master節點,如下圖:

這里寫圖片描述

至此,kubernetes集群的master節點就安裝完成了,因為還沒有加入node節點,所以此時還不能部署應用,等下一章我們將node節點加入后再部署應用試試;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM