1. 程式人生 > >CentOS7環境部署kubenetes1.12版本五部曲之三:node節點加入

CentOS7環境部署kubenetes1.12版本五部曲之三:node節點加入

本文是《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

  1. ssh登入node1,身份是root;
  2. 修改/etc/hostname,確保每臺機器的hostname是唯一的,IP的地址為192.168.119.156的機器的hostname為node1;
  3. 在上一章《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
  1. 稍等幾分鐘後控制檯提示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.
  1. 在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叢集,接下來我們來驗證叢集環境是否能正常工作;

驗證環境

  1. 在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
  1. 再執行以下命令,建立一個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
  1. 執行以下命令,建立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
  1. 新建的service型別是NodePort,因此通過Node節點所在機器的IP地址的30006埠即可訪問到tomcat服務,在瀏覽器訪問http://192.168.119.156:30006,可以正常訪問Tomcat服務,如下圖: 在這裡插入圖片描述

至此,node1節點加入kubernetes以及相關的驗證操作都成功完成,然後再按照同樣的方式將node2節點加入叢集;

  1. 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;

五部曲全文連結