1.基础信息

系统版本:CentOS Linux release 7.6

kubernetes版本:kubernetes1.14.0

Docker版本: Docker CE 19.03.5

此 Java web项目相对比较简单, 是一个运行在Tomcat里的 Web App, JSP页面通过 JDBC 直接访问 MySQL 数据库并展示数据。只要正确连接到了数据库,就会自动完成对应的 Table 表的创建与初始化数据的准备工作

2.实战部署

1.环境准备

准备一个搭建好的k8s集群

master:   192.168.13.141
node1:       192.168.13.142
node2:   192.168.13.143
2.启动mysql服务

首先为 MySql 服务创建一个 RC 定义文件 mysql_rc.yaml

[root@master ~]# mkdir yaml    #创建一个目录来存放我们写的yaml文件
[root@master ~]# cd yaml/
[root@master yaml]# vim mysql_rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:name: mysql
spec:replicas: 1selector:app: mysqltemplate:metadata:labels:app: mysqlspec:containers:- name: mysqlimage: daocloud.io/library/mysql:5.7ports:- containerPort: 3306env:- name: MYSQL_ROOT_PASSWORDvalue: "123456"
================================================================
apiVersion: v1    #API版本号
kind: ReplicationController      #RC类型
metadata:name: mysql
spec:replicas: 1selector:      #标签选择器,选择带有app: mysql这个标签的去创建app: mysqltemplate:metadata:labels:    #对应上面标签选择器的标签app: mysqlspec:containers:- name: mysqlimage: daocloud.io/library/mysql:5.7   #镜像ports:- containerPort: 3306        #端口env:      #环境变量- name: MYSQL_ROOT_PASSWORDvalue: "123456"        #数据库密码
================================================================
[root@master yaml]# kubectl apply -f mysql_rc.yaml    #执行创建
replicationcontroller/mysql created
[root@master yaml]# kubectl get rc  #查看是否创建成功
NAME    DESIRED   CURRENT   READY   AGE
mysql   1         1         0       20s
[root@master yaml]# kubectl get pod  #正在创建镜像
NAME                     READY   STATUS              RESTARTS   AGE
mysql-ft58r              0/1     ContainerCreating   0          47s
nginx-5f965696dd-w4thr   1/1     Running             1          125m
如果你的网不好,你可以选择手动拉取镜像:
[root@master yaml]# kubectl get pod -o wide  #我们发现是在node1节点,所以我们去node1节点手动拉取
NAME                     READY   STATUS              RESTARTS   AGE    IP           NODE    NOMINATED NODE   READINESS GATES
mysql-ft58r              0/1     ContainerCreating   0          75s    <none>       node1   <none>           <none>
nginx-5f965696dd-w4thr   1/1     Running             1          125m   10.244.2.4   node2   <none>           <none>
[root@node1 ~]# docker pull daocloud.io/library/mysql:5.7
拉去成功后再次查看
[root@master yaml]# kubectl get pod -o wide
NAME                     READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
mysql-ft58r              1/1     Running   0          3m41s   10.244.1.7   node1   <none>           <none>
nginx-5f965696dd-w4thr   1/1     Running   1          128m    10.244.2.4   node2   <none>           <none>
3.创建service分配地址
[root@master yaml]# vim mysql_svc.yaml
apiVersion: v1
kind: Service
metadata:name: mysql
spec:ports:- port: 3306selector:app: mysql
[root@master yaml]# kubectl apply -f mysql_svc.yaml
service/mysql created
[root@master yaml]# kubectl get svc
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.1.0.1      <none>        443/TCP        4h8m
mysql        ClusterIP   10.1.24.65    <none>        3306/TCP       17s
nginx        NodePort    10.1.232.21   <none>        80:32381/TCP   126m
我么可以看到MySql服务分配了一个值为10.1.24.65的ClusterIP的地址。
4.启动Tomcat应用
[root@master yaml]# vim mytomcat_rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:name: mytomcat
spec:replicas: 2selector:app: mytomcattemplate:metadata:labels:app: mytomcatspec:containers:- name: mytomcatimage: kubeguide/tomcat-app:v1ports:- containerPort: 8080env:- name: MYSQL_SERVICE_HOSTvalue: 10.1.24.65
==============================================================env:- name: MYSQL_SERVICE_HOSTvalue: 10.1.24.65      #这个IP是刚刚分配的Cluster地址
==============================================================
[root@master yaml]# kubectl apply -f mytomcat_rc.yaml
replicationcontroller/mytomcat created
[root@master yaml]# kubectl get pods -o wide  #查看在哪个节点拉取镜像
NAME                        READY   STATUS              RESTARTS   AGE    IP           NODE    NOMINATED NODE   READINESS GATES
mysql-ft58r                 1/1     Running             0          8m8s   10.244.1.7   node1   <none>           <none>
mytomcat-2j67r              0/1     ContainerCreating   0          22s    <none>       node2   <none>           <none>
mytomcat-7nzdc              0/1     ContainerCreating   0          22s    <none>       node1   <none>           <none>
nginx-5f965696dd-w4thr      1/1     Running             1          132m   10.244.2.4   node2   <none>           <none>
同样你也可以自己去node节点上拉取镜像,加快tomcat的创建
[root@node1 ~]# docker pull kubeguide/tomcat-app:v1
[root@node2 ~]# docker pull kubeguide/tomcat-app:v1
[root@master yaml]# kubectl get pods -o wide   #再次查看
NAME                        READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
mysql-ft58r                 1/1     Running   0          11m     10.244.1.7   node1   <none>           <none>
mytomcat-2j67r              1/1     Running   0          3m26s   10.244.2.6   node2   <none>           <none>
mytomcat-7nzdc              1/1     Running   0          3m26s   10.244.1.8   node1   <none>           <none>
nginx-5f965696dd-w4thr      1/1     Running   1          135m    10.244.2.4   node2   <none>           <none>

