k8s部署tomcat和mysql

2 篇文章 0 订阅

1环境准备

master主机IP:192.168.10.169

node1节点:192.168.10.170

node2节点:192.168.10.171

因为pull镜像需要凭据,这里首先安装凭据,在node节点上面去安装凭据

1、wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm

2、rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

3、docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

2开始部署,首先是tomcat应用,我这里创建一个yaml文件来部署tomcat(注意部署容器都是在master执行,然后master会把容器分发到node界面上面去部署)

[root@master /]# kubectl logs --help^C
[root@master /]# more tomcat8.yaml 
apiVersion: apps/v1beta2              #当前配置格式版本
kind: Deployment                                #创建资源类型
metadata:                                       #资源元数据,name是必须项
  name: portal
spec:                                           #资源规格说明
  replicas: 2                                   #副本数量
  selector:
    matchLabels:
      k8s-app: portal
  template:                                 #定义pod模板
    metadata:                                   #pod元数据,至少一个label
      labels:
        k8s-app: portal
    spec:                                       #pod规格说明
      containers:
      - name: portal
        image: tomcat:8
        ports:
        - containerPort: 8080

---
apiVersion: v1
kind: Service
metadata:
  name: portal
spec:
   ports:
     - port: 8099
       targetPort: 8080
       nodePort: 30111  #浏览器访问的端口
   selector:
     k8s-app: portal
   type: NodePort

执行这个yaml文件创建

kubectl create -f tomcat8.yaml

如果部署有问题删掉重来的话可以使用 kubectl delete -f tomcat8.yaml

在部署后怎么去监控部署是否成功,这里给出常用的命令

#查看pod状态
kubectl get pods -o wide
#查看pod的日志
kubect logs + pod名字

使用效果:

 

访问是否部署成功(访问也是访问master节点,master会分发到node节点上面的容器)

这里其实已经访问到了,找不到资源是因为我没有部署项目在tomcat上面

3部署mysql,下面给出mysql的yaml文件

[root@master /]# more mysql27.yaml 
apiVersion: apps/v1beta2              #当前配置格式版本
kind: Deployment                                #创建资源类型
metadata:                                       #资源元数据,name是必须项
  name: mysql
spec:                                           #资源规格说明
  replicas: 1                                   #副本数量
  selector:
    matchLabels:
      k8s-app: mysql
  template:                                 #定义pod模板
    metadata:                                   #pod元数据,至少一个label
      labels:
        k8s-app: mysql
    spec:                                       #pod规格说明
      containers:
      - name: mysql
        image: mysql:5.7.29
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

---
apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
   ports:
     - port: 3306
       targetPort: 3306
       nodePort: 30006  #浏览器访问的端口
   selector:
     k8s-app: mysql
   type: NodePort

这里我在env里面指定了数据库的初始root密码为123456,如果不指定在部署的时候会报错,容器无法跑起来,就是因为要指定这个初始密码。如果发现部署的容器报错,可以使用kubect logs + pod名字这个命令来查看原因

创建容器镜像

kubectl create -f mysql27.yaml 

查看状态:

这里看到一个mysql前缀的是mysql容器,因为我在yaml文件中指定了一个副本,所以就只有一个,两个portal前缀的tomcat容器,因为我指定了两个pod副本

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值