k8s部署单节点redis 不要pv pvc 在 /opt/myApp/redis目录 密码为 abcabc 端口为 6888 给出创建文件名和 创建文件夹路径 给出详细步骤 并且给出 .sh 的启停脚本
时间: 2024-10-17 10:09:09 浏览: 21
在Kubernetes(k8s)上部署单节点Redis,不需要PersistentVolumeClaim (PVC)以及持久化存储,可以直接将Redis镜像作为 Deployment,并配置卷挂载到宿主机指定目录。以下是详细的步骤:
**1. 首先,下载并编辑Redis镜像:**
你可以从Docker Hub拉取官方的Redis镜像,例如 `docker pull redis:alpine`。然后,如果需要自定义配置,可以创建一个新的Dockerfile,在其中添加密码和端口设置。
```bash
FROM redis:alpine
RUN sed -i "s/#requirepass/requirepass abcabc/" /etc/redis/redis.conf
EXPOSE 6888
CMD ["redis-server", "/etc/redis/redis.conf"]
```
**2. 将镜像推送到私有仓库(如必要):**
```bash
docker build -t your_username/redis-custom .
docker push your_username/redis-custom
```
**3. 编写Deployment配置文件(如:redis-deployment.yaml):**
```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: single-node-redis
spec:
replicas: 1
selector:
matchLabels:
app: redis
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: your_username/redis-custom
ports:
- containerPort: 6888
volumeMounts:
- name: local-storage
mountPath: /opt/myApp/redis
volumes:
- name: local-storage
hostPath:
path: /path/to/host/directory/redis
---
apiVersion: v1
kind: Service
metadata:
name: single-node-redis-service
spec:
selector:
app: redis
ports:
- protocol: TCP
port: 6888
targetPort: 6888
type: ClusterIP
```
在这里,你需要替换 `/path/to/host/directory/redis` 为你的实际宿主机Redis目录路径。
**4. 应用部署配置:**
```bash
kubectl apply -f redis-deployment.yaml
```
**5. 启动与停止脚本(例如:start-stop-redis.sh):**
```bash
#!/bin/bash
# 启动 Redis
start_redis() {
echo "Starting Redis..."
kubectl exec -it <deployment-name> -c redis -- redis-server /etc/redis/redis.conf
}
# 停止 Redis
stop_redis() {
echo "Stopping Redis..."
kubectl delete pod $(kubectl get pods | grep 'single-node-redis' | awk '{print $1}')
}
# 检查 Redis 是否运行
is_redis_running() {
kubectl get pods | grep 'single-node-redis'
}
case "$1" in
start)
start_redis
;;
stop)
stop_redis
;;
status)
is_redis_running && echo "Redis is running" || echo "Redis is not running"
;;
*)
echo "Usage: $0 {start|stop|status}"
esac
```
保存此脚本,然后通过 `./start-stop-redis.sh start`、`stop` 或 `status` 来管理Redis容器。
**相关问题--:**
1. 如何检查部署是否成功?
2. 如何查看服务的访问地址?
3. 如果我想更改Redis的配置,应该如何操作?
阅读全文