上一篇文章我们初步体验了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
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做持久化存储的实践就完成了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。