AKS使用Azure Disk实现动态持久化存储(下)

上一篇文章我们初步体验了AKS pod挂载Azure Disk的流程,这篇文章我们来正式部署一个mysql的服务来看下。

首先准备一个PVC,命名为mysql-pvc.yaml,内容如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: managed-premium
  resources:
    requests:
      storage: 32Gi

编辑后执行:

kubectl apply -f mysql-pvc.yaml

完了部署mysql, 创建mysql.yml如下:

kind: Service
apiVersion: v1
metadata:
  name: mysql
spec:
  selector:
    app: mysql
  ports:
  - port: 3306

---
kind: Deployment
apiVersion: apps/v1beta1
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
	  app: mysql
  template:
    metadata:
	  labels:
	    app: mysql
	spec:
      containers:
      - name: mysql
        image: mysql:5.6
        env:
	    - name: MYSQL_ROOT_PASSWORD
	      value: password
	    ports:
	    - containerPort: 3306
	      name: mysql
        volumeMounts:
        - mountPath: /var/lib/mysql
          name: volumeformysql
      volumes:
      - name: volumeformysql
        persistentVolumeClaim:
          claimName: mysql

执行kubectl apply -f mysql.yml 后看到这个pod在node aks-agentpool-37075081-0上启动了,此时可以去portal上MC_开头的资源组里找到相应的azure 磁盘,概述中发现它是属于aks-agentpool-37075081-0这台VM。

然后我们创建一个mysql-client的pod,进入该pod中简单创建一个数据库,命名为test,插入一条数据:

接下来我们进入portal看下这个磁盘的监控情况:

然后我们在MC_开头的资源组找到aks-agentpool-37075081-0这台VM,手动关机,观察pod的状态,立即查看发现之前aks-agentpool-37075081-0上的两个pod的unknow了:

与此同时另一个pod mysql-87585fdf4-r4zkj正在创建,这就是K8S集群的特点,能监控节点的运行状况,保证服务可用。(这里之所以mysql-client没有重新创建是因为创建的时候给它的属性就是挂掉了直接删除该pod),过几分钟后我们重新查看,看到这个新的pod已经迁移到aks-agentpool-37075081-2上了:

执行kubectl describe pod mysql-87585fdf4-r4zkj:

再回到portal上查看磁盘,看到磁盘的所属VM已经更新为aks-agentpool-37075081-2:

然后去数据库里检查之前的数据是否完整:

至此一个AKS上搭建Mysql,利用Azure Disk做持久化存储的实践就完成了。

原文地址:https://www.cnblogs.com/changruijun/p/11001093.html

时间: 2024-11-04 00:06:10

AKS使用Azure Disk实现动态持久化存储(下)的相关文章

kubernetes持久化存储,静态存储【pv】,动态存储【StorageClass】(5)

在开始介绍k8s持久化存储前,我们有必要了解一下k8s的emptydir和hostpath.configmap以及secret的机制和用途 1.EmptydirEmptyDir是一个空目录,他的生命周期和所属的 Pod 是完全一致的,pod删掉目录消失 2.HostpathHostpath会把宿主机上的指定卷加载到容器之中,如果 Pod 发生跨主机的重建,其内容就难保证了 3.ConfigmapConfigMap跟Secrets类似,但是ConfigMap可以更方便的处理不包含敏感信息的字符串.

Redis4.0 之持久化存储

redis如果提供缓存服务,可以关闭所有持久化存储,如此一来redis重启后所有数据会丢失 开启rdb或aof持久化存储,能把redis中的数据持久化到磁盘中. rdb和aof对性能都有影响,所以建议持久化的操作在从库上进行 Redis的rdb存储方式,使用save配置开启rdb存储或者关闭rdb存储 # 默认情况下rdb持久化存储是开启的 [[email protected] ~]# redis-cli -h 127.0.0.1 config set save "" # 关闭rdb存

Redis4.0之持久化存储

一,redis概述与实验环境说明 1.1 什么是redis redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用 redis存储数据的方法是以key-value的形式 value类型支持字符串,列表,哈希等多种类型 1.2 环境说明 主机名 IP 用途 Redis01 10.1.1.146 Redis-master [[email protected] ~]# cat /etc/redhat-releaseCentOS Linux release 7.5.1804 (Core) [

k8s之volumes持久化存储

k8s之数据持久化 kubernetes存储卷:我们知道默认情况下容器的数据都是非持久化的,在容器销毁以后数据也跟着丢失,所以docker提供了volume机制以便将数据持久化存储.类似的,k8s提供了更强大的volume机制和丰富的插件,解决了容器数据持久化和容器间共享数据的问题. volume:我们经常会说:容器和 Pod 是短暂的.其含义是它们的生命周期可能很短,会被频繁地销毁和创建.容器销毁时,保存在容器内部文件系统中的数据都会被清除.为了持久化保存容器的数据,可以使用k8s volum

iOS开发之数据持久化存储

概论 数据持久化存储:所谓持久化存储就是将数据保存到硬盘中,使得应用程序或者机器在重启后可以访问之前保存的数据. 常见方式: plist文件(属性列表) preference(偏好设置) NSKeyedArchiver(归档) SQLite3(数据库) CoreData(苹果基于数据库封装的持久化存储工具,这种方式效率不高,因为会帮我们动态生成很多重复的代码,我只有写XMPP的时候会用一下,因为XMPP里面的存储用的就是CoreData) 沙盒 说到持久化存储就不得不说一下苹果的沙盒机制,苹果的

深入浅出Mesos(三):持久化存储和容错

[编者按]Mesos是Apache下的开源分布式资源管理框架,它被称为是分布式系统的内核.Mesos最初是由加州大学伯克利分校的AMPLab开发的,后在Twitter得到广泛使用.InfoQ接下来将会策划系列文章来为读者剖析Mesos.本文是整个系列的第一篇,简单介绍了Mesos的背景.历史以及架构. 注:本文翻译自Cloud Architect Musings,InfoQ中文站在获得作者授权的基础上对文章进行了翻译. 在深入浅出Mesos系列的第一篇文章中,我对相关的技术做了简要概述,在第二篇

Longhorn:实现Kubernetes集群的持久化存储

Longhorn项目是Rancher Labs推出的开源的基于云和容器部署的分布式块存储新方式.Longhorn遵循微服务的原则,利用容器将小型独立组件构建为分布式块存储,并使用容器编排来协调这些组件,形成弹性分布式系统. 自2017年4月Longhorn项目发布以来,人们对在Kubernetes集群上运行Longhorn存储就产生了极大的兴趣.近日,Longhorn v0.2版本发布了,它可支持任何Kubernetes集群的持久化存储实现! Why Longhorn 如今,基于云和容器的部署规

Kubernetes调用vSphere vSAN做持久化存储

参考 1.vSphere Storage for Kubernetes 2.IBM vSphere Cloud Provider 3.GitHub vSphere Volume examples 一. 框架 说明: 在kubernetes集群中部署vsphere cloud provider: 运行在kubernetes集群中的Pod通过多种方式(静态或动态)可调用vSAN/VMFS等后端存储的VMDK做为其持久卷. 二. 环境 2.1 验证环境 vCenter IP Version USER

k8s的持久化存储

本例使用nfs 创建pv [[email protected] data]# vi pv.yaml apiVersion: v1kind: PersistentVolumemetadata: name: webspec: capacity: storage: 5Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle nfs: path: /data server: 10.10.1.10 字段说明: ======