k8s部署MySQL,基于k8s部署mysql主从

  k8s部署MySQL,基于k8s部署mysql主从

  目录

  写在前面

  1.安装mysql

  2.登录mysql

  3.远程存取

  4.一些订单

  5.参考

  写在前面的整个安装过程中,有三个问题,分别如下:

  1)在节点node上设置mysql的端口时,如果端口过大,会报错,表示端口范围只允许在30000到32767之间。这个问题在于主服务器的apiserver中没有设置KUBE_API_ARGS参数。这最好修改如下:

  #在这里,修改端口范围,默认为30000-32767。如果超出服务就会报错:kube _ API _ args=-service-node-port-range=20000-65535 2)服务器和pod创建后,在检查状态时发现一直处于containercreationg状态,即无法正常运行。按照线上部分的一些方法,我们是赢不了的。

  MySQL安装成功后,防火墙关闭,用户赋能,但就是无法远程连接。

  虽然安装过程磕磕绊绊,遇到各种问题,但是回过头来看,我发现基于docker安装mysql简直就是高效,快捷,快速。简单做两个配置文件,运行后就OK了。技术真是日新月异,大放异彩。

  记录安装过程和遇到问题时的解决方案。

  1.在master上安装mysql,切到根目录,然后新建一个mysql目录。cd到mysql目录后,创建两个新文件,mysql-rc.ymal和mysql-svc.yaml内容如下:

  vi mysql-rc.ymal

  API version:v1 kind:ReplicationControllermetadata:name:MYSQL-RC labels:name:MYSQL-RC spec:replicas:1选择器:name: mysql-pod模板:元数据:labels:name:MYSQL-pod spec:containers:-name:MYSQL image pull policy:ifnot present ports:-container port:3306 env:-name:MYSQL _ ROO T _ PASSWORD value: root 我们选择replication controller的种类,或者选择副本集或部署来管理Pod,这一点没有讨论详情请参考这里的说明。总的来说,我们只是选择ReplicationController而不是单pod模式。

  vi mysql-svc.yaml

  API version:v1 kind:service metadata:name:MySQL-SVC labels:name:MySQL-SVC spec:type:node port ports:-port:3306协议:TCP target port:3306 Nam E:http node port:30306选择器:name: mysql-pod。这里注意nodeport,是我一开始设置的33306,但是运行create的时候会报告前面提到的问题1。按照解决方案,只需修改KUBE_API_ARGS,重启apiserver即可。重新启动命令如下:

  对于kube-proxy kube let flanneld docker中的服务;在创建了文件DOSystemCTL Restart $ ServiceSystemCTL Enable $ ServiceSystemCTL Status $ Services Done之后,我们将开始创建镜像并运行容器。操作命令如下:

  [root @ k8s-master ~]# ku ectl create-f mysql-rc . YAML复制控制器 MySQL-RC 已创建[root @ k8s-master ~]# ku ectl create-f mysql-svc . YAML服务 MySQL-SVC 已创建然后使用以下命令查看。

  这里要说一下,一般情况下,这里可能会遇到问题,在使用“kubectl describe pod mysql-rc-smjmh”命令进行查看错误信息

  遇到的问题无外乎两类报错,如下:

  同步pod时出错,kipping:无法使用ErrImagePull为“POD”启动container:“registry.access.redhat.com/rhel7/pod-infrastructure:latest,的图像拉取失败。这可能是因为此请求没有凭据。详细信息:(open/etc/docker/certs . d/registry . access . red hat . com/red hat-ca . CRT:没有这样的文件或目录)“同步pod时出错,跳过:未能使用ImagePullBackOff为“POD”启动Container:“回退提取图像”registry . access . red hat . com/rhel 7/POD-infra structure:latest 第一个,因为证书问题。通过在节点上使用以下命令,您会发现它是到“/etc/rhsm/ca/redhat-uep.pem”的软连接,但是这个证书文件不存在。

  ll/etc/docker/certs . d/registry . access . red hat . com/red hat-ca . CRT解决方案,在node节点上执行以下命令

  执行install * rhsm *后,检查一下这个redhat-uep.pem文件是否存在,是会出现还不存在的情况,不赘述。解决方案如下:

  wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1 . 19 . 10-1 . el7 _ 4 . x86 _ 64 . rpmrpm 2 cpio python-rhsm-certificates-1 . 19 . 10-1 . el7 _ 4 . x86 _ 64 . rpm cpio-iv-to-stdout。/etc/rhsm/ca/Red hat-UEP . PEM tee/etc/rhsm/ca/Red hat-UEP . PEM在node节点上继续执行以上两个命令,就搞定了。

  最后,执行下面的命令。这一点非常重要。有些博文没有提到这一点,错误2也不能排除。这里可能会有安装慢的情况,试几次就好了。

  码头工人拉动registry.access.redhat.com/rhel7/pod-infrastructure:latest完成后,您会发现状态为正在运行。

  2.登录mysql,然后在node节点上执行“docker ps -a”命令,如下图:

  红圈标有mysql的containet id。通过这个,我们可以进入容器并执行以下命令:

  docker Exec-it2a 46168598 bbbash然后,我进了集装箱。这里很神奇,因为我之前没有接触过Docker和集装箱化的东西,直到这里才搞清楚集装箱的真正含义。这时候我感觉自己进入了一个新的主机,可以查看容器的情况。同样,我可以登录mysql,就像在主机上正常操作一样,如下所示:

  这进入mysql。进入后,设置mysql可以远程访问。网上搜索的方式有很多。这里有一个供参考。进入后,执行以下命令:

  由“root”更改用mysql_native_password标识的用户“root”@“%”;更改由“youpassword”标识的用户“root”@“%”;或者

  使用mysql将用mysql_native_password标识的用户“root”@“%”更改为“you password”;刷新权限;#务必刷新有效的然后 exit 退出mysql .ctrl+p ctrl+q 从容器退出返回到node主机。

  3.在本地打开Navicat进行远程访问,并准备远程连接。输入节点的IP:192 . 168 . 1 . 160,端口:30306,以及用户名和密码。但是你会发现不能私接,总是报10060 unknow错误。我查了所有可能的情况,但无论如何都联系不上。

  按理说防火墙是关闭的,不应该限制端口,但就是连不上。主机上的telnet 192.168.1.160 30306发现无法连接,问题找到了,防火墙已关闭,但是端口口没有开放,后来查了下,有人说CentOS7确实是这样。需要打开防火墙,设置30306端口可以访问,然后再关闭防火墙就行了!!!!操作如下:

  防火墙D: SystemCTL启动防火墙D #打开防火墙Firewall-cmd-zone=public-add-port=30306/TCP-permanent #设置30306。释放防火墙后-cmd - reload #重新加载配置文件,检查防火墙的状态,然后关闭防火墙并重试。没事的!

  至此,安装终于成功了!

  4.一些命令docker ps检查当前运行的容器

  5.参考文献[1]关于ContainerCreating的博文不能成为running。

  [2] Kubernetes部署mysql

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • pymysql菜鸟教程,pymysql 使用
  • pymysql菜鸟教程,pymysql 使用,pymysql模块使用简介与示例
  • mysql锁实现,mysql锁算法
  • mysql锁实现,mysql锁算法,MySQL锁机制与用法分析
  • mysql连接报错10061,mysql连接错误10060
  • mysql连接报错10061,mysql连接错误10060,MYSQL无法连接 提示10055错误的解决方法
  • mysql连接报10060错误,mysql连接报错10055
  • mysql连接报10060错误,mysql连接报错10055,MySQL连接异常报10061错误问题解决
  • mysql辅助索引和主键索引,mysql 主键 外键 索引
  • mysql辅助索引和主键索引,mysql 主键 外键 索引,MySQL索引之主键索引
  • MySQL语句大全,mysql常见语句总结
  • MySQL语句大全,mysql常见语句总结,MySQL语句整理及汇总介绍
  • mysql触发器的使用方法实验报告,mysql中触发器的使用
  • 留言与评论(共有 条评论)
       
    验证码: