在kubernetes中运行单节点有状态MySQL应用
前提需求 / Rquirements
- 现成的kubernetes集群
- 持久存储-PersistentVolume
- 持久存储容量声明-PersistentVolumeClaim
创建yaml文件 / Create YAML file
https://raw.githubusercontent...
分别创建 Service、PersistentVolumeClaim、Deployment
apiVersion: v1 kind: Service metadata: name: mysql spec: ports: - port: 3306 selector: app: mysql clusterIP: None --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: mysql spec: selector: matchLabels: app: mysql strategy: type: Recreate template: metadata:、 labels: app: mysql spec: containers: - image: mysql:5.6 name: mysql env: # Use secret in real usage - name: MYSQL_ROOT_PASSWORD value: password ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
对于PersistentVolumeClaim中Access Modes的解释:
k8s不会真正检查存储的访问模式或根据访问模式做访问限制,只是对真实存储的描述,最终的控制权在真实的存储端。目前支持三种访问模式:
- ReadWriteOnce – PV以read-write 挂载到一个节点
- ReadWriteMany – PV以read-write 方式挂载到多个节点
- ReadOnlyMany – PV以read-only 方式挂载到多个节点
部署YAML文件 / Deploy the Deployment
kubectl create -f https://k8s.io/docs/tasks/run-application/mysql-deployment.yaml or kubectl create -f mysql-deployment.yaml
查看Deployment的详细信息
kubectl describe deployment mysql
查看Deployment的pods信息
kubectl get pods -l app=mysql
检查PersistentVolumeClaim的信息
kubectl describe pvc mysql-pv-claim
进入MySQL实例 / Connet to MySQL
启动一个MySQL客户端服务并连接到MySQL
kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -h mysql -ppassword
升级MySQL应用 / Upgrade MySQL
可以使用 kubectl apply
命令对Deployment中的image或者其它部分进行升级;
针对有状态应用StatefulSet
, 需要注意以下几点:
Don’t scale the app
This setup is for single-instance apps only. The underlying PersistentVolume can only be mounted to one Pod. For clustered stateful apps, see the StatefulSet documentation.
Use strategy: type: Recreate
in the Deployment configuration YAML file. This instructs Kubernetes to not use rolling updates. Rolling updates will not work, as you cannot have more than one Pod running at a time. The Recreate strategy will stop the first pod before creating a new one with the updated configuration
删除Deployment / Delete the ployment
Delete the deployed objects by name:
kubectl delete deployment,svc mysql kubectl delete pvc mysql-pv-claim
本文转自SegmentFault- 在kubernetes中运行单节点有状态MySQL应用 低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Kubernetes基于EFK进行统一的日志管理方案
1、统一日志管理的整体方案 通过应用和系统日志可以了解Kubernetes集群内所发生的事情,对于调试问题和监视集群活动来说日志非常有用。对于大部分的应用来说,都会具有某种日志机制。因此,大多数容器引擎同样被设计成支持某种日志机制。对于容器化应用程序来说,最简单和最易接受的日志记录方法是将日志内容写入到标准输出和标准错误流。 但是,容器引擎或运行时提供的本地功能通常不足以支撑完整的日志记录解决方案。例如,如果一个容器崩溃、一个Pod被驱逐、或者一个Node死亡,应用相关者可能仍然需要访问应用程序的日志。因此,日志应该具 有独立于Node、Pod或者容器的单独存储和生命周期,这个概念被称为群集级日志记录。群集级日志记录需要一个独立的后端来存储、分析和查询日志。Kubernetes本身并没有为日志数据提供原生的存储解决方案,但可以将许多现有的日志记录解决方案集成到Kubernetes集群中。在Kubernetes中,有三个层次的日志: 基础日志 Node级别的日志 群集级别的日志架构 1.1 基础日志 kubernetes基础日志即将日志数据输出到标准输出流,可以使用kubectl log...
- 下一篇
kubernetes1.9.2基于kubeadm高可用安装教程,包含离线安装包,支持简单快速安装,含视频教程
使用kubeadm安装安全高可用kubernetes集群 安装包地址 如非高可用安装请忽略此教程,直接看 产品页的三步安装。 单个master流程: 单master视频教程 解压后在master 上 cd shell && sh init.sh ,然后sh master.sh(注意因为脚本用的相对路径所以不再当前目录会找不到文件) 在node上 cd shell && sh init.sh 。然后在node上执行master输出的join命令即可 高可用如下 提前准备 假设构建一个3master+2node的k8s集群,需要5台节点共同的条件如下: (yum install -y docker是1.12.6版本需要改cg) 17.06安装教程: #0.删除老旧的 $ yum remove -y docker* #如果默认之前yum安装的1.12版本,可以这样删没装可以跳过此步 #1.安装需要的包 $ yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 #2.添加源,不然默认的找不...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能