๐ŸŒฑ ์ธํ”„๋Ÿฐ/โš“ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์–ด๋‚˜๋” ํด๋ž˜์Šค (์ง€์ƒํŽธ)

(13) Helm ๊ณผ Kustomize - 1 (Helm vs Kustomize, Helm ๋ฐฐํฌ)

mallin 2025. 6. 15. 14:21

โš“ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์–ด๋‚˜๋” ํด๋ž˜์Šค (์ง€์ƒํŽธ) - Spring 1, 2 ์„ ๋“ฃ๊ณ  ์ž‘์„ฑํ•˜๋Š” ๋ณต์Šต ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค.

 

(1) ๋ช…์นญ ์ •๋ฆฌ

๋ฐฐํฌํˆด

  • Jenkins : ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐํฌํˆด๋กœ ์‚ฌ์šฉ
  • argo : ์ด๋ฒˆ์‹œ๊ฐ„๋ถ€ํ„ฐ ๋ฐฐํฌํˆด๋กœ ์‚ฌ์šฉ

kubectl ์„ ์จ์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋กœ ๋ฐฐํฌ

  • kubectl ์€ ์ปค๋งจ๋“œ ๋ผ์ธ ๋„๊ตฌ์ธ CLI
  • create ๋‚˜ apply ๋กœ ์ž์› ์ƒ์„ฑ
  • CLI ๋ช…๋ น ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•œ๊ฑฐ์ง€ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์€ ์—†์—ˆ์Œ
  • ์‹ค๋ฌด์—์„œ๋Š” kubectl ์„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์ž์›์„ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๊ธ‰ํ•œ ์ˆ˜์ •ํ•  ๋•Œ๋งŒ ์‚ฌ์šฉ
  • ์‹ค์ œ ์ž์› ์ƒ์„ฑ์€ Kustomize ๋‚˜ Helm ์„ ํ†ตํ•ด์„œ ํ•œ๋‹ค

ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € : Helm, Kustomize

  • kubectl ๊ณผ ๊ฐ™์ด 6๋ช…์˜ ๋ช…๋ น์„ ๋‚ ๋ฆฌ์ง€๋งŒ,
  • ์ž‘์—…์ž ์ž…์žฅ์—์„œ๋Š” ํ•œ ๋ฒˆ์œผ๋กœ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค
  • App ์„ ํŒจํ‚ค์ง€ ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ

(2) Helm vs Kustomize

2-1. ๊ณตํ†ต์ 

  • ์‚ฌ์šฉ ๋ชฉ์  : ์ค‘๋ณต ๊ด€๋ฆฌ ์ตœ์†Œํ™”
    • ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋กœ App ์ข…๋ฅ˜๊ฐ€ ๋งŽ์•„์กŒ๊ธฐ ๋•Œ๋ฌธ์—
    • ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ ๋•Œ๋ฌธ์—
  • ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํˆด์—์„œ ์ง€์›
    • ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ด์ค€๋‹ค

 

2-2. ์ฐจ์ด์ 

  Helm Kustomize.io
๋ฐฐํฌ ํŽธ์˜ ๊ธฐ๋Šฅ ๊ฐฏ์ˆ˜ 200๊ฐœ 10๊ฐœ
ํ•œ ํŒจํ‚ค์ง€ ๋‹น ํ™œ์šฉ ๋ฒ”์œ„ (๊ถŒ๊ณ ) ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค AND ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค OR ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ
⇒ ์ ์  ํŒจํ‚ค์ง€ ๋‚ด๋ถ€ ํŒŒ์ผ๋Ÿ‰์ด ๋งŽ์•„์ง€๋Š” ๊ตฌ์กฐ
์‚ฌ์šฉ ๋ชฉ์  ํ”„๋กœ์ ํŠธ๊ด€๋ฆฌ ํŒจํ‚ค์ง€์šฉ + ๊ธฐ์—… ์ œํ’ˆ ํŒจํ‚ค์ง€์šฉ ํ”„๋กœ์ ํŠธ๊ด€๋ฆฌ ํŒจํ‚ค์ง€์šฉ
์œ ์ฆˆ์ผ€์ด์Šค ๋Œ€ํ˜•ํ”„๋กœ์ ํŠธ
App ์ข…๋ฅ˜ - 5๊ฐœ ์ด์ƒ
๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ
App ์ข…๋ฅ˜ - 5๊ฐœ ๋ฏธ๋งŒ

 

