1. 程式人生 > 其它 >|NO.Z.00259|——————————|CloudNative|——|KuberNetes&中介軟體容器化及helm.V06|------------------------------------------|中介軟體.v06|redis.v5.0.4|operator方式部署叢集|

|NO.Z.00259|——————————|CloudNative|——|KuberNetes&中介軟體容器化及helm.V06|------------------------------------------|中介軟體.v06|redis.v5.0.4|operator方式部署叢集|



[CloudNative:KuberNetes&中介軟體容器化及helm.V06]                                             [Applications.KuberNetes] [|DevOps|k8s|中介軟體容器化及Helm|部署RedisOperator|部署redis叢集|叢集擴容與縮容|叢集清理|]








一、使用operator方式去部署redis
### --- 下載redis版本包:operator方式部署
~~~     下載redis-cluster-operator包檔案

[root@k8s-master01 operator-redis]# git clone https://github.com/ucloud/redis-cluster-operator.git
### --- redis-cluster-operator配置檔案詳解

[root@k8s-master01 redis-cluster-operator]# more deploy/example/redis.kun_v1alpha1_distributedrediscluster_cr.yaml 
apiVersion: redis.kun/v1alpha1
kind: DistributedRedisCluster       // 自定的資源型別
metadata:
  annotations:
    # if your operator run as cluster-scoped, add this annotations
    redis.kun/scope: cluster-scoped
  name: example-distributedrediscluster
spec:
  # Add fields here
  masterSize: 3
  clusterReplicas: 1
  image: redis:5.0.4-alpine
~~~     以宣告式的方法去建立一個redis叢集,
  masterSize: 3                 // 這個redis叢集定義了有幾個master,有3個master
  clusterReplicas: 1            // 每個master有1個副本;也就說明這個位置會建立6個redis容器
  image: redis:5.0.4-alpine     // 使用的映象版本是redis:5.0.4-alpine
二、建立redis-cluster-operator叢集
### --- 建立redis叢集
~~~     報錯沒有這個kind;說明就是沒有配置operator

[root@k8s-master01 redis-cluster-operator]# kubectl create -f deploy/example/redis.kun_v1alpha1_distributedrediscluster_cr.yaml -n ratel-test1
error: unable to recognize "deploy/example/redis.kun_v1alpha1_distributedrediscluster_cr.yaml": no matches for kind "DistributedRedisCluster" in version "redis.kun/v1alpha1"
### --- 配置operator;建立CRD
~~~     地址:https://github.com/ucloud/redis-cluster-operator#deploy-a-sample-redis-cluster
~~~     註冊DistributedRedisCluster和RedisClusterBackup自定義資源定義(CRD)。

[root@k8s-master01 redis-cluster-operator]# kubectl create -f deploy/crds/redis.kun_distributedredisclusters_crd.yaml
customresourcedefinition.apiextensions.k8s.io/distributedredisclusters.redis.kun created
[root@k8s-master01 redis-cluster-operator]# kubectl create -f deploy/crds/redis.kun_redisclusterbackups_crd.yaml
customresourcedefinition.apiextensions.k8s.io/redisclusterbackups.redis.kun created
### --- 名稱空間範圍的操作員監視和管理單個名稱空間中的資源,
~~~     而叢集範圍的操作員監視和管理群集範圍內的資源。
~~~     您可以選擇以名稱空間範圍或叢集範圍執行您的操作員。

[root@k8s-master01 redis-cluster-operator]#  kubectl create -f deploy/service_account.yaml
serviceaccount/redis-cluster-operator created
[root@k8s-master01 redis-cluster-operator]# kubectl create -f deploy/cluster/cluster_role.yaml
clusterrole.rbac.authorization.k8s.io/redis-cluster-operator created
[root@k8s-master01 redis-cluster-operator]# kubectl create -f deploy/cluster/cluster_role_binding.yaml
clusterrolebinding.rbac.authorization.k8s.io/redis-cluster-operator created
[root@k8s-master01 redis-cluster-operator]# kubectl create -f deploy/cluster/operator.yaml
deployment.apps/redis-cluster-operator created
configmap/redis-admin created
### --- 檢視建立的redis-cluster-operator

[root@k8s-master01 redis-cluster-operator]# kubectl get po  -owide
NAME                                      READY   STATUS    RESTARTS   AGE     IP              NODE           NOMINATED NODE   READINESS GATES
busybox                                   1/1     Running   15         7d21h   172.18.195.25   k8s-master03   <none>           <none>
redis-cluster-operator-6669898858-xqpqq   1/1     Running   0          95s     172.25.92.116   k8s-master02   <none>           <none>
三、建立redis叢集(因記憶體不夠導致實驗失敗)
### --- 建立redis叢集

[root@k8s-master01 redis-cluster-operator]# kubectl apply -f deploy/example/redis.kun_v1alpha1_distributedrediscluster_cr.yaml 
distributedrediscluster.redis.kun/example-distributedrediscluster created
### --- 檢視叢集;顯示是pending狀態,檢視記錄,發現是記憶體不夠
~~~     注:顯示記憶體不夠

[root@k8s-master01 redis-cluster-operator]# kubectl get po -owide
NAME                                      READY   STATUS    RESTARTS   AGE     IP              NODE           NOMINATED NODE   READINESS GATES
drc-example-distributedrediscluster-0-0   0/1     Pending   0          63s     <none>          <none>         <none>           <none>
drc-example-distributedrediscluster-1-0   0/1     Pending   0          13m     <none>          <none>         <none>           <none>
drc-example-distributedrediscluster-2-0   0/1     Pending   0          13m     <none>          <none>         <none>           <none>
redis-cluster-operator-6669898858-xqpqq   1/1     Running   0          31m     172.25.92.116   k8s-master02   <none>           <none>
[root@k8s-master01 redis-cluster-operator]# kubectl delete po drc-example-distributedrediscluster-0-0 
  Warning  FailedScheduling  16s   default-scheduler  0/5 nodes are available: 5 Insufficient memory.








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)