CentOS7環境部署kubenetes1.12版本五部曲之三:node節點加入
阿新 • • 發佈:2018-12-19
本文是《CentOS7環境部署kubenetes1.12版本五部曲》系列的第三篇,上篇文章建立了kubernetes環境的master節點,本章的目標是在kubernetes環境加入node節點,並在上面部署Pod和Service進行驗證;
準備node節點機器
整個環境有四臺CentOS7伺服器,如下所示:
hostname | IP地址 | 身份 | 配置 |
---|---|---|---|
localhost | 192.168.119.157 | master,主控節點 | 雙核,2G記憶體 |
node1 | 192.168.119.156 | node,一號業務節點 | 雙核,4G記憶體 |
node2 | 192.168.119.159 | node,二號業務節點 | 雙核,2G記憶體 |
normal | 192.168.119.158 | 普通linux伺服器 | 單核,1G記憶體 |
我們要操作的是node1機器,確保該機器已經做過標準化操作了,本次實戰會將其加入kubernetes叢集;
加入kubernetes
- ssh登入node1,身份是root;
- 修改/etc/hostname,確保每臺機器的hostname是唯一的,IP的地址為192.168.119.156的機器的hostname為node1;
- 在上一章《CentOS7環境部署kubenetes1.12版本五部曲之二:建立master節點》中,master節點初始化成功後,控制檯輸入了"kubeadm join 192.168.119.157:6443 --xxxxxxxxx"這樣的一段內容,現在請在node1上直接輸入這些內容,並按下回車鍵:
kubeadm join 192.168.119.157:6443 --token jtoche.kcb0kvylmdyfh089 --discovery-token-ca-cert-hash sha256:76090108cf1281c3c2b82b315f25d85380fadfa545581745c13600a0800016df
- 稍等幾分鐘後控制檯提示node1加入kubernetes成功:
[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "node1" as an annotation
This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.
Run 'kubectl get nodes' on the master to see this node join the cluster.
- 在master節點的控制檯輸入命令kubectl get nodes,可以看到最新加入的node1:
[[email protected] ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
localhost.localdomain Ready master 4h16m v1.12.2
node1 Ready <none> 15m v1.12.2
至此,node1節點已成功加入kubernetes叢集,接下來我們來驗證叢集環境是否能正常工作;
驗證環境
- 在master節點上執行以下命令,建立一個deployment的配置檔案:
cat <<EOF > ~/tomcat001.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: tomcat001
spec:
replicas: 1
template:
metadata:
labels:
name: tomcat001
spec:
containers:
- name: tomcat001
image: tomcat:7.0.82-jre7
ports:
- containerPort: 8080
EOF
- 再執行以下命令,建立一個service的配置檔案:
cat <<EOF > ~/tomcat001-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: tomcat001
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30006
selector:
name: tomcat001
EOF
- 執行以下命令,建立deployment和service:
kubectl create -f ~/tomcat001.yaml && kubectl create -f ~/tomcat001-svc.yaml
控制檯提示建立成功:
[[email protected] ~]# kubectl create -f ~/tomcat001.yaml && kubectl create -f ~/tomcat001-svc.yaml
deployment.extensions/tomcat001 created
service/tomcat001 created
- 新建的service型別是NodePort,因此通過Node節點所在機器的IP地址的30006埠即可訪問到tomcat服務,在瀏覽器訪問http://192.168.119.156:30006,可以正常訪問Tomcat服務,如下圖:
至此,node1節點加入kubernetes以及相關的驗證操作都成功完成,然後再按照同樣的方式將node2節點加入叢集;
- node2加入成功後,在master的控制檯輸入命令kubectl get nodes,可以看到node1,、node2的資訊如下:
[[email protected] ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
localhost.localdomain Ready master 11h v1.12.2
node1 Ready <none> 7h12m v1.12.2
node2 Ready <none> 82m v1.12.2
實踐到這裡,kubernetes叢集的搭建就基本上成功了,下一篇文章我們將做一些擴充套件工作,包括在其他機器上安裝和配置kubectl,以及安裝dashboard;