小编koe*_*ehn的帖子

docker-compose tmpfs无效

我有一个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)

tmpfs docker-compose

13
推荐指数
2
解决办法
1万
查看次数

kubernetes 秘密在环境变量中有尾随空格

我在 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_USERpostgres:9.6。环境中的其他变量(包括从我的部署 yaml 中设置的没有秘密的变量)不包含尾随空格;只有秘密才有问题。

kubernetes google-kubernetes-engine docker-secrets

3
推荐指数
1
解决办法
3022
查看次数

“kubectl debug”在启用功能门的 1.20 上挂起

我有一个 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)

debugging kubernetes

1
推荐指数
1
解决办法
1058
查看次数