2-3. ์ตœ์ข… ์˜๊ฒฌ

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ•˜๋ฉด์„œ ๋ฌด์กฐ๊ฑด ์—ฌ๋Ÿฌ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ๋„์ž…ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์˜คํ”ˆ์†Œ์Šค๋Š” ๋Œ€๋ถ€๋ถ„ Helm ํ˜•ํƒœ๋กœ ๋ฐฐํฌ
  • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Helm ์€ ์–ด์ฐจํ”ผ ์•Œ์•„์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ž˜์„œ ์ฒ˜์Œ์— ํ•™์Šต์ด ์–ด๋ ต์ง€๋งŒ Helm ์„ ๋จผ์ € ์“ฐ๋ฉด Kustomize ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์–ด์ง€๊ฒŒ ๋œ๋‹ค.

 

Kustomize ๋ฅผ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

  • ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋  ๊ฒฝ์šฐ
  • ๋นจ๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌ์ถ•ํ•ด์•ผํ•˜๊ณ , ๋‹จ๊ณ„์ ์œผ๋กœ Helm ์ ์šฉํ•ด๋„ ๋˜๋Š” ๊ฒฝ์šฐ
  • ์ด๋ฏธ ๋ˆ„๊ฐ€ Kustomize ๋กœ ๋ฐฐํฌ ํŒŒ์ดํ”„ ๋ผ์ธ์„ ์ ์šฉํ•ด ๋†”์„œ ๋ถ„์„ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ

 

2-4. Helm vs Kustomize ๋น„๊ต

2-4-1. ์„ค์น˜ ๊ตฌ์„ฑ

Kustomize Helm
  • ์ž์ฒด์ ์œผ๋กœ Kustomize ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ๊ณ , ๋‹ค์šด์„ ๋ฐ›๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•˜๋Š” GitHub ๋„ ์žˆ๋‹ค
  • v1.14 ๋ถ€ํ„ฐ kubectl ์— ํ†ตํ•ฉ
  • ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค
  • ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ตฌ์„ฑ
  • ๋ช…๋ น์–ด : helm
  • Artifact HUB : Helm ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ (Github ์™€ ๊ฐ™์€ ์‚ฌ์ดํŠธ)
    • Helm ํŒจํ‚ค์ง€์—์„œ Grafana, argo ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฑธ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค
    • ๊ธฐ์—…์—์„œ ์„ค์น˜ ๊ฐ€์ด๋“œ๋„ ์ œ๊ณต
    • ์„ค์น˜ ํ›„ ๋ฐฐํฌ๋ฅผ ํ•˜๋ฉด Kubernates ์— ์„ค์น˜๋œ๋‹ค
  • Helm ์‚ฌ์ดํŠธ๊ฐ€ ์žˆ๊ณ , GitHub ๋„ ์žˆ๋‹ค
  • kubectl ์ด๋ž‘ ๋˜‘๊ฐ™์ด ์ธ์ฆ์„œ๊ฐ€ ์žˆ์–ด์•ผ์ง€ kube-apiserver ๋กœ ํ†ต์‹  ๊ฐ€๋Šฅ
  • ํด๋”๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ตฌ์„ฑ
  • ๋ช…๋ น์–ด : kubectl -k

 

 

2-4-2. ์‚ฌ์šฉ ๋ฐฉ์‹

