在Kubernetes中将ConfigMap挂载为卷:如何计算defaultMode的值?

brjng4g3  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(203)

deployment元素中的Kubernetesvolume字段中定义defaultMode可能会变得非常棘手。
它需要三位小数,对应于二进制UNIX权限。
例如,要使用权限r--挂载ConfigMap,需要指定256。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: foo
  namespace: foo
spec:
  replicas: 1
  selector:
    matchLabels:
      app: foo
  template:
    metadata:
      labels:
        app: foo
    spec:
      containers:
        - image: php-fpm:latest
          volumeMounts:
            - name: phpini
              mountPath: /usr/local/etc/php/conf.d/99-settings.ini
              readOnly: true
              subPath: 99-settings.ini
      volumes:
        - configMap:
            defaultMode: 256
            name: phpini-configmap
            optional: false
          name: phpini
---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app: foo
  namespace: foo
  name: phpini-configmap
data:
  99-settings.ini: |
    ; Enable Zend OPcache extension module
    zend_extension = opcache
tez616oj

tez616oj1#

使用下表:
| Unix十进制|unix可读|二进制等值数字|默认模式|
| --|--|--|--|
| 400 |r-| 100000000 | 256 |
| 440 |r--r--| 100100000 | 288 |
| 444 |r--r--r--| 100100100 | 292 |
| 600 |rw--| 110000000 | 384 |
| 600 |rw-r-| 110100000 | 416 |
| 660 |rw-rw-| 110110000 | 432 |
| 660 |rw-rw-r--| 110110100 | 436 |
| 666 |rw-rw-rw-| 110110110 | 438 |
| 700 |公司简介| 111000000 | 448 |
| 770 |公司简介| 111111000 | 504 |
| 777 |公司简介| 111111111 | 511 |
更直接的方法是使用base 8到base 10转换器,如this one

ghhaqwfi

ghhaqwfi2#

误导:第一列不是“unix decimal”,而只是“octal”。
请把你的table整理一下!Declare是您在“defaultMode”列中显示的内容。
您可以使用其他标志(例如,“s”和“t”)具有更高的数值,并且仍然使用它们与八进制值。Unix/Linux命令行工具从不使用任何“十进制”数字值来表示文件访问权限,总是使用“八进制”(数字为“0”-“7”)或“符号”(字母和“+”/“-”符号)。在Unix/Linux工具中从不使用数字8和9。
但Kubernetes配置文件实际上使用整数(默认情况下必须以十进制写入)。这些配置文件是使用“YAML”语法编写的,它只支持十进制语法。

相关问题