51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

画像项目拆分之mysql

画像项目拆分之mysql

第1步: 制作 dockerfile

项目目录

[root@worker233 /baimei/huaxiang/mysql]#cat Dockerfile 
# 指定基础镜像
FROM mysql:5.7

ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d
ENV INSTALL_DB_SQL   softwares/tags.sql
COPY ./$INSTALL_DB_SQL $AUTO_RUN_DIR/
RUN chmod 777 $AUTO_RUN_DIR/tags.sql

# LABEL可以基于key=value方式指定信息
LABEL author=baimei 

这一步不明白的可以参考:docker部署mysql并且初始化数据库

第2步: 编译 阶段 build

编译:

docker build -t init_mysql57:v0.2 .

第3阶段: 运行测试

 docker run -e MYSQL_ROOT_PASSWORD=123456 -d --name=db03 init_mysql57:v0.1

docker exec -it db03 bash

测试数据没问题:可以进入下一步

第4步打标签:

docker tag init_mysql57:v0.1  harbor.baimei.com/huaxiang-mysql/init_mysql57:v0.1

第5步:推送到 harbo:

docker push harbor.baimei.com/huaxiang-mysql/init_mysql57:v0.1

docker commit -a "baimeimysql" -m "inti data" 029ddb00167b mysqlbaimei5.7:v0.3


接下来,我们 用 k8s 做管理 这个镜像:

k8s 编排:

在 k8s 主节点 master231上执行

变现 yaml文件

[root@master231 /manifests/huaxiangpod]#cat mysqlhuaxiang.yaml

# 指定apiserver版本号
apiVersion: v1
# 指定资源的类型
kind: Pod
# 定义源数据信息
metadata:
  # Pod的名称
  name: huaxiangpod
# 用户定义资源期望运行的状态
spec:
  hostNetwork: true
  # 指定在worker232的工作节点运行
  nodeName: worker232
  # 在Pod内运行的容器定义
  containers:
    # 容器的名称
  - name: mysqlhuaxiang
    # 镜像名称
    image: harbor.baimei.com/huaxiang-mysql/mysqlbaimei5.7:v0.2 
    ports:
    - containerPort: 3306
      hostIP: 10.0.0.232
      hostPort: 3306
      name: db
    # 向容器传递环境变量
    env:
      # 变量的名称
    - name: MYSQL_ALLOW_EMPTY_PASSWORD
      # 指定变量的值
      value: "yes"
    - name: MYSQL_DATABASE
      value: "tags"
    - name: MYSQL_USER
      value: "baimei"
    - name: MYSQL_PASSWORD
      value: "123456"

运行 :

kubectl  apply -f mysqlhuaxiang.yam

查看状态:

kubectl get pods -o wide

running 说明启动了

接下来就要进入Pod 查看 数据了

kubectl  exec  -it huaxiangpod -- mysql

或者 进入 容器:

kubectl  exec  -it huaxiangpod sh

都可以验证;

到此我们的 mysql -画像 已经拆解完成。

可以在其他节点 远程测试一下:

mysql -h 10.0.0.232  -ubaimei -p123456 -e "show databases;"

接下来我们拆分,tomcat 相关的spring boot 项目。

赞(7)
未经允许不得转载:工具盒子 » 画像项目拆分之mysql