Helm → ํ•จ์ˆ˜ ๋ฐฉ์‹ Kustomize → ์˜ค๋ฒ„๋ ˆ์ด ๋ฐฉ์‹
  • template ์ด ์žˆ๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์ด ๋“ค์–ด์™”์„ ๋•Œ
  • ๋‚ด๋ถ€ ๋กœ์ง์— ์˜ํ•ด์„œ ์น˜ํ™˜๋ผ์„œ ๊ฒฐ๊ณผ๊ฐ’์ด ๋งŒ๋“ค์–ด์ง„๋‹ค
  • ์•„๋ฌด์ฒ˜๋ฆฌ๊ฐ€ ๋˜์ง€ ์•Š์€ yaml ํŒŒ์ผ
  • base ํŒŒ์ผ์— ๊ฐ๊ฐ ํ™˜๊ฒฝ์— ๋งž๋Š” yaml ํŒŒ์ผ์„ ๋ฎ์–ด์„œ ๋ฐฐํฌํ•œ๋‹ค

 

 

2-4-3. ํŒจํ‚ค์ง€ ๊ตฌ์กฐ

Helm Kustomize
  • heml command : helm create api-tester
  • ๋ช…๋ น์–ด๋ฅผ ๋‚ ๋ฆฌ๋ฉด api-tester ํŒจํ‚ค์ง€๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค
  • hap.yaml ๋‚ด๋ถ€์— if ๋ฌธ์ด ์กด์žฌ
  • values.yaml ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ด ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค
  • ๋ฐฐํฌ๋ฅผ ํ•˜๋ ค๋ฉด helm install api-tester-32222 ./app -f ./app/values-dev.yaml
  • ํด๋”๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค
  • ํ•˜์œ„ ํด๋” ๊ตฌ์„ฑ๋„ ์ง์ ‘
  • api-tester : ๋ฉ”์ธ ํด๋”
  • base : ๋””ํด๋“œ ํฌ๋งท ํด๋”
  • kustomization.yaml : ๋ฐฐํฌํ•  ํŒŒ์ผ ์„ ํƒ ๋ฐ ๊ณตํ†ต๊ฐ’ ์„ค์ •
    • resource ์†์„ฑ์ด ์žˆ์–ด์„œ ๋‚ด๊ฐ€ ๋ฐฐํฌํ•  ํŒŒ์ผ๋“ค๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ์ ์šฉ
  • deployment.yaml : ๋ฒ ์ด์Šค yaml ํŒŒ์ผ
  • overlays : ์˜ค๋ฒ„๋ ˆ์ด ์˜์—ญ ํด๋”
  • ๋ฐฐํฌ๋ฅผ ํ•˜๋ ค๋ฉด kubectl apply -k ./app/overlays/dev(ํ™˜๊ฒฝํด๋”)

(3) Helm ๋ฐฐํฌ

0. ์„ค์น˜ํ•˜๊ธฐ

0-1. Helm ์„ค์น˜

[root@cicd-server ~]#
yum install -y tar
curl -O <https://get.helm.sh/helm-v3.13.2-linux-arm64.tar.gz>
tar -zxvf helm-v3.13.2-linux-arm64.tar.gz
mv linux-arm64/helm /usr/bin/helm

 

ํ™•์ธํ•˜๊ธฐ

# jenkins ์œ ์ €๋กœ ์ „ํ™˜ํ•ด์„œ ํ™•์ธ
[root@cicd-server ~]# su - jenkins -s /bin/bash
[jenkins@cicd-server ~]$ helm

 

ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑํ•˜๊ธฐ

helm create api-tester

 

 

 

0-2. Kustomize ์„ค์น˜

 

  • kubectl ์— ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ์Œ

 

 

1. Helm ๋ฐฐํฌ ์‹œ์ž‘ํ•˜๊ธฐ

1-1. Pipeline ์ƒ์„ฑ

  • item name : 2221-deploy-heml
  • type : Pipeline

 

1-2. Configuration

Definition : Pipeline script from SCM
Definition > SCM : Git
Definition > SCM > Repositories > Repository URL : <https://github.com/soyeon207/kubernetes-anotherclass-sprint2.git>
Definition > SCM > Branches to build > Branch Specifier : */main
Definition > SCM > Branches to build > Additional Behaviours > Sparse Checkout paths > Path : 2221
Definition > Script Path : 2221/Jenkinsfile

 

 

