前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s安装redis单机版

k8s安装redis单机版

作者头像
summerking
发布2022-09-19 11:52:17
1.5K0
发布2022-09-19 11:52:17
举报
文章被收录于专栏:summerking的专栏

# 1.创建data目录

代码语言:javascript
复制
[root@node1 redis]# pwd
/home/summer/redis
[root@node1 redis]# mkdir -p /home/summer/redis/data
[root@node1 redis]# chmod -R 777 /home/summer/redis/data

# 2.整体目录

代码语言:javascript
复制
[root@master redis]# ll
总用量 8
drwxrwxrwx 2 root root   24 1月   4 14:41 conf
drwxrwxrwx 2 root root    6 1月   4 14:46 data
-rwxrwxrwx 1 root root 1558 1月   4 14:48 pod.yml
-rwxrwxrwx 1 root root  202 1月   4 14:48 service.yml
[root@master redis]# cd conf/
[root@master conf]# ll
总用量 4
-rwxrwxrwx 1 root root 57 1月   4 14:41 redis.conf
[root@master conf]# cat redis.conf 
port 6379
timeout 3000
tcp-keepalive 0
databases 99

  • pod.yml文件

点击查看

代码语言:javascript
复制
apiVersion: apps/v1
kind: StatefulSet
metadata:

  name: redis
  labels:
    app: redis
  annotations:
    security.alpha.kubernetes.io/unsafe-sysctls: net.core.somaxconn=65535
spec:
  #securityContext:
    #privileged: true
  serviceName: redis
  replicas: 1
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
        #net:
          #core:
            #somaxconn=511:
    spec:
      containers:
        - name: redis
          image: redis:5.0.6
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 450m
              memory: 4000Mi
            requests:
              cpu: 400m
              memory: 4000Mi
          env:
            - name: TZ
              value: Asia/Shanghai
          command: ["redis-server","/usr/local/etc/redis/redis.conf","--appendonly yes"]
#          lifecycle:
#            postStart:
#              exec:
#                command: ["/bin/bash", "-c", "echo 511 > /proc/sys/net/core/somaxconn; echo never > /sys/kernel/mm/transparent_hugepage/enabled;"]
          ports:
            - containerPort: 6379
          volumeMounts:
            - name: vol-conf
              mountPath: /usr/local/etc/redis
            - name: vol-data
              mountPath: /data
      volumes:
        - name: vol-conf
          hostPath:
            path: /home/summer/redis/conf
            type: Directory
        - name: vol-data
          hostPath:
              path: /home/summer/redis/data
              type: Directory

  • srtvice.yml文件

点击查看

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:

  name: redis
  labels:
    app: redis
spec:
  type: NodePort
  ports:
    - port: 6379
      targetPort: 6379
      nodePort: 30379
  selector:
    app: redis

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

# 3.执行yml

代码语言:javascript
复制
[root@master redis]# kubectl create -f  /home/summer/redis/service.yml
[root@master redis]# kubectl create -f  /home/summer/redis/pod.yml

1 2

# 4.验证

代码语言:javascript
复制
[root@master conf]# kubectl get pods
NAME       READY   STATUS    RESTARTS   AGE
redis-0    1/1     Running   0          2m40s
[root@master conf]# kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP          5h28m
redis        NodePort    10.110.14.232    <none>        6379:30379/TCP   10m

此时用RedisDesk工具连接集群任意节点ip:30379验证即可

# 5.记录报错处理

这里注意由于k8s随机分配pod在任意node,应在每个node上都创建data/conf目录

比如这里查看pod创建报错信息发现此pod被分配到了node1,但是之前我只在master上创建了data/conf目录

点击查看

代码语言:javascript
复制
[root@master redis]# kubectl describe pod  redis-0
Name:           redis-0
Namespace:      default
Priority:       0
Node:           node1/192.168.0.96
Start Time:     Mon, 04 Jan 2021 14:50:58 +0800
Labels:         app=redis
                controller-revision-hash=redis-56b6778b6
                statefulset.kubernetes.io/pod-name=redis-0
Annotations:    <none>
Status:         Pending
IP:             
IPs:            <none>
Controlled By:  StatefulSet/redis
Containers:
  redis:
    Container ID:  
    Image:         redis:5.0.6
    Image ID:      
    Port:          6379/TCP
    Host Port:     0/TCP
    Command:
      redis-server
      /usr/local/etc/redis/redis.conf
      --appendonly yes
    State:          Waiting
      Reason:       ContainerCreating
    Ready:          False
    Restart Count:  0
    Limits:
      cpu:     450m
      memory:  4000Mi
    Requests:
      cpu:     400m
      memory:  4000Mi
    Environment:
      TZ:  Asia/Shanghai
    Mounts:
      /data from vol-data (rw)
      /usr/local/etc/redis from vol-conf (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-xmbb9 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  vol-conf:
    Type:          HostPath (bare host directory volume)
    Path:          /home/summer/redis/conf
    HostPathType:  Directory
  vol-data:
    Type:          HostPath (bare host directory volume)
    Path:          /home/summer/redis/data
    HostPathType:  Directory
  default-token-xmbb9:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-xmbb9
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason       Age                From               Message
  ----     ------       ----               ----               -------
  Normal   Scheduled    <unknown>          default-scheduler  Successfully assigned default/redis-0 to node1
  Warning  FailedMount  14s (x7 over 46s)  kubelet, node1     MountVolume.SetUp failed for volume "vol-data" : hostPath type check failed: /home/summer/redis/data is not a directory
  Warning  FailedMount  14s (x7 over 46s)  kubelet, node1     MountVolume.SetUp failed for volume "vol-conf" : hostPath type check failed: /home/summer/redis/conf is not a directory
[root@master redis]# ll
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 1.创建data目录
  • # 2.整体目录
  • # 3.执行yml
  • # 4.验证
  • # 5.记录报错处理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档