Kubernetes: configmap ํŒŒ์ผ ๋งˆ์šดํŠธ ๊ฒฝ๋กœ๋กœ ์ธํ•ด ๋ช…๋ น์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 04์›” 23์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: kubernetes/kubernetes

๋„์›€ ์š”์ฒญ์ž…๋‹ˆ๊นŒ? (์˜ˆ์ธ ๊ฒฝ์šฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ๊ฐ€์ด๋“œ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์› ์ฑ„๋„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. http://kubernetes.io/docs/troubleshooting/ ์ฐธ์กฐ): ์•„๋‹ˆ์š”

์ด ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•˜๊ธฐ ์ „์— Kubernetes ๋ฌธ์ œ์—์„œ ์–ด๋–ค ํ‚ค์›Œ๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์Šต๋‹ˆ๊นŒ? (์ค‘๋ณต์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๋ฉด ๋Œ€์‹  ๊ฑฐ๊ธฐ์— ํšŒ์‹ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.): command not found configmap kubernetes


์ด๊ฒƒ์€ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๊ธฐ๋Šฅ ์š”์ฒญ์ž…๋‹ˆ๊นŒ? (ํ•˜๋‚˜ ์„ ํƒ): ๋ฒ„๊ทธ

Kubernetes ๋ฒ„์ „ ( kubectl version ):
ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „: v1.6.1 GitCommit:"b0b7a323cc5a4a2019b2e9520c21c7830b7f708e"
์„œ๋ฒ„ ๋ฒ„์ „: v1.6.0 GitCommit:"fff5156092b56e6bd60fff75aad4dc9de6b6ef37

ํ™˜๊ฒฝ :

  • ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž ๋˜๋Š” ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ :
  • OS (์˜ˆ: /etc/os-release): ํ˜ธ์ŠคํŠธ๋Š” ์šฐ๋ถ„ํˆฌ 16.04์ž…๋‹ˆ๋‹ค.
  • ์ปค๋„ (์˜ˆ: uname -a ): ํ˜ธ์ŠคํŠธ๋Š” Linux dev1 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  • ๋„๊ตฌ ์„ค์น˜ :
  • ๊ธฐํƒ€ : minikube ๋ฒ„์ „ ๋‚ด์—์„œ ์‹คํ–‰: v0.18.0

๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ :
์ง„์ž…์ ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธ๋œ configmap ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ๋ฅผ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
"๋ฐ๋ชฌ์˜ ์˜ค๋ฅ˜ ์‘๋‹ต: ์ปจํ…Œ์ด๋„ˆ ๋ช…๋ น '/app/app.sh'๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค."
ํฌ๋“œ ์‚ฌ์–‘์—๋Š” ์ง„์ž…์ ๊ณผ ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธ๋˜๋Š” configmap์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๊ตฌ์„ฑ ๋งต์— ๋Œ€ํ•œ ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•œ ํ›„ ์ง„์ž…์  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์†์‹ค๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
configmap ํŒŒ์ผ์„ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธํ•˜๋ฉด ๋ชจ๋‘ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒํ–ˆ๋˜ ์ผ :
์ด ๊ฒฝ์šฐ ์ง„์ž…์  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํฌํ•จ๋œ ๊ธฐ์กด ๋””๋ ‰ํ„ฐ๋ฆฌ ์ฝ˜ํ…์ธ ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ตฌ์„ฑ ๋งต ํŒŒ์ผ์ด ์ƒ์„ฑ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์„ ์žฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• (๊ฐ€๋Šฅํ•œ ํ•œ ์ตœ์†Œํ•œ์œผ๋กœ ๊ทธ๋ฆฌ๊ณ  ์ •ํ™•ํ•˜๊ฒŒ):

Docker ํŒŒ์ผ - ์ง„์ž…์  ์ฐธ๊ณ 

FROM busybox:latest

RUN        mkdir /app
COPY       app.sh /app

ENTRYPOINT ["/app/app.sh"]

์ง„์ž…์  ์Šคํฌ๋ฆฝํŠธ - ๋ฌดํ•œ ๋ฃจํ”„

#!/bin/sh
seq=1
while [[ true ]]; do
    echo "${seq} $(date) working"
    sleep .5s   
    let seq=$((seq + 1))
done

k8s configmap ๋ฐ ๋ฐฐํฌ ํŒŒ์ผ

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    product: k8s-demo
  name: demo
data:
  settings.json: |
    {
      "store": {
        "type": "InMemory",
    }

---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
  labels:
    product: k8s-demo
  name: demo
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: demo
        product: k8s-demo
    spec:
      containers:
      - name: demo
        image: pmcgrath/shellloop:1
        imagePullPolicy: Always
        volumeMounts:
          - name: demo-config
            mountPath: /app
      volumes:
        - name: demo-config
          configMap:
            name: demo
            items:
              - key: settings.json
                path: settings.json 

kubectl apply -d k8s.yaml์„ ์‹คํ–‰ํ•˜๊ณ  ํฌ๋“œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ ์˜ค๋ฅ˜๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

rpc ์˜ค๋ฅ˜: ์ฝ”๋“œ = 2 desc = "f9e0112c80ebba568d4b508f99ffb053bf1ae5a4f095ce7f45bff5f38900b617" ์ปจํ…Œ์ด๋„ˆ ์‹œ์ž‘ ์‹คํŒจ: ๋ฐ๋ชฌ์˜ ์˜ค๋ฅ˜ ์‘๋‹ต: ์ปจํ…Œ์ด๋„ˆ ๋ช…๋ น์ด './app/app.sh๊ฐ€ ์—†๊ฑฐ๋‚˜ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค'

๊ธฐํƒ€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ:
๋ณผ๋ฅจ์˜ mountPath๋ฅผ ๋‹ค๋ฅธ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ˜ธ์ŠคํŠธ(17.03.0-ce)์—์„œ docker๋กœ ์ง์ ‘ ํ…Œ์ŠคํŠธํ–ˆ์œผ๋ฉฐ ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

touch settings.json
docker container run -ti -v $(pwd)/settings.json:/app/settings.json pmcgrath/shellloop:1

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@pmcgrath

์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์„ธ์š” .

๊ท€ํ•˜์˜ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์—๋„ ๊ฐ™์€ ์งˆ๋ฌธ์ด ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ๊ท€ํ•˜์˜ ์ƒํ™ฉ์— ๋‹ต์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์‚ฌ๋ก€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด configmap( settings.json: blahblah )์ด ์žˆ๊ณ  /app ํด๋”์— ๋งˆ์šดํŠธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

  1. ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•˜๋ฉด(configmap ๋˜๋Š” ๊ธฐํƒ€์— ๊ด€๊ณ„์—†์ด) mountPath ์žฌ์ •์˜ํ•˜๋ฏ€๋กœ ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ /app ํด๋”์—๋Š” settings.json ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  2. ์˜ˆ์ƒํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ mountPath: /app/settings.json ๋ฅผ ์ง€์ •ํ•ด์•ผ /app ํด๋”์˜ ์›๋ณธ ์ฝ˜ํ…์ธ ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. ์Œ, ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ configmap์ด ์‹ค์ œ๋กœ ํ‚ค-๊ฐ’ ์Œ์˜ ๋ชฉ๋ก์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ํ‚ค ์ค‘ ํ•˜๋‚˜๋งŒ ํ•„์š”ํ•˜๋ฏ€๋กœ(์‹ค์ œ๋กœ๋Š” ํ•˜๋‚˜๋งŒ ์žˆ์Œ) ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ configmap์˜ ํ•˜์œ„ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ๊ฒฐ๊ตญ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

containers:
- volumeMounts:
  - name: demo-config
    mountPath: /app/settings.json
    subPath: settings.json
volumes:
- name: demo-config
  configMap:
    name: demo

๋ชจ๋“  10 ๋Œ“๊ธ€

@pmcgrath

์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์„ธ์š” .

๊ท€ํ•˜์˜ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์—๋„ ๊ฐ™์€ ์งˆ๋ฌธ์ด ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ๊ท€ํ•˜์˜ ์ƒํ™ฉ์— ๋‹ต์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ท€ํ•˜์˜ ์‚ฌ๋ก€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด configmap( settings.json: blahblah )์ด ์žˆ๊ณ  /app ํด๋”์— ๋งˆ์šดํŠธํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์•Œ์•„์•ผ ํ•  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

  1. ๋ณผ๋ฅจ์„ ๋งˆ์šดํŠธํ•˜๋ฉด(configmap ๋˜๋Š” ๊ธฐํƒ€์— ๊ด€๊ณ„์—†์ด) mountPath ์žฌ์ •์˜ํ•˜๋ฏ€๋กœ ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ /app ํด๋”์—๋Š” settings.json ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  2. ์˜ˆ์ƒํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ฏ€๋กœ mountPath: /app/settings.json ๋ฅผ ์ง€์ •ํ•ด์•ผ /app ํด๋”์˜ ์›๋ณธ ์ฝ˜ํ…์ธ ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  3. ์Œ, ๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ configmap์ด ์‹ค์ œ๋กœ ํ‚ค-๊ฐ’ ์Œ์˜ ๋ชฉ๋ก์ด๋ผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•ฉ๋‹ˆ๋‹ค. ํ‚ค ์ค‘ ํ•˜๋‚˜๋งŒ ํ•„์š”ํ•˜๋ฏ€๋กœ(์‹ค์ œ๋กœ๋Š” ํ•˜๋‚˜๋งŒ ์žˆ์Œ) ๋ณผ๋ฅจ ๋งˆ์šดํŠธ๋ฅผ configmap์˜ ํ•˜์œ„ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ด๊ฒƒ์€ ๊ฒฐ๊ตญ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

containers:
- volumeMounts:
  - name: demo-config
    mountPath: /app/settings.json
    subPath: settings.json
volumes:
- name: demo-config
  configMap:
    name: demo

@zhouhaibing089
๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ์— ๋”ฐ๋ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์„ค๋ช…์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.
๊ฐ€๋ณ๊ฒŒ ๋‘๋“œ๋ฆฌ๊ธฐ

์ฐธ๊ณ ๋กœ ์ด ์†”๋ฃจ์…˜์— ๋Œ€ํ•œ ์›๋ž˜ ์–ธ๊ธ‰์€ https://github.com/kubernetes/kubernetes/issues/23748#issuecomment -230390309์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด ์ด ๊ฒฝ์šฐ๊ฐ€ ์ƒ๋‹นํžˆ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ฑฐ๋‚˜ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ, ํˆฌ์˜ ๋ฌธ์„œ๋„ ๋” ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ž๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•ด๋‹น ๋ฌธ์ œ์— ๋”ฐ๋ผ ์ž‘๋™ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ˆ„๋ฝ๋˜์—ˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

mountPath ๋ฐ subPath ๋‘˜ ๋‹ค์—์„œ ํŒŒ์ผ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์€ ์ง๊ด€์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@zhouhaibing089์—์„œ ์ œ๊ณตํ•˜๋Š” ์†”๋ฃจ์…˜์€ ์ž‘๋™ํ•˜์ง€๋งŒ ์œ ์‚ฌํ•œ ConfigMap์—์„œ ํŽธ์ง‘ํ•˜๋ฉด subPath ๋งˆ์šดํŠธ๋œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

IMO, ์ด๊ฒƒ์€ _์‹ค์ œ๋กœ_ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋ฎ์–ด์“ฐ์ง€ ์•Š๊ณ  ๊ฐ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ:

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-conf
data:
  example1.conf: |
    server {
      server_name example1.com;
      # config here...
    }
  example2.conf: |
    server {
      server_name example2.com;
      # config here...
    }

ํ•˜๋„๋กํ•˜๋‹ค...

- name: nginx-conf
  mountPath: /etc/nginx/conf.d
  append: true

... ๊ธฐ์กด default.conf ๋ฐ Docker ์ด๋ฏธ์ง€์˜ ๊ธฐํƒ€ ์ธ๊ณต๋ฌผ์„ ์œ ์ง€ํ•˜์ง€๋งŒ example*.conf

subPath์—์„œ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๊ฒƒ์€ _icky_์ž…๋‹ˆ๋‹ค.

@leebenson ์˜ append: true ์˜ต์…˜์— +1.

@leebenson ๋‹ต๋ณ€์— ๋”ฐ๋ฅด๋ฉด append: true ์˜ต์…˜์ด ์–ด๋””์—์„œ ์˜ค๋Š”์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ ??

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ๋‚˜๋Š” ์–ป์—ˆ๋‹ค:

error: error validating "hdfs/21-namenode-statefulset.yaml": error validating data: ValidationError(StatefulSet.spec.template.spec.containers[1].volumeMounts[1]): unknown field "append" in io.k8s.api.core.v1.VolumeMount; if you choose to ignore these errors, turn validation off with --validate=false

๋˜ํ•œ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ์— ๋Œ€ํ•œ API ๋ฌธ์„œ์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.
https://k8smeetup.github.io/docs/api-reference/v1.9/#volumemount -v1-core

@leebenson ๋‹ต๋ณ€์— ๋”ฐ๋ฅด๋ฉด append: true ์˜ต์…˜์ด ์–ด๋””์—์„œ ์˜ค๋Š”์ง€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ ??

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ๋‚˜๋Š” ์–ป์—ˆ๋‹ค:

error: error validating "hdfs/21-namenode-statefulset.yaml": error validating data: ValidationError(StatefulSet.spec.template.spec.containers[1].volumeMounts[1]): unknown field "append" in io.k8s.api.core.v1.VolumeMount; if you choose to ignore these errors, turn validation off with --validate=false

๋˜ํ•œ ๋ณผ๋ฅจ ๋งˆ์šดํŠธ์— ๋Œ€ํ•œ API ๋ฌธ์„œ์—๋Š” ์—†์Šต๋‹ˆ๋‹ค.
https://k8smeetup.github.io/docs/api-reference/v1.9/#volumemount -v1-core

๊ทธ๊ฒƒ์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค, ๊ทธ๊ฒƒ์€ ์ œ์•ˆ์ž…๋‹ˆ๋‹ค. ์œ ์Šค ์ผ€์ด์Šค์— ์ข‹์€ ๊ฒƒ.

์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์ง€๋งŒ statefulset์„ ์ ์šฉํ•  ๋•Œ ์ฝ๊ธฐ ์ „์šฉ ํŒŒ์ผ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ฌด๋„ ๊ทธ๊ฒƒ์„ ๊ณ ์น  ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
(elasticsearch์— ๋Œ€ํ•œ ์„ค์ •์ด ํฌํ•จ๋œ ๊ธฐ์กด ํŒŒ์ผ์„ ๋ฎ์–ด์”๋‹ˆ๋‹ค. ์‹ค์ œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ --> /usr/share/elasticsearch/bin/run.sh: line 28: ./config/elasticsearch.yml: Read-only file system )

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