1-3. ์ง€๊ธˆ ๋นŒ๋“œ

  • ๋ฐฐํฌ ์‹œ์ž‘ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Helm ๋ฐฐํฌ
  • Helm ํ…œํ”Œ๋ฆฟ ํ™•์ธ
๋”๋ณด๊ธฐ
# Source: api-tester/templates/secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: api-tester-2221-postgresql
  labels:
    helm.sh/chart: api-tester-0.1.0
    app.kubernetes.io/name: api-tester
    app.kubernetes.io/instance: api-tester-2221
    app.kubernetes.io/version: "v1.0.0"
    app.kubernetes.io/managed-by: Helm
stringData:
  postgresql-info.yaml: |-
    driver-class-name: "org.postgresql.Driver"
    url: "jdbc:postgresql://postgresql:5431"
    username: "dev"
    password: "dev123"
---
# Source: api-tester/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: api-tester-2221-properties
  labels:
    helm.sh/chart: api-tester-0.1.0
    app.kubernetes.io/name: api-tester
    app.kubernetes.io/instance: api-tester-2221
    app.kubernetes.io/version: "v1.0.0"
    app.kubernetes.io/managed-by: Helm
data:
  application_role: ALL
  postgresql_filepath: /usr/src/myapp/datasource/postgresql-info.yaml
  spring_profiles_active: dev
---
# Source: api-tester/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: api-tester-2221
  labels:
    helm.sh/chart: api-tester-0.1.0
    app.kubernetes.io/name: api-tester
    app.kubernetes.io/instance: api-tester-2221
    app.kubernetes.io/version: "v1.0.0"
    app.kubernetes.io/managed-by: Helm
spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: http
      protocol: TCP
      name: http
      nodePort: 32221
  selector:
    app.kubernetes.io/name: api-tester
    app.kubernetes.io/instance: api-tester-2221
---
# Source: api-tester/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: api-tester-2221
  labels:
    helm.sh/chart: api-tester-0.1.0
    app.kubernetes.io/name: api-tester
    app.kubernetes.io/instance: api-tester-2221
    app.kubernetes.io/version: "v1.0.0"
    app.kubernetes.io/managed-by: Helm
spec:
  replicas: 2
  selector:
    matchLabels:
      app.kubernetes.io/name: api-tester
      app.kubernetes.io/instance: api-tester-2221
  template:
    metadata:
      labels:
        helm.sh/chart: api-tester-0.1.0
        app.kubernetes.io/name: api-tester
        app.kubernetes.io/instance: api-tester-2221
        app.kubernetes.io/version: "v1.0.0"
        app.kubernetes.io/managed-by: Helm
    spec:
      serviceAccountName: default
      securityContext:
        {}
      containers:
        - name: api-tester
          securityContext:
            {}
          image: "1pro/api-tester:v1.0.0"
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
          envFrom:
            - configMapRef:
                name: api-tester-2221-properties
          startupProbe:
            httpGet:
              path: "/startup"
              port: 8080
            periodSeconds: 5
            failureThreshold: 24
          livenessProbe:
            httpGet:
              path: "/liveness"
              port: 8080
          readinessProbe:
            httpGet:
              path: "/readiness"
              port: 8080
          resources:
            limits:
              cpu: 200m
              memory: 200Mi
            requests:
              cpu: 100m
              memory: 100Mi
          volumeMounts:
            - mountPath: /usr/src/myapp/datasource
              name: secret-datasource
      volumes:
        - name: secret-datasource
          secret:
            secretName: api-tester-2221-postgresql

 

1-4. ๋ฐฐํฌ ์ฝ”๋“œ ํ™•์ธ

https://github.com/k8s-1pro/kubernetes-anotherclass-sprint2/tree/main/2221

  • ์•ฑ์„ Helm ํŒจํ‚ค์ง€๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ๋‹จ๊ณ„

 

1-5. Helm Package ๋ฅผ ๋งŒ๋“œ๋Š” ์ˆœ์„œ

