作者:李毓

redis是属于数据库,在ceph为后端存储的情况下,适合rbd模式。所以我们先搭建RBD模式的存储。

紧接上一节CEPH所讲,创建自动供给PV.

[root@adm-master src]# cd external-storage-master/ceph/rbd/deploy/[root@adm-master deploy]# lsnon-rbac  rbac  README.md[root@adm-master deploy]# pwd/usr/local/src/external-storage-master/ceph/rbd/deploykubectl apply -f ./rbac[root@adm-master rbac]# kubectl get podsNAME                                     READY   STATUS    RESTARTS   AGErbd-provisioner-c968dcb4b-fws8q          1/1     Running   0          42m

创建secret

[root@adm-master test-rbd]# cat ceph-secret-rbd.yaml apiVersion: v1kind: Secretmetadata:  name: ceph-secret-rbd  namespace: test-redistype: "ceph.com/rbd"data:  key: QVFCem9UOWdiQWNwRXhBQXFET0VKTnFMWGJRZm1TTmhObkRRdUE9PQo=

在ceph节点创建pool池

ceph osd pool create k8stest 256rbd create rbda -s 1024 -p k8stestrbd feature disable  k8stest/rbda object-map fast-diff deep-flatten

创建storageclass

[root@adm-master test-rbd]# cat rbd-sc.yaml apiVersion: storage.k8s.io/v1kind: StorageClassmetadata:  name: k8s-rbdprovisioner: ceph.com/rbdparameters:  monitors: 192.168.0.131:6789,192.168.0.132:6789,192.168.0.133:6789  adminId: admin  adminSecretName: ceph-secret-rbd  pool: k8stest  userId: admin  userSecretName: ceph-secret-rbd  fsType: xfs  imageFormat: "2"  imageFeatures: "layering"

接着安装redis集群

第一步,按套路来先添加库。
helm repo add stable http://mirror.azure.cn/kubernetes/charts/

添加成功

[root@adm-master jenkins]# helm repo listNAME    URL                                      apphub  https://apphub.aliyuncs.com              stable  http://mirror.azure.cn/kubernetes/charts/

查询一下我们需要的redis

[root@adm-master jenkins]# helm search repo redisNAME                                CHART VERSION   APP VERSION     DESCRIPTION                                       apphub/prometheus-redis-exporter    3.2.2           1.3.4           Prometheus exporter for Redis metrics             apphub/redis                        10.5.3          5.0.7           Open source, advanced key-value store. It is of...apphub/redis-cache                  0.5.0           4.0.12-alpine   A pure in-memory redis cache, using statefulset...apphub/redis-ha                     4.3.3           5.0.6           Highly available Kubernetes implementation of R...apphub/redis-operator               1.0.0                           Redis Operator provides high availability redis...apphub/redispapa                    0.0.1           0.0.1           利用redis的info信息对redis的使用情况进行监控的一...stable/prometheus-redis-exporter    3.5.1           1.3.4           DEPRECATED Prometheus exporter for Redis metrics  stable/redis                        10.5.7          5.0.7           DEPRECATED Open source, advanced key-value stor...stable/redis-ha                     4.4.6           5.0.6           DEPRECATED - Highly available Kubernetes implem...stable/sensu                        0.2.5           0.28            DEPRECATED Sensu monitoring framework backed by...apphub/codis                        3.2             3.2             A Helm chart for Codis    

查看历史版本命令

helm search repo redis -

拉取最新的redis部署文件

helm pull stable/redis-ha[root@adm-master src]# cd redis-ha/[root@adm-master redis-ha]# lsChart.yaml  ci  README.md  templates  values.yaml

部署文件的变量值一般保存在values.yaml里面

修改一下子values.yaml里面的副本数

改为一主一从即可

存储方式改为rbd,具体搭建cephfs的方式参考我之前的文档。

部署redis集群

[root@adm-master redis-ha]# kubectl create ns test-redisnamespace/test-redis created[root@adm-master redis-ha]# helm install redis . -f ./values.yaml -n test-redisWARNING: This chart is deprecatedNAME: redisLAST DEPLOYED: Sun Mar 14 22:55:28 2021NAMESPACE: test-redisSTATUS: deployedREVISION: 1NOTES:Redis can be accessed via port 6379 and Sentinel can be accessed via port 26379 on the following DNS name from within your cluster:redis-redis-ha.test-redis.svc.cluster.localTo connect to your Redis server:1. Run a Redis pod that you can use as a client:   kubectl exec -it redis-redis-ha-server-0 sh -n test-redis2. Connect using the Redis CLI:  redis-cli -h redis-redis-ha.test-redis.svc.cluster.local

暴露出外网

[root@adm-master redis-ha]# cat redis-services.yaml apiVersion: v1kind: Servicemetadata:  name: redis-ha-service  namespace: test-redis        #名称:随意  labels:    app: redis                  #部署的 redis-ha 名称spec:  ports:  - name: redis                 #部署的 redis-ha 名称    protocol: "TCP"                     #TCP 协议    port: 26379                             targetPort: 6379                nodePort: 30379                     #此为外部连接k8s redis-ha 服务的端口  selector:    statefulset.kubernetes.io/pod-name: redis-redis-ha-server-0  type: NodePort

其他可用的命令有

redis 的 upgrade

修改了 values.yaml中的 replicas 数量之后需要更新一下

helm upgrade redis .

查看历史记录回滚

helm -n redis history

删除项目

helm uninstall redis

©著作权归作者所有:来自51CTO博客作者木子每旒的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Kafka源码系列之topic创建分区分配及leader选举
  2. OSD 自动升级Dell BIOS 版本
  3. 企业实战|企业接口管理平台Yapi搭建
  4. 政务大数据系列7:政务大数据的部署结构
  5. 企业实战|Kubernetes持续交付实践一
  6. Promethus集群部署笔记:(五)安装并配置snmp_exporter
  7. 阿里测试环境运维及研发效率提升之道
  8. 在Ubuntu系统上使用kubeadm部署v1.20版的Kubernetes集群
  9. 文件夹管理: mv cp rm touch mkdir LS 创建文件夹 移动 删除

随机推荐

  1. 布局与深化
  2. android sd卡读取数据库
  3. Android development setup( relocate .a
  4. Android设置Activity背景为透明style
  5. 2.5.4 使用popupWindow
  6. 内部类的使用
  7. ANDROID EMULATOR 4 启动报错
  8. Android SDK API 15 各安装包下载地址
  9. Android TextView使用权重时文字无法居中
  10. 2.4.12 画廊视图