目录
一、创作灵感
项目上拉起容器或K8S的POD并挂载目录时提示没有权限建目录
二、创作思路
既然木有权限那就给权限
三、具体实现
1、docker拉起容器时如何赋权
# docker拉起容器脚本,解决挂载loki目录没有权限
docker rm -f loki
docker run --name loki -d -u $(id -u):$(id -g) --restart=always -v $(pwd)/config:/mnt/config \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v $(pwd)/tmp:/loki \
-p 3100:3100 grafana/loki:2.6.1 -config.file=/mnt/config/loki-config.yaml
其中 -u $(id -u):$(id -g) 是用来赋权的,小伙伴可以直接把这段加到自己脚本中
2、k8s拉起pod时如何赋权
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-ovo
spec:
serviceName: loki-ovo
replicas: 1
selector:
matchLabels:
app: loki-ovo
template:
metadata:
labels:
app: loki-ovo
spec:
containers:
- name: loki-ovo
image: grafana/loki:2.6.1
securityContext:
runAsUser: 0 # 添加root权限
runAsGroup: 0 # 添加root权限组
args:
- -config.file=/mnt/config/loki-config.yaml
ports:
- name: loki-http
containerPort: 3030
- name: loki-grpc
containerPort: 9595
volumeMounts:
- name: config-volume
mountPath: /mnt/config
- name: loki-storage
mountPath: /loki
restartPolicy: Always
volumes:
- name: config-volume
configMap:
name: loki-config-ovo
- name: loki-storage
persistentVolumeClaim:
claimName: my-loki-pvc
其中
securityContext:
runAsUser: 0 # 添加root权限
runAsGroup: 0 # 添加root权限组
是赋权的关键,小伙伴可以直接加到自己的文件中
四、总结
权限确实是一件头疼的事,为此还没能准时下班,加了半个小时还是没解决,其实之前也遇到此类权限问题,只不过隔得时间久了没能想起来,觉得有用的小伙伴欢迎点赞收藏加关注,会持续分享实用的技术,所谓你负责挖坑,我负责填坑,一起加油