1-5-1. Helm ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ

# helm ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ 
[jenkins@cicd-server ~]$ helm create api-tester
[jenkins@cicd-server ~]$ cd api-tester
[jenkins@cicd-server api-tester]$ ls
charts  Chart.yaml  templates  values.yaml

 

1-5-2. ๋‹น์žฅ ํ•„์š”์—†๋Š” ๋‚ด์šฉ ์‚ญ์ œํ•˜๊ธฐ (deleting)

 

  • helm create api-tester ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ƒ๋‹จ์— ๋ฉ”์ธ์ฐจํŠธ ํด๋” ์ƒ์„ฑ
  • ํ•˜์œ„๋กœ
    • charts : ์„œ๋ธŒ์ฐจํŠธ ํด๋” → ์‚ฌ์šฉ X ์‚ญ์ œ
    • templates : ๋ฉ”์ธ์ฐจํŠธ yaml ํŒŒ์ผ ํด๋”
    • .helmignore : ๋ Œ๋”๋ง ์‹œ ์ œ์™ธ ํŒŒ์ผ์ง€์ •, ๊ณต์œ ํ•  ํ•„์š” ์—†๋Š” ํŒŒ์ผ๋“ค
    • Chart.yaml : ์ฐจํŠธ ๊ธฐ๋ณธ์ •๋ณด ์„ ์–ธ
    • values.yaml : ๋ฐฐํฌ๋  yaml ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๋ณ€์ˆ˜๋“ค์˜ ๊ธฐ๋ณธ๊ฐ’ ์„ ์–ธ, ๋ณ€์ˆ˜ ๊ฐ’ argument ๋ฅผ ์„ค์ •
  • templates : ๋ฉ”์ธ์ฐจํŠธ yaml ํŒŒ์ผ ํด๋”
    • tests : App ์˜ ํ†ต์‹  ์ƒํƒœ ํ™•์ธ (๋ถ€๊ฐ€๊ธฐ๋Šฅ) → ์‚ฌ์šฉ X ์‚ญ์ œ
    • _helpers.tpl : ์‚ฌ์šฉ์ž ์ •์˜ ์ „์—ญ๋ณ€์ˆ˜ ์„ ์–ธ
    • NOTES.txt : ๋ฐฐํฌ ํ›„ ์•ˆ๋‚ด๋ฌธ๊ตฌ
    • deployment.yaml : ๋ฐฐํฌ ๋  ํŒŒ์ผ

 

1-5-3. ๋‚ด yaml ํŒŒ์ผ์— ๋งž๊ฒŒ Helm Package ์ˆ˜์ •ํ•˜๊ธฐ (modify)

  • helm command → .Release ๋ฅผ ์จ์„œ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค
  • Chart.yaml → .Chart ๋ฅผ ์จ์„œ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค
    • .Chart.Name ์ฒ˜๋Ÿผ ๋’ค์— ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘
  • values.yaml → .Values ๋ฅผ ์จ์„œ ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค
    • .Values.replicaCount ์ฒ˜๋Ÿผ ๋’ค์— ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘
  • _helpers.tpl → include ๋ฅผ ์จ์„œ import

→ helm ๋ช…๋ น์ด๋ž‘ Chart.yaml, values.yaml ์€ templates ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ์—์„œ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

→ _helpers.tpl ์€ templates ์ „์ฒด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

1-5-4. additional

configmap.yaml ์ด๋ž‘ secret.yaml ์„ ์ถ”๊ฐ€

  • helm install → kubectl create
  • helm upgrade → kubectl patch
  • helm upgrade --install → kubectl apply

 

1-6. ์‹ค์Šต ํ›„ ์ •๋ฆฌ

# helm ์กฐํšŒ
helm list -n anotherclass-222

# helm ์‚ญ์ œ
helm uninstall -n anotherclass-222 api-tester-2221

# namespace ์‚ญ์ œ
kubectl delete ns anotherclass-222

 

์ด๋ฏธ์ง€ ์ถœ์ฒ˜ URL : https://inf.run/k7mF