K8s入门指南之应用部署-单机模式(图文解说教程,零基础入门)

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

        前两篇分享了如何通过VMware安装CentOS 7镜像,并再CentOS 7虚拟机中安装了一个单机模式的Kubernates(只有一个master节点),相信读者们都已经安装成功了。本文继于前两个篇章,将为我们展现如何在Kubernates中安装mysql服务和tomcat应用,并且通过前端页面完成一个简单的增删改查功能。

如果前面环境还没搭建的,可以参考前两篇文章:

VMware安装centOS镜像
K8s入门指南之环境搭建/部署初始化(单机模式)

 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/

可以看到页面已经显示出来,可以进行新增/查询操作,本次单机模式部署已经成功。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值