加入收藏 | 设为首页 | 会员中心 | 我要投稿 51站长网 (https://www.51jishu.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

K8S部署Redis单节点Rdb数据长期化故障演练恢复

发布时间:2021-10-28 16:31:14 所属栏目:系统 来源:互联网
导读:K8S部署Redis单节点Rdb数据持久化故障演练恢复 k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s。 作者:运维小弟来源:今日头条|2021-10-27 08:25 收藏 分享 环境: K8S 部署
K8S部署Redis单节点Rdb数据持久化故障演练恢复
k8s全称kubernetes,这个名字大家应该都不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s。
 
作者:运维小弟来源:今日头条|2021-10-27 08:25 收藏  分享
 
 
环境:
 
K8S 部署redis单节点&rdb数据持久化&故障演练恢复
背景: 采用NFS存储卷的方式 持久化存储redis 需要保存的文件
 
一、部署NFS服务器
#服务器安装nfs服务,提供nfs存储功能 
1、安装nfs-utils 
yum install nfs-utils (centos) 
或者  apt-get install nfs-kernel-server (ubuntu) 
 
2、启动服务 
systemctl enable nfs-server 
systemctl start nfs-server 
 
3、创建共享目录完成共享配置 
mkdir /home/nfs   #创建共享目录 
 
4、编辑共享配置 
vim /etc/exports                                            
#语法格式:    共享文件路径     客户机地址(权限)     #这里的客户机地址可以是IP,网段,域名,也可以是任意* 
/home/nfs  *(rw,async,no_root_squash) 
服务自检命令  
exportfs -arv 
 
 
5、重启服务 
systemctl restart nfs-server 
 
 
6、本机查看nfs 共享目录 
#showmount -e 服务器IP地址 (如果提示命令不存在,则需要yum install showmount) 
 
showmount -e 127.0.0.1 
/home/nfs * 
 
 
 
7、客户端模拟挂载[所有k8s的节点都需要安装客户端] 
[root@master-1 ~]# yum install nfs-utils (centos) 
或者  apt-get install nfs-common (ubuntu) 
[root@master-1 ~]# mkdir /test 
[root@master-1 ~]# mount -t nfs 172.16.201.209:/home/nfs /test 
 
#取消挂载 
[root@master-1 ~]# umount /test 
二、配置PV 动态供给(NFS StorageClass),创建pvc
#部署NFS实现自动创建PV插件: 一共设计到4个yaml 文件 ,官方的文档有详细的说明。
 
https://github.com/kubernetes-incubator/external-storage
 
K8S 部署redis单节点&rdb数据持久化&故障演练恢复
K8S 部署redis单节点&rdb数据持久化&故障演练恢复
root@k8s-master1:~ # mkdir  /root/pvc 
root@k8s-master1:~ # cd   /root/pvc 
创建rbac.yaml 文件
 
root@k8s-master1:pvc # cat rbac.yaml  
kind: ServiceAccount 
apiVersion: v1 
metadata: 
  name: nfs-client-provisioner 
--- 
kind: ClusterRole 
apiVersion: rbac.authorization.k8s.io/v1 
metadata: 
  name: nfs-client-provisioner-runner 
rules: 
  - apiGroups: [""] 
    resources: ["persistentvolumes"] 
    verbs: ["get", "list", "watch", "create", "delete"] 
  - apiGroups: [""] 
    resources: ["persistentvolumeclaims"] 
    verbs: ["get", "list", "watch", "update"] 
  - apiGroups: ["storage.k8s.io"] 
    resources: ["storageclasses"] 
    verbs: ["get", "list", "watch"] 
  - apiGroups: [""] 
    resources: ["events"] 
    verbs: ["create", "update", "patch"] 
--- 
kind: ClusterRoleBinding 
apiVersion: rbac.authorization.k8s.io/v1 
metadata: 
  name: run-nfs-client-provisioner 
subjects: 
  - kind: ServiceAccount 
    name: nfs-client-provisioner 
    namespace: default 
roleRef: 
  kind: ClusterRole 
  name: nfs-client-provisioner-runner 
  apiGroup: rbac.authorization.k8s.io 
--- 
kind: Role 
apiVersion: rbac.authorization.k8s.io/v1 
metadata: 
  name: leader-locking-nfs-client-provisioner 
rules: 
  - apiGroups: [""] 
    resources: ["endpoints"] 
    verbs: ["get", "list", "watch", "create", "update", "patch"] 
--- 
kind: RoleBinding 
apiVersion: rbac.authorization.k8s.io/v1 
metadata: 
  name: leader-locking-nfs-client-provisioner 
subjects: 
  - kind: ServiceAccount 
    name: nfs-client-provisioner 
    # replace with namespace where provisioner is deployed 
    namespace: default 
roleRef: 
  kind: Role 
  name: leader-locking-nfs-client-provisioner 
  apiGroup: rbac.authorization.k8s.io 
创建deployment.yaml 文件
 
#官方默认的镜像地址,国内可能无法下载,可以使用 image:
 
fxkjnj/nfs-client-provisioner:latest
 
#定义NFS 服务器的地址,共享目录名称
 
root@k8s-master1:pvc # cat deployment.yaml  
apiVersion: v1 
kind: ServiceAccount 
metadata: 
  name: nfs-client-provisioner 
--- 
kind: Deployment 
apiVersion: apps/v1  
metadata: 
  name: nfs-client-provisioner 
spec: 
  replicas: 1 
  strategy: 
    type: Recreate 
  selector: 
    matchLabels: 
      app: nfs-client-provisioner 
  template: 
    metadata: 
      labels: 
        app: nfs-client-provisioner 
    spec: 
      serviceAccountName: nfs-client-provisioner 
      containers: 
        - name: nfs-client-provisioner 
          image: fxkjnj/nfs-client-provisioner:latest 
          volumeMounts: 
            - name: nfs-client-root 
              mountPath: /persistentvolumes 
          env: 
            - name: PROVISIONER_NAME 
              value: fuseim.pri/ifs 
            - name: NFS_SERVER 
              value: 172.16.201.209  
            - name: NFS_PATH 
              value: /home/nfs 
      volumes: 
        - name: nfs-client-root 
          nfs: 
            server: 172.16.201.209 
            path: /home/nfs 
 

(编辑:51站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读