前两篇分享了如何通过VMware安装CentOS 7镜像,并再CentOS 7虚拟机中安装了一个单机模式的Kubernates(只有一个master节点),相信读者们都已经安装成功了。本文继于前两个篇章,将为我们展现如何在Kubernates中安装mysql服务和tomcat应用,并且通过前端页面完成一个简单的增删改查功能。
如果前面环境还没搭建的,可以参考前两篇文章:
1.环境准备
这里需要先安装 Kubernetes 和下载相关镜像,本文采用VMware Workstation 在本机中虚拟一个 64 位的 CentOS 虚拟机作为学习环境 虚拟机采用 NAT 的网络模式以便连接外网,然后使用 kubeadm 快速安装一个 Kubernetes 单机模式,具体可参考上一篇《K8s入门指南之环境搭建/部署初始化(单机模式)》。
2.安装MySql服务
(1)创建MySql的Deployment
为 MySQL服务创建一个Deployment定义文件mysql-deploy.yaml, 下面给出了 该文件的完整内容和说明:
apiVersion: apps/v1 # API 版本
kind: Deployment #副本控制器 RC
metadata:
labels: #标签
app: mysql
name: mysql #对象名称,全局唯一
spec:
replicas: 1 #预期副本数量
selector:
matchLabels:
app: mysql
template: #pod模板
metadata:
labels:
app: mysql
spec:
containers: #容器
- image: mysql:5.7
name: mysql
ports:
- containerPort: 3306 #容器端口
env:
- name: MYSQL_ROOT_PASSWORD #注入容器的环境变量
value: "123456"
(2)发布MySql到Kubernates
执行命令:
kubectl apply -f mysql-deploy.yaml

验证是否发布成功:
kubectl get deploy
kubectl get pods


状态ready一开始可能为0/1,因为发布消耗时间去下载Mysql的镜像等操作,这时候也不必担心,可能过一会儿(几分钟)就会调整过来。
(3)创建mysql-svc.yaml
创建一个与之关联的 Kubernetes Service——MySQL 的定义文件(文件名为mysql-svc.yaml) ,完整的内容和说明如下:
apiVersion: v1 # 版本号
kind: Service #标明是Kubernetes Service
metadata:
name: mysql #全局唯一的service名称
spec:
ports:
- port: 3306 # service提供服务的端口
selector:
app: mysql # service对应pod的标签
(4)创建MySql的service服务到Kubernetes
执行命令:
kubectl create -f mysql-svc.yaml

验证是否创建成功:
kubectl get svc mysql

可以发现, MySQL 服务被分配了一个值为 10.104.167.134 ClusterIP 地址(在不同环
境中分配的 IP 地址可能不同)。随后,在 Kubemetes 集群中新创建的其他 Pod 就可以通过Service ClusterIP +端口号 3306 来连接和访问它了。
3.启动tomcat应用
到此,我们的mysql服务就已经完成了,可以被其他应用正常访问了。下面我们通过一个tomcat应用例子,来连接mysql,并做一个页面实现简单的增删改查,具体如下。
(1)创建myweb-deploy.yaml文件
前面定义和启动了 SQL 服务,接下来采用同样的步骤完成 Tomcat 应用的启动先,创建对应的 RC 文件 mywe-deploy.yaml, 内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: myweb
name: myweb
spec:
replicas: 2
selector:
matchLabels:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- image: kubeguide/tomcat-app:v1
name: myweb
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: 10.104.167.134
从上面的定义文件可以看到,spec.replicas为2,则创建了两个pod副本,MYSQL_SERVICE_HOST是上面mysql服务service对应的ClusterIP 。
(2)发布应用myweb到Kubernates
执行命令:
kubectl apply -f myweb-deploy.yaml

(3)创建myweb-svc.yaml
文件内容如下:
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb
"type = NodePort" 和“nodePort = 30001" 表明此 Service 开启了 NodePort 格式的外网访间模式。 比如,在 Kubenetes 集群外,客户端的浏览器可以通过 30001 端口访问 myweb(对应 8080 的虚端口)。
(4)创建service到Kubernetes
执行命令:
kubectl create -f myweb-svc.yaml

验证是否创建成功:
kubectl get svc

可见1个mysql服务,两个myweb服务,都正常启动。
4.浏览器访问页面
通过访问:http://192.168.140.132:30001/demo/
可以看到页面已经显示出来,可以进行新增/查询操作,本次单机模式部署已经成功。

本文介绍了如何在Kubernetes单机环境中部署MySQL服务和Tomcat应用,包括创建Deployment、Service,以及如何通过浏览器访问页面进行简单操作。详细步骤包括:环境准备、MySQL服务安装、Tomcat应用启动,最后通过NodePort访问应用。
5万+

被折叠的 条评论
为什么被折叠?



