作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 K8s 部署,它将一个 secret 安装到 /etc/google-cloud-account
中,其中包含要从应用程序使用的 Google 身份验证 JSON 文件。当我尝试运行部署时,我的 pod 出现以下错误:
1m 1m 1 kubelet, gke-development-cluster-default-pool-17f531d7-sj4x spec.containers{api} Normal Created Created container with docker id 36b85ec8415a; Security:[seccomp=unconfined]
1m 1m 1 kubelet, gke-development-cluster-default-pool-17f531d7-sj4x spec.containers{api} Warning Failed Failed to start container with docker id 36b85ec8415a with error: Error response from daemon: rpc error: code = 2 desc = "oci runtime error: could not synchronise with container process: mkdir /var/lib/docker/overlay/b4aa81194f72ccb54d88680e766a921ea26f7a4df0f4b32d6030123896b2b203/merged/etc/google-cloud-account: read-only file system"
1m 1m 1 kubelet, gke-development-cluster-default-pool-17f531d7-sj4x Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "api" with RunContainerError: "runContainer: Error response from daemon: rpc error: code = 2 desc = \"oci runtime error: could not synchronise with container process: mkdir /var/lib/docker/overlay/b4aa81194f72ccb54d88680e766a921ea26f7a4df0f4b32d6030123896b2b203/merged/etc/google-cloud-account: read-only file system\""
2m 13s 11 kubelet, gke-development-cluster-default-pool-17f531d7-sj4x spec.containers{api} Warning BackOff Back-off restarting failed docker container
有问题的部署看起来像:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# ...
spec:
replicas: {{ .Values.api.replicaCount }}
template:
# ...
spec:
containers:
- name: {{ .Values.api.name }}
# ...
volumeMounts:
- name: google-cloud-account
mountPath: /etc/google-cloud-account
volumes:
- name: google-cloud-account
secret:
secretName: {{ template "fullname" . }}
items:
- key: google-cloud-credentials
path: credentials.json
我不知道容器中的 /etc
是只读文件系统,也不知道如何更改它。
最佳答案
Dave Long's answer 的替代品是projected volumes :
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
# ...
spec:
replicas: {{ .Values.api.replicaCount }}
template:
# ...
spec:
containers:
- name: {{ .Values.api.name }}
# ...
volumeMounts:
- name etc
mountPath: /etc
- name: google-cloud-account
mountPath: /etc/google-cloud-account
- name: odbc
mountPath: /etc
volumes:
- name: config
projected:
sources:
- secret:
name: {{ template "fullname" . }}
items:
- key: google-cloud-credentials
path: google-cloud-account/credentials.json
- configMap:
name: {{ template "fullname" . }}
items:
- key: odbc.ini
path: odbc.ini
关于kubernetes - 无法将 secret 装载到/etc 中的卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44550647/
我的应用程序在 Docker 容器中运行,并且我在其中使用离线部署 docker save我的开发机器上的图像并将其与应用程序捆绑在一起 通过 U 盘手动传输 tarfile 包和我的应用程序 doc
我有这个中间人项目。 我用 bower 给它添加了基础。 所以我的文件夹结构是这样的: -myproject -source -bower_components -foundation(c
我正在使用 linux RedHat 7。 我没有选项可以更改我的服务器的配置。 当我跑 docker load -i images.tar Error processing tar file(exi
我在治具方面做错了。 我必须在契约(Contract)中包含许多契约(Contract)项的模型中进行建模,并尝试为其加载夹具 App.Contract = DS.Model.extend({ c
我是一名优秀的程序员,十分优秀!