版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/83714209
本文是《CentOS7环境部署kubenetes1.12版本五部曲》系列的第三篇,上篇文章创建了kubernetes环境的master节点,本章的目标是在kubernetes环境加入node节点,并在上面部署Pod和Service进行验证;
准备node节点机器
作为要加入kubernetes的node机器,请按照《CentOS7环境部署kubenetes1.12版本五部曲之一:标准化机器》一文的步骤对机器做初始化;
整个环境有四台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:
[root@localhost ~]# 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
控制台提示创建成功:
[root@localhost ~]# 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的信息如下:
[root@localhost ~]# 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;