频道栏目
首页 > 数据库 > Mysql教程 > Mysql入门教程 > 正文

注册送白菜38

2018-07-25 10:40:28      个评论    来源:sealir的博客  
收藏   我要投稿

一、kubernetes集群

kubernetes集群安装参照https://blog.csdn.net/sealir/article/details/81070924进行安装。

二、部署mysql8.0

mysql可以以docker的形式在集群内部署,也可以安装在集群之外,以服务的形式部署到集群内。

(1)、如果是在集群内部署,可以启动一个ReplicationController,用以对mysql pod进行监控,并同时启动一个Service,用以集群访问。

(2)、如果mysql是安装在集群之外,那么可以启动一个Endpoint和Service,将mysql引入集群之中。

下面分别对这两种方式进行部署。

1、集群内安装mysql

新建mysql-rc.yaml和mysql-svc.yaml,分别如下:

mysql-rc.yaml:

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql-rc
  labels:
    name: mysql-rc
spec:
  replicas: 1
  selector:
    name: mysql-pod
  template:
    metadata:
      labels: 
        name: mysql-pod
    spec:
      containers:
      - name: mysql
        image: mysql
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "mysql"

mysql-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql-svc
  labels: 
    name: mysql-svc
spec:
  type: NodePort
  ports:
  - port: 3306
    protocol: TCP
    targetPort: 3306
    name: http
    nodePort: 33306
  selector:
    name: mysql-pod

在mysql-rc.yaml中,image参数可以指定mysql的版本,如8.0.11、5.7.22等。这里省略了,表示用latest。另外,可以指定镜像库,这里使用阿里云镜像库,在安装docker时进行了配置。env参数指定了mysql的root密码。

在mysql-svc.yaml中,targetPort表示mysql pod中mysql窗口的目标端口,默认为3306,type类型为NodePort,表示将映射到本地端口,本地端口为nodePort: 33306。

接下来启动ReplicationController和Service,执行以下命令:

kubectl create -f mysql-rc.yaml
kubectl create -f mysql-svc.yaml

启动后可以查看mysql部署在了哪个node上,执行以下命令可以查看:

kubectl get pod -o wide

输出如下,可以看到部署在了192.168.56.28 node中,这里在部署kubernetes时用ip表示node的名称。

\

远程连接mysql8.0时可能会报一些错误,如navicat连接。这里对mysql8.0作一些设置。

(1)、登录到192.168.56.28node中。

(2)、执行docker ps查看mysql容器。如下所示:

\

(3)、进入mysql容器,执行以下命令进入容器,这里container_id为458bb493e233

docker exec -it container_id /bin/bash

(4)、在容器内登录mysql。执行以下命令,-h为ip,容器内ip为127.0.0.1,-r为注册免费送38体验金无需申请名,-p为密码,在mysql-rc中设置的密码。

mysql -h127.0.0.1 -uroot -pmysql

(5)、对mysql进行如下设置。

alter user &注册送白菜3839;root&注册送白菜3839;@&注册送白菜3839;%&注册送白菜3839; identified with mysql_native_password by&注册送白菜3839;root&注册送白菜3839;;
alter user &注册送白菜3839;root&注册送白菜3839;@&注册送白菜3839;%&注册送白菜3839; identified by &注册送白菜3839;mysql&注册送白菜3839;;

(6)、退出mysql和容器,执行quit;退出mysql,按ctrl+p后,再按ctrl+q从容器中返回node主机。

设置好mysql后,可以远程连接node中的mysql,node的ip为192.168.56.28,映射的端口为33306,可以用navicat工具连接到这个myql。

2、集群外安装mysql

首先在集群外的某个主机上安装myql,并能在集群所在的机器上访问。这里在192.168.56.8上用docker安装了mysql,docker的启动命令如下,绑定主机端口3306,并用以上方法同样进行设置。

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=mysql --name docker-mysql mysql

新建mysql-out-svc.yaml,内容如下:

apiVersion: v1
kind: Service
metadata:
  name: mysql-out-svc
spec:
  ports:
    - port: 3306
      protocol: TCP
      targetPort: 3306
---
apiVersion: v1
kind: Endpoints
metadata:
  name: mysql-out-svc
subsets:
  - addresses:
      - ip: "192.168.56.8"
    ports:
      - port: 3306

执行以下命令启动服务:

kubectl create -fmysql-out-svc.yaml

服务启动后,将部署mysql部署到了kubernetes集群之中。

可以执行以下命令查看启动的服务:

kubectl get svc

输出如下,mysql-out-svc即是启动的服务:

\

在集群之中可以用CLUSTER-IP和PORT端口访问服务,这里的IP和端口分别是172.18.141.141和3306,可以在集群内的某个容器中访问到这个服务,例如可以在上面启动的mysql容器中执行以下命令连接mysql-out-svc。

mysql -h172.18.141.141 -uroot -pmysql

 

上一篇:MySQL中的数据类型
下一篇:关于spark连接mysql数据库后读取、写入数据
相关文章
图文推荐

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站