gpt4 book ai didi

kubernetes - 在 Google Container Engine 中部署的非 root 用户的 Docker 容器无法写入已挂载的 GCE 持久磁盘

转载 作者:行者123 更新时间:2023-12-04 16:38:57 25 4
gpt4 key购买 nike

我在玩 kubernetes 和谷歌容器引擎(GKE)。
我从这个镜像部署了一个容器 jupyter/all-spark-notebook
这是我的复制 Controller :

{
"apiVersion": "v1",
"kind": "ReplicationController",
"metadata": {
"name": "datalab-notebook"
},
"spec": {
"replicas": 1,
"selector": {
"app": "datalab-notebook"
},
"template": {
"metadata": {
"name": "datalab-notebook",
"labels": {
"environment": "TEST",
"app": "datalab-notebook"
}
},
"spec": {
"containers": [{
"name": "datalab-notebook-container",
"image": "jupyter/all-spark-notebook",
"env": [],
"ports": [{
"containerPort": 8888,
"name": "datalab-port"
}],
"volumeMounts": [{
"name": "datalab-notebook-persistent-storage",
"mountPath": "/home/jovyan/work"
}]
}],
"volumes": [{
"name": "datalab-notebook-persistent-storage",
"gcePersistentDisk": {
"pdName": "datalab-notebook-disk",
"fsType": "ext4"
}
}]
}
}

}
}
如您所见,我挂载了 Google Compute Engine Persistent Disk。我的问题是容器使用非 root 用户,并且挂载的磁盘归 root 所有。所以我的容器无法写入磁盘。
  • 有没有办法挂载 GCE 永久磁盘并使它们在没有非 root 用户的情况下对容器进行读/写?
  • 另一个常见问题:在 Google Container Engine 中以 root 用户运行容器是否安全?

  • 预先感谢您的意见

    最佳答案

    您可以使用 Pod 安全上下文的 FSGroup 字段使非 root 用户可写 GCE PD。

    在此示例中,gce 卷将由组 1234 拥有,并且容器进程的补充组列表中将包含 1234:

    apiVersion: v1
    kind: Pod
    metadata:
    name: test-pd
    spec:
    securityContext:
    fsGroup: 1234
    containers:
    - image: gcr.io/google_containers/test-webserver
    name: test-container
    volumeMounts:
    - mountPath: /test-pd
    name: test-volume
    volumes:
    - name: test-volume
    # This GCE PD must already exist.
    gcePersistentDisk:
    pdName: my-data-disk
    fsType: ext4

    关于kubernetes - 在 Google Container Engine 中部署的非 root 用户的 Docker 容器无法写入已挂载的 GCE 持久磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35213589/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com