Kubernetes实战实现 Guestbook 留言板-简易版详解
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 留言板-简易版详解相关推荐
- python球球大作战简易版详解
在玩很多游戏的时候,我们可以发现游戏里面的世界很大,但是整个窗口却最大不过我们屏幕大小,为了观察到整个世界,我们的视角窗口就会随着里面人物的移动不断的移动. 比如说游戏球球大作战,在玩这款游戏的时候我 ...
- kubernetes 之Guestbook 留言板
备注:本例是按照kubernetes 权威指南第二版 2.3 Guestbook演示实例:Hello World ! 整理 Guestbook留言板系统部署架构图 Guestbook 留言板系统部署 ...
- Kubernetes 实现 Guestbook 留言板
基础环境 系统版本:CentOS Linux release 7.5.1804 (Core) kubernetes版本:kubernetes1.3 项目背景 Guestbook留言板系统将通过 Pod ...
- 基于RK3399ESP8285自动售货柜项目—MP08开发板端代码详解
基于RK3399&ESP8285自动售货柜项目-②MP08开发板端代码详解 本系列文章将详细讲解该基于RK3399及ESP8285自动售货柜的完整实现方法,从硬件连接到网络通信再到软件实现,本 ...
- ios开发读取剪切板的内容_iOS中管理剪切板的UIPasteboard粘贴板类用法详解
一.自带剪切板操作的原生UI控件在iOS的UI系统中,有3个控件自带剪切板操作,分别是UITextField.UITextView与UIWebView.在这些控件的文字交互处进行长按手势可以在屏幕视图 ...
- 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解
关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...
- 阿里云容器服务飞天敏捷版详解
阿里云容器服务飞天敏捷版详解 libinjingshan 2017-04-24 23953浏览量 简介: 阿里云容器服务提供了公共云.专有云以及飞天敏捷版三种部署形态,全方位地满足企业客户利用CaaS ...
- 1 企业实战(3) Redis服务部署和配置详解 (资源)
前言: 环境介绍: CentOS 7.5 Redis 5.0.0 gcc 下载: http://download.redis.io/releases/ 安装redis: [root@localhost ...
- Kubernetes K8S之Taints污点与Tolerations容忍详解
Kubernetes K8S之Taints污点与Tolerations容忍详解与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master C ...
最新文章
- utf8 连接 mysql_mysql配置为支持utf8的连接方式只要改client就可以了吗
- cordova 打包工具
- 每天学一点儿shell:Linux三剑客——grep命令
- 中怎么均化走线_巴黎世家老爹鞋怎么鉴定真假 辨别真假对比图了解一下
- 骚年快醒醒,你适合转行做前端吗?
- string类中一些方法的使用
- 曲奇云盘资源搜索引擎_工具集--任意资源搜索神器(不限速!!)
- pandas——数据透视表
- 坚果手机 误进FastBoot Mode解决方案
- 锤子android 7,锤子新机坚果Pro配置放出:骁龙626处理器、Android 7.1.1系统
- 伪相关、伪关系与中介变量——统计名词中的迷思
- TJCTF之Bricked Binary
- 远程连接服务器---SSH详解
- 微信小程序之图像智能分析
- 如何调用API接口在线生成在微信可用的网址二维码
- 计算机研究生复试英语自我介绍,计算机研究生复试专业英语自我介绍.doc
- 爬取哔哩哔哩弹幕制作词云
- 汉仪尚巍手书有版权吗_汉仪尚巍手书ttf下载
- Firefox OS 架构简析
- 超市使用erp系统有哪些优势?