我有一个docker-compose文件,我试图通过使它创建的容器的根卷只读来保护.
相关部分docker-compose.yml
:
version: '2'
services:
mysql:
image: mariadb:10.1
read_only: true
tmpfs:
- /var/run/mysqld:uid=999,gid=999
- /tmp
volumes:
- mysql:/var/lib/mysql
restart: always
volumes:
mysql:
Run Code Online (Sandbox Code Playgroud)
麻烦的是,tmpfs
没有被创造.如果我运行使用容器的一个实例docker-compose run --rm mysql /bin/bash
,该/var/run/mysqld
目录仍然是只读的,尽管tmpfs
条目,任何企图touch /var/run/mysqld/foo
将失败.由于这是MySQL放置其socket和pid文件的地方,这导致整个事情失败.我不确定为什么这个tmpfs
条目在这种情况下不起作用.
mysql_1 | 2017-01-27 20:53:45 140515784030144 [Note] mysqld (mysqld 10.1.21-MariaDB-1~jessie) starting as process 1 ...
mysql_1 | 2017-01-27 20:53:45 140515784030144 [Note] InnoDB: Using mutexes to ref count buffer pool pages
mysql_1 | 2017-01-27 20:53:45 140515784030144 [Note] InnoDB: The InnoDB …
Run Code Online (Sandbox Code Playgroud) 我在 GKE 上运行的 Kubernetes 1.9 中创建了一个部署,该部署利用了放入环境变量中的机密。我使用 yaml 文件将机密上传到 GKE,其中机密经过 Base64 编码。
我在容器中看到的是环境变量在那里,但值包含尾随空格。如果我设置一个值为“bar”的环境变量 FOO,它会是这样的,其中我在机密 yaml 中放入的 base64 将为“YmFyCg==”:
$ echo $FOO
bar
$ echo \"$FOO\"
"bar "
$ echo $FOO | base64
YmFyCg==
$ echo "$FOO" | base64
YmFyIAo=
Run Code Online (Sandbox Code Playgroud)
这对于从环境变量中读取值的应用程序来说造成了无穷无尽的困难,这些变量期望在没有额外空格的情况下对值进行编码,例如POSTGRES_PASSWORD
在图像POSTGRES_USER
中postgres:9.6
。环境中的其他变量(包括从我的部署 yaml 中设置的没有秘密的变量)不包含尾随空格;只有秘密才有问题。
我有一个 Kubernetes 1.20 集群,带有 kubectl 1.20 并EphemeralContainers
启用了功能门。
我正在尝试运行kubectl 调试文档中的命令,但它们似乎无法正常工作。我可以通过以下方式启动一个 Pod:
$ kubectl run ephemeral-demo --image=k8s.gcr.io/pause:3.1 --restart=Never
pod/ephemeral-demo created
Run Code Online (Sandbox Code Playgroud)
当我尝试将调试容器附加到它时:
$ kubectl debug -it ephemeral-demo --image=busybox --target=ephemeral-demo
Defaulting debug container name to debugger-g6pj6.
Run Code Online (Sandbox Code Playgroud)
无论我等了多久或按了多少次 <enter>,我都永远不会收到命令行。如果我检查 pod,我可以看到调试容器存在:
$ kubectl describe pod ephemeral-demo
Name: ephemeral-demo
Namespace: nextcloud
Priority: 0
Node: k8s-htz-worker-02/78.47.15.149
Start Time: Tue, 15 Dec 2020 06:36:30 -0600
Labels: run=ephemeral-demo
Annotations: cni.projectcalico.org/podIP: 10.244.2.186/32
cni.projectcalico.org/podIPs: 10.244.2.186/32
Status: Running
IP: 10.244.2.186
IPs:
IP: 10.244.2.186
Containers:
ephemeral-demo:
Container ID: docker://b6d3ffa3d2ee8eb6a51a3b5ba823392cf57ed836833830510a2625788f8789d6
Image: k8s.gcr.io/pause:3.1 …
Run Code Online (Sandbox Code Playgroud)