kubernetes管理mysql_kubernetes云平台管理实战:tomcat + mysql(十二)

一、实验准备

1、文件结构与组成

[root@master tomcat_demo]# ls

mysql-rc.yml mysql-svc.yml tomcat-rc.yml tomcat-svc.yml

2、具体内容

mysql-rc.yml

[root@master tomcat_demo]# cat mysql-rc.yml

apiVersion: v1

kind: ReplicationController

metadata:

name: mysql

spec:

replicas: 1

selector:

app: mysql

template:

metadata:

labels:

app: mysql

spec:

containers:

- name: mysql

image: 192.168.118.18:5000/mysql:5.7

ports:

- containerPort: 3306

env:

- name: MYSQL_ROOT_PASSWORD

value: '123456'

mysql-svc.yml

[root@master tomcat_demo]# cat mysql-svc.yml

apiVersion: v1

kind: Service

metadata:

name: mysql

spec:

ports:

- port: 3306

targetPort: 3306

selector:

app: mysql

tomcat-rc.yml

[root@master tomcat_demo]#

[root@master tomcat_demo]# cat tomcat-rc.yml

apiVersion: v1

kind: ReplicationController

metadata:

name: myweb

spec:

replicas: 1

selector:

app: myweb

template:

metadata:

labels:

app: myweb

spec:

containers:

- name: myweb

image: 192.168.118.18:5000/tomcat-app:v2

ports:

- containerPort: 8080

env:

- name: MYSQL_SERVICE_HOST

value: '10.254.39.137'

- name: MYSQL_SERVICE_PORT

value: '3306'

tomcat-svc.yml

[root@master tomcat_demo]# cat tomcat-svc.yml

apiVersion: v1

kind: Service

metadata:

name: myweb

spec:

type: NodePort

ports:

- port: 8080

nodePort: 30008

selector:

app: myweb

镜像仓库

[root@master ~]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

docker.io/registry latest 708bc6af7e5e 3 months ago 25.8

192.168.118.18:5000/pod-infrastructure latest 34d3450d733b 3 years ago 205 MB

docker.io/tianyebj/pod-infrastructure latest 34d3450d733b 3 years ago 205 MB

192.168.118.18:5000/mysql 5.7 b7dc06006192 3 years ago 386 MB

docker.io/mysql 5.7 b7dc06006192 3 years ago 386 MB

192.168.118.18:5000/tomcat-app v2 00beaa1d956d 3 years ago 358 MB

docker.io/kubeguide/tomcat-app v2 00beaa1d956d 3 years ago 358 MB

二、操作演示过程

创建数据库容器

[root@k8s-master tomcat_demo]# kubectl create -f mysql-rc.yml

replicationcontroller "mysql" created

[root@k8s-master tomcat_demo]# kubectl create -f mysql-svc.yml

service "mysql" created

web服务如何访问db服务?

[root@k8s-master tomcat_demo]# kubectl get svc

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE

kubernetes 10.254.0.1 443/TCP 6d

mysql 10.254.155.23 3306/TCP 4s

[root@k8s-master tomcat_demo]# vim tomcat-rc.yml

- name: MYSQL_SERVICE_HOST

value: '10.254.39.137'

创建tomcat容器

[root@k8s-master tomcat_demo]# kubectl create -f tomcat-rc.yml

replicationcontroller "myweb" created

[root@k8s-master tomcat_demo]#

[root@k8s-master tomcat_demo]# kubectl create -f tomcat-svc.yml

service "myweb" created

三、测试访问

root@master ~]# kubectl get all

......

NAME READY STATUS RESTARTS AGE

po/mysql-3qkf1 1/1 Running 0 15h

po/myweb-z2g3m 1/1 Running 0 15h

1、未添加数据前访问

3ac0580218f86e98fcc06e193d2416a7.png

2、添加数据库后访问

测试截图

370852b79a14d3dd69d39fd6a1a0335d.png

确认数据库有没有刚才添加的数据

[root@master ~]# kubectl exec -it mysql-3qkf1 bash

root@mysql-3qkf1:/# mysql -uroot -p123456

mysql: [Warning] Using a password on the command line interface can be insecure.

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7

Server version: 5.7.15 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| HPE_APP |

| mysql |

| performance_schema |

| sys |

+--------------------+

5 rows in set (0.00 sec)

mysql> use HPE_APP

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+-------------------+

| Tables_in_HPE_APP |

+-------------------+

| T_USERS |

+-------------------+

1 row in set (0.00 sec)

mysql> slectl * from T_USERS;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'slectl * from T_USERS' at line 1

mysql> select * from T_USERS;

+----+-----------+---------+

| ID | USER_NAME | LEVEL |

+----+-----------+---------+

| 1 | me | 100 |

| 2 | our team | 100 |

| 3 | HPE | 100 |

| 4 | teacher | 100 |

| 5 | docker | 100 |

| 6 | google | 100 |

| 7 | luoahong | 1000000 |

+----+-----------+---------+

7 rows in set (0.00 sec)

mysql> exit

Bye

3、多个容器共享一个数据库

添加pod

[root@master ~]# kubectl scale rc myweb --replicas=3

replicationcontroller "myweb" scaled

[root@master ~]# kubectl get all

......

NAME READY STATUS RESTARTS AGE

po/mysql-3qkf1 1/1 Running 0 16h

po/myweb-286hg 1/1 Running 0 19s

po/myweb-vfr4v 1/1 Running 0 19s

po/myweb-z2g3m 1/1 Running 0 15h

访问截图

c9526aafc5cc5c0fa320de3a48ebd8d6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值