K8S上部署一个redis
部署单节点redis
使用的镜像是官方的redis:5.0.5-alpine
查看一下镜像,
1
| docker inspect redis:5.0.5-alpine
|
确认一些关键信息

redis确实是官方的redis。
默认的启动命令是redis-server。
工作目录是/data
这些信息可以帮助我们确认,配置文件等重要数据的挂载位置。
附上yaml文件
前提准备
- 挂载卷使用pvc,提前创建好storageClass。我是使用nfs作了provisioner
- 创建自己的namespace
redis-configmap.yaml
1 2 3 4 5 6 7 8 9
| apiVersion: v1 kind: ConfigMap metadata: name: redis-config namespace: ks-system data: redis-config: | dir /data/data requirepass HS76afsdb67
|
redis-pvc.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13
| apiVersion: v1 kind: PersistentVolumeClaim metadata: name: redis-pvc namespace: ks-system spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi storageClassName: nfs-client volumeMode: Filesystem
|
redis-deploy.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| apiVersion: apps/v1 kind: Deployment metadata: namespace: ks-system name: redis labels: app: redis spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: volumes: - name: redis-data persistentVolumeClaim: claimName: redis-pvc - name: config configMap: name: redis-config items: - key: redis-config path: redis.conf containers: - name: redis image: redis:5.0.5-alpine command: - "sh" - "-c" - "redis-server /data/conf/redis.conf" ports: - containerPort: 6379 protocol: TCP resources: limits: cpu: "1" volumeMounts: - name: redis-data mountPath: /data/data - name: config mountPath: /data/conf
|
redis-svc.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| apiVersion: v1 kind: Service metadata: name: redis namespace: ks-system labels: app: redis spec: type: NodePort ports: - name: redis-port port: 6379 targetPort: 6379 selector: app: redis
|