MacOS版-通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷

本文介绍了在MacOS环境下,如何使用docker和k8s搭建MySQL,探讨k8s的网络(LoadBalancer, NodePort, ClusterIP, Ingress)和持久卷(PersistentVolume, PersistentVolumeClaim)概念,以及安装测试过程。" 48553467,1824641,Cortex-M3中断配置与使用详解,"['嵌入式开发', 'Cortex-M3', '中断处理', '微控制器', 'EFM32']
摘要由CSDN通过智能技术生成

前言

本文参考自《通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷

由于原文博主是使用windows的虚拟机Vagrant的minikube,和mac OS有所不同。另外原博主的方法下载mysql:5.7的镜像下载不了,导致后面配置文件也不一样,所以有了这篇文章。

docker mysql:5.7镜像拉取参考自《docker拉取mysql镜像遇到到问题及解决

侵删。

准备工作

  1. mac OS 系统版本10.15.4,
  2. 安装docker desktop和k8s,可参考阿里云的https://github.com/AliyunContainerService/k8s-for-docker-desktop/tree/v1.16.5
  3. docker 版本19.03.8,k8s版本
➜ kubectl version  
Client Version: version.Info{
   Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:26:26Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{
   Major:"1", Minor:"16+", GitVersion:"v1.16.6-beta.0", GitCommit:"e7f962ba86f4ce7033828210ca3556393c377bcc", GitTreeState:"clean", BuildDate:"2020-01-15T08:18:29Z", GoVersion:"go1.13.5", Compiler:"gc", Platform:"linux/amd64"}

应用程序分成两种,无状态和有状态的。一般的前段和后端程序都是无状态的,而数据库是有状态的,他需要把数据存储起来,这样即使断电,数据也不会丢失。要创建有状态的程序,还需要引入另外一些k8s概念。它们虽然不是核心,但也很重要,共有三个,持久卷,网络和参数配置。掌握了这些之后,基本概念就已经做到了全覆盖,k8s就已经入门了。我们通过搭建MySQL来熟悉这些k8s概念。容器本身是无状态的,一旦出现问题它会被随时销毁,它存储的数据也就丢失了。MySQL需要一个能保存数据的持久层,在容器被销毁之后仍然存在,k8s叫它持久卷。

1、创建和验证MySQL镜像

通过国内镜像daocloud.io/library库下载,下载速度快到感人!

docker pull daocloud.io/library/mysql:5.7

查看下载好的镜像:

docker images|grep mysql
REPOSITORY                    TAG       IMAGE ID     CREATED          SIZE
daocloud.io/library/mysql    5.7     718a6da099d8    2 weeks ago     448MB                                                                        

需要注意的是:mysql镜像名的前缀不能忘记,否则报错!
完整的名字: daocloud.io/library/mysql:5.7

运行:

docker run --name test-mysql -p 3306:33060 -e MYSQL_ROOT_PASSWORD=root -d -it --net host daocloud.io/library/mysql:5.7

“root”是根(root)用户的password,这里是在创建MySQL容器时指定“root”用户的password。“test-MySQL”是容器的名字。“daocloud.io/library/mysql:5.7”用的是daocloud镜像库里的“MySQL”5.7版本。这次没有用最新的8.0版,因为新版跟以前的客户端不兼容,需要修改很多东西。所用的镜像是全版的Linux,因而文件比较大,有400M。

容器建好了之后,键入“docker logs test-mysql”,查看日志。“docker ps”, 查看容器状态。

docker ps -a|grep mysql  
3b6ec96e49d0    daocloud.io/library/mysql:5.7   "docker-entrypoint.s…"   3 minutes ago       Up 3 minutes    test-mysql

进入docker内部,并登录mysql查看:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值