拓扑结构

在这里插入图片描述

由下向上的去构建整体架构。
1、构建文件共享
2、构建数据库tgn-db-deploy,并开放service,tgn-db-service(集群内部开放端口3310)
3、构建tgn-app-deploy(注意数据库配置为,tgn-db-service:3310)
4、构建tgn-app-service(集群内部开放端口80)
5、通过端口转发,开放宿主机master中的tgn-app-service对外开放的端口

1、构建NFS文件共享

通过在主服务器上构建文件共享,让子节点进行挂载

主服务器:

创建共享文件夹目录,并放置好程序包和sql脚本等

vim /etc/exports
共享文件夹目录 主机ip/24(rw,sync)

重启服务
systemctl restart nfs.service
systemctl restart rpcbind.service

验证
exportfs
子节点:
创建本地挂载文件夹
mkdir /usr/local/mytest

挂载主服务器共享文件夹
mount masterip:/共享文件夹目录  /本地挂载文件夹目录

进入本地挂载文件夹目录,如果出现了主服务中共享文件夹的程序包或脚本,即挂载成功

部署并初始化数据库

1、编写deployment,注意配置好服务器数据卷,以及配置容器挂载点。mysql初始化执行目录为/docker-entrypoint-initdb.d
2、执行部署,可以通过kubectl get pod 配合 kubectl describe pod podid,查看pod event当前状态
(注意部署时每个节点都要配置好共享文件夹,否则导致初始化脚本不能放于mysql镜像的,/docker-entrypoint-initdb.d目录下,造成数据库未初始化)

mysql -uroot -proot
show databases;
use databsename;
show tables; 查看数据库初始化情况

3、编写service,(service name :abc-db-service ) 。 并开放pod节点对集群内部端口,3306-》XXXX端口。
4、执行部署,查看kubectl describe service serviceid

部署web应用

1、编写deployment,注意配置好服务器数据卷,和容器挂载点。
2、通过kubectl get deployment/pod查看状态
kubectl describe pod podid查看详细信息
kubectl logs poid查看pod日志
kubectl get pod -o wide查看pod详细信息如Ip等
3、注意将web应用的数据库ip端口,改为数据库service的名称+数据库service的端口
[abc-db-service:XXXX](访问集群内部service,见部署并初始化数据3,4步骤)
4、编写service
在这里插入图片描述
targetPort:容器对外开放端口, port:集群内开放端口
5、测试集群内部的访问情况
kubectl describe service servicename 查看serviceip, curl serviceip/adf?pid=2323
6、对外开放端口,使用端口转发

vim /etc/rinetd.conf
0.0.0.0 80 serviceip 80
rinetd -c /etc/rinetd.conf 
netstat -tulpn

7、通过主节点ip访问

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