创建对应的 Service

[root@master yaml]# vim mytomcat-svc.yaml
apiVersion: v1
kind: Service
metadata:name: mytomcat
spec:type: NodePortports:- port: 8080nodePort: 30005selector:app: mytomcat
[root@master yaml]# kubectl apply -f mytomcat-svc.yaml
service/mytomcat created
[root@master yaml]# kubectl get svc
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP      10.1.0.1       <none>        443/TCP          4h14m
mysql        ClusterIP      10.1.24.65     <none>        3306/TCP         7m8s
mytomcat        NodePort    10.1.162.140   <none>        8080:30005/TCP   17s
nginx        NodePort       10.1.232.21    <none>        80:32381/TCP     133m

访问http://node节点ip:30005 能看到tomcat界面

访问 http://node节点ip:30005/demo/

点击Add 添加提交记录


完成

Kubernetes实战实现 Guestbook 留言板-简易版详解相关推荐

  1. python球球大作战简易版详解

    在玩很多游戏的时候,我们可以发现游戏里面的世界很大,但是整个窗口却最大不过我们屏幕大小,为了观察到整个世界,我们的视角窗口就会随着里面人物的移动不断的移动. 比如说游戏球球大作战,在玩这款游戏的时候我 ...

  2. kubernetes 之Guestbook 留言板

    备注:本例是按照kubernetes 权威指南第二版  2.3 Guestbook演示实例:Hello World ! 整理 Guestbook留言板系统部署架构图 Guestbook 留言板系统部署 ...

  3. Kubernetes 实现 Guestbook 留言板

    基础环境 系统版本:CentOS Linux release 7.5.1804 (Core) kubernetes版本:kubernetes1.3 项目背景 Guestbook留言板系统将通过 Pod ...

  4. 基于RK3399ESP8285自动售货柜项目—MP08开发板端代码详解

    基于RK3399&ESP8285自动售货柜项目-②MP08开发板端代码详解 本系列文章将详细讲解该基于RK3399及ESP8285自动售货柜的完整实现方法,从硬件连接到网络通信再到软件实现,本 ...

  5. ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解

    一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...

  6. 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解

    关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  7. 阿里云容器服务飞天敏捷版详解

    阿里云容器服务飞天敏捷版详解 libinjingshan 2017-04-24 23953浏览量 简介: 阿里云容器服务提供了公共云.专有云以及飞天敏捷版三种部署形态,全方位地满足企业客户利用CaaS ...

  8. 1 企业实战(3) Redis服务部署和配置详解 (资源)

    前言: 环境介绍: CentOS 7.5 Redis 5.0.0 gcc 下载: http://download.redis.io/releases/ 安装redis: [root@localhost ...

  9. Kubernetes K8S之Taints污点与Tolerations容忍详解

    Kubernetes K8S之Taints污点与Tolerations容忍详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master C ...

最新文章

  1. utf8 连接 mysql_mysql配置为支持utf8的连接方式只要改client就可以了吗
  2. cordova 打包工具
  3. 每天学一点儿shell:Linux三剑客——grep命令
  4. 中怎么均化走线_巴黎世家老爹鞋怎么鉴定真假 辨别真假对比图了解一下
  5. 骚年快醒醒,你适合转行做前端吗?
  6. string类中一些方法的使用
  7. 曲奇云盘资源搜索引擎_工具集--任意资源搜索神器(不限速!!)
  8. pandas——数据透视表
  9. 坚果手机 误进FastBoot Mode解决方案
  10. 锤子android 7,锤子新机坚果Pro配置放出:骁龙626处理器、Android 7.1.1系统
  11. 伪相关、伪关系与中介变量——统计名词中的迷思
  12. TJCTF之Bricked Binary
  13. 远程连接服务器---SSH详解
  14. 微信小程序之图像智能分析
  15. 如何调用API接口在线生成在微信可用的网址二维码
  16. 计算机研究生复试英语自我介绍,计算机研究生复试专业英语自我介绍.doc
  17. 爬取哔哩哔哩弹幕制作词云
  18. 汉仪尚巍手书有版权吗_汉仪尚巍手书ttf下载
  19. Firefox OS 架构简析
  20. 超市使用erp系统有哪些优势?

热门文章

  1. Python控制结构(一)
  2. 城际网约车订单分配问题及其求解算法
  3. 邮箱如何关闭掉CSDN的消息通知
  4. MySQL修改表列名
  5. 条件判断语句之if语句
  6. suse linux修改系统时间,怎么修改Suse Linux的时间
  7. 怎么把i am a student逆置成student a am i?面试题逆置字符串讲解
  8. 外部系统连接SFDC,获取SFDC侧的数据
  9. css实现花哨效果及关键帧小动画
  10. MySQL数据库中的索引(含SQL语句)