“K8s mysql NFS 持久化”与“K8s on aliyun”:页面之间的差异

来自linuxsa wiki
(页面间差异)
跳转到导航 跳转到搜索
Evan留言 | 贡献
 
Evan留言 | 贡献
 
第1行: 第1行:
[[category:k8s]]
=start=
=k8s mysql5.7 NFS 持久化=
==NFS==
<pre>
root@debian11:~# mkdir  -p /data/k8s/mysql57
root@debian11:~# chmod -R 0777  /data/k8s/mysql57
root@debian11:~# ls /data/k8s/mysql57


</pre>
这个是利用aliyun 源安装本地k8s 环境


== k8s yaml==
[[使用阿里云镜像源快速搭建kubernetes(k8s) on debian10]]
<pre>
root@k8s-master:~/mysql5.7# ls
pvc.yaml  pv.yaml  svc.yaml




pv pvc 通过 storageClassName: nfs  关联
需要把域名解析到服务service的公网ip上,暴露服务的方式有3种,使用slb、ingress和使用nodeport


cat pv.yaml
可参考下这篇文档 https://help.aliyun.com/document_detail/86512.html
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql57-pv-evan
spec:
  accessModes:
    - ReadWriteOnce    #指定访问模式
  capacity:
    storage: 1Gi    #存储容量 1G
  persistentVolumeReclaimPolicy: Retain  #回收策略 Retain 管理员手工回收 Recycle 
  #清除 PV 的数据  Delete  删除Storage Provider上的对应存储资源
  storageClassName: nfs  #指定PV 的class为nfs
  nfs:
    path: /data/k8s/mysql57  #PV在 NFS服务器上对应的目录
    server: 192.168.88.122 
 
 
cat pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql57-pvc-evan
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs
 
 
 
cat svc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-pvc-evan
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs


=see also=


apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  type: NodePort
  ports:
  - protocol: TCP
    nodePort: 30306
    port: 3306
    targetPort: 3306
  selector:
    app: mysql
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:5.7
        name: mysql
        env:
        - 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: mysql57-pvc-evan




[https://hashmaparraylist.github.io/2020/04/01/%E9%98%BF%E9%87%8C%E4%BA%91Kubernetes%E4%B8%8A%E7%BA%BF%E8%B8%A9%E5%9D%91%E8%AE%B0/ 阿里云Kubernetes上线踩坑记]


依次执行
[https://mritd.me/2017/09/20/set-up-ha-kubernetes-cluster-on-aliyun-ecs/ 阿里云经典网络部署 Kubernetes]


kubectl apply -f pv.yaml
  kubectl get pv
  kubectl apply -f pvc.yaml
kubectl get pv,pvc
kubectl apply -f svc.yaml
  kubectl get pod
  kubectl exec  -it mysql-58ddb8d7f6-bhps5 bash


[https://help.aliyun.com/document_detail/86748.html?spm=a2c4g.11174283.6.571.24062ceeHGHL16 部署有依赖关系的wordpress应用]




root@k8s-master:~/mysql5.7# kubectl get pv,pvc
[https://my.oschina.net/yunqi/blog/3041189 Kubernetes从懵圈到熟练:读懂这一篇,集群节点不下线]
NAME                              CAPACITY  ACCESS MODES  RECLAIM POLICY  STATUS        CLAIM                      STORAGECLASS  REASON  AGE
persistentvolume/mysql-nfs-pv      2Gi        RWO            Retain          Terminating  default/mysql-nfs-pvc      nfs                    2d1h
persistentvolume/mysql-nfs-pv1    3Gi        RWO            Retain          Bound        default/mysql-nfs-pvc1    nfs                    33h
persistentvolume/mysql-pv          4Gi        RWX            Retain          Bound        default/mysql-claim        nfs                    36h
persistentvolume/mysql57-pv-evan  1Gi        RWO            Retain          Bound        default/mysql57-pvc-evan  nfs                    18s
persistentvolume/web-pv            2Gi        RWX            Retain          Bound        default/web-claim          nfs                    35h


NAME                                    STATUS        VOLUME            CAPACITY  ACCESS MODES  STORAGECLASS  AGE
[https://yq.aliyun.com/articles/704175?spm=a2c4e.11153940.0.0.64326e3diZ2osk K8S从懵圈到熟练 – 集群网络详解]
persistentvolumeclaim/mysql-claim        Bound        mysql-pv          4Gi        RWX            nfs            36h
persistentvolumeclaim/mysql-nfs-pvc      Terminating  mysql-nfs-pv      2Gi        RWO            nfs            2d1h
persistentvolumeclaim/mysql-nfs-pvc1    Bound        mysql-nfs-pv1    3Gi        RWO            nfs            33h
persistentvolumeclaim/mysql57-pvc-evan  Bound        mysql57-pv-evan  1Gi        RWO            nfs            6s
persistentvolumeclaim/web-claim          Bound        web-pv            2Gi        RWX            nfs            35h
root@k8s-master:~/mysql5.7#






node1ip 192.168.88.51
[https://yq.aliyun.com/articles/699200?utm_content=g_1000053701 K8S从懵圈到熟练:读懂这一篇,集群节点不下线]


root@k8s-master:~/mysql5.7# kubectl get svc
[https://yq.aliyun.com/articles/704175?spm=a2c4e.11153940.0.0.64326e3diZ2osk# K8S从懵圈到熟练 – 集群网络详解]
NAME        TYPE        CLUSTER-IP    EXTERNAL-IP  PORT(S)          AGE
mysql        NodePort    10.96.61.100  <none>        3306:30306/TCP  2d1h




mysql -uroot -h192.168.88.51 -P30306 -p
应用
或者 kubectl exec  -it mysql-58ddb8d7f6-bhps5 bash
mysql -uroot -ppassword


create database evanmysq57;
[https://help.aliyun.com/document_detail/90406.html?spm=a2c4g.11186623.4.3.5ad84b4bfzmk7f 镜像创建无状态Deployment应用]


回来 nfs 看一下 
[https://help.aliyun.com/document_detail/86740.html?spm=a2c4g.11186623.6.545.388f2d56PtsCrz 应用场景]
root@debian11:~# ls /data/k8s/mysql57/evanmysq57/
db.opt


[https://yq.aliyun.com/articles/697988 docker使用阿里云镜像仓库]


[https://help.aliyun.com/document_detail/86307.html?spm=a2c4g.11186623.4.3.32b7605dQ79eu3 使用私有镜像仓库创建应用]


[https://help.aliyun.com/document_detail/86536.html?spm=5176.2020520165.119.d86536.2d357029XalTRt 通过界面创建路由(Ingress)]


</pre>
=删除云产品=


=pod mysql 密码=
登录负载均衡管理控制台。在实例管理页面,选择负载均衡实例的所属地域。找到目标实例,单击列表底部的释放设置或者选择操作列的更多 > 释放设置
<pre>
cat po.yml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: pod11
  name: mysqldb1
spec:
  terminationGracePeriodSeconds: 0
  containers:
  - image: m.daocloud.io/docker.io/library/mysql:5.7.25
    imagePullPolicy: IfNotPresent
    name: c1
    resources: {}
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: mysql111
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}


[https://www.yunqikan.cn/1848.html 删除负载均衡实例]


</pre>
=mysql5.6=
和上次一样改了下 pv pvc image 名就行了
=see also=


[https://blog.csdn.net/weixin_43925277/article/details/104313863  MySQL的持久化部署(k8s与NFS)]
https://homenew.console.aliyun.com/




[https://www.cnblogs.com/danny-djy/p/15948918.html  基于k8s的statefulset+pv安装mysql5.7主从集群 没成功]
[[category:k8s]]

2021年9月1日 (三) 13:09的最新版本

start

这个是利用aliyun 源安装本地k8s 环境

使用阿里云镜像源快速搭建kubernetes(k8s) on debian10


需要把域名解析到服务service的公网ip上,暴露服务的方式有3种,使用slb、ingress和使用nodeport

可参考下这篇文档 https://help.aliyun.com/document_detail/86512.html

see also

阿里云Kubernetes上线踩坑记

阿里云经典网络部署 Kubernetes


部署有依赖关系的wordpress应用


Kubernetes从懵圈到熟练:读懂这一篇,集群节点不下线

K8S从懵圈到熟练 – 集群网络详解


K8S从懵圈到熟练:读懂这一篇,集群节点不下线

K8S从懵圈到熟练 – 集群网络详解


应用

镜像创建无状态Deployment应用

应用场景

docker使用阿里云镜像仓库

使用私有镜像仓库创建应用

通过界面创建路由(Ingress)

删除云产品

登录负载均衡管理控制台。在实例管理页面,选择负载均衡实例的所属地域。找到目标实例,单击列表底部的释放设置或者选择操作列的更多 > 释放设置

删除负载均衡实例


https://homenew.console.aliyun.com/