ํ•ด๋‹น ๋ฌธ์„œ์˜ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฒ„์ „: v1.31

Kubernetes v1.31 ๋ฌธ์„œ๋Š” ๋” ์ด์ƒ ์ ๊ทน์ ์œผ๋กœ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์Œ. ํ˜„์žฌ ๋ณด๊ณ ์žˆ๋Š” ๋ฌธ์„œ๋Š” ์ •์  ์Šค๋ƒ…์ƒท์ž„. ์ตœ์‹  ๋ฌธ์„œ๋ฅผ ์œ„ํ•ด์„œ๋Š”, ๋‹ค์Œ์„ ์ฐธ๊ณ . ์ตœ์‹  ๋ฒ„์ „.

์˜ˆ์‹œ: ์นด์‚ฐ๋“œ๋ผ๋ฅผ ์Šคํ…Œ์ดํŠธํ’€์…‹์œผ๋กœ ๋ฐฐํฌํ•˜๊ธฐ

์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ์•„ํŒŒ์น˜ ์นด์‚ฐ๋“œ๋ผ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ ์นด์‚ฐ๋“œ๋ผ๋Š” ๋ฐ์ดํ„ฐ ๋‚ด๊ตฌ์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํผ์‹œ์Šคํ„ดํŠธ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค(์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒํƒœ). ์ด ์˜ˆ์ œ์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • ์นด์‚ฐ๋“œ๋ผ ์‹œ๋“œ ๊ณต๊ธ‰์ž๋Š” ์นด์‚ฐ๋“œ๋ผ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ๊ฐ€์ž…ํ•  ๋•Œ ์นด์‚ฐ๋“œ๋ผ๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

์Šคํ…Œ์ดํŠธํ’€์…‹ ์€ ์ƒํƒœ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ์— ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์ด์šฉํ•  ๊ธฐ๋Šฅ์˜ ์ž์„ธํ•œ ์ •๋ณด๋Š” ์Šคํ…Œ์ดํŠธํ’€์…‹์„ ์ฐธ์กฐํ•œ๋‹ค.

๋ชฉ์ 

  • ์นด์‚ฐ๋“œ๋ผ ํ—ค๋“œ๋ฆฌ์Šค Service๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ฒ€์ฆํ•œ๋‹ค.
  • ์Šคํ…Œ์ดํŠธํ’€์…‹(StatefulSet)์„ ์ด์šฉํ•˜์—ฌ ์นด์‚ฐ๋“œ๋ผ ๋ง์„ ์ƒ์„ฑํ•œ๋‹ค.
  • ์Šคํ…Œ์ดํŠธํ’€์…‹์„ ๊ฒ€์ฆํ•œ๋‹ค.
  • ์Šคํ…Œ์ดํŠธํ’€์…‹์„ ์ˆ˜์ •ํ•œ๋‹ค.
  • ์Šคํ…Œ์ดํŠธํ’€์…‹๊ณผ ํฌํ•จ๋œ ํŒŒ๋“œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ , kubectl ์ปค๋งจ๋“œ-๋ผ์ธ ํˆด์ด ํด๋Ÿฌ์Šคํ„ฐ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ด ํŠœํ† ๋ฆฌ์–ผ์€ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ๋…ธ๋“œ๊ฐ€ ์ ์–ด๋„ 2๊ฐœ ํฌํ•จ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. ๋งŒ์•ฝ, ์•„์ง ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋ฉด, minikube๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ”Œ๋ ˆ์ด๊ทธ๋ผ์šด๋“œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด ํŠœํ† ๋ฆฌ์–ผ์„ ์™„๋ฃŒํ•˜๋ ค๋ฉด, ํŒŒ๋“œ, ์„œ๋น„์Šค, ์Šคํ…Œ์ดํŠธํ’€์…‹์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ถ”๊ฐ€์ ์ธ Minikube ์„ค์ • ์š”๋ น

์นด์‚ฐ๋“œ๋ผ๋ฅผ ์œ„ํ•œ ํ—ค๋“œ๋ฆฌ์Šค ์„œ๋น„์Šค ์ƒ์„ฑํ•˜๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ์—์„œ ์„œ๋น„์Šค๋Š” ๋™์ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒŒ๋“œ์˜ ์ง‘ํ•ฉ์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

๋‹ค์Œ์˜ ์„œ๋น„์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์นด์‚ฐ๋“œ๋ผ ํŒŒ๋“œ์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— DNS ์ฐพ์•„๋ณด๊ธฐ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

apiVersion: v1
kind: Service
metadata:
  labels:
    app: cassandra
  name: cassandra
spec:
  clusterIP: None
  ports:
  - port: 9042
  selector:
    app: cassandra

cassandra-service.yaml ํŒŒ์ผ์—์„œ ์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ ์ถ”์ ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

kubectl apply -f https://k8s.io/examples/application/cassandra/cassandra-service.yaml

๊ฒ€์ฆํ•˜๊ธฐ(์„ ํƒ)

์นด์‚ฐ๋“œ๋ผ ์„œ๋น„์Šค ์‚ดํŽด๋ณด๊ธฐ

kubectl get svc cassandra

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

NAME        TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
cassandra   ClusterIP   None         <none>        9042/TCP   45s

cassandra ์„œ๋น„์Šค๊ฐ€ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์ด์™€ ๋‹ค๋ฅธ ์‘๋‹ต์ด๋ผ๋ฉด ์„œ๋น„์Šค ์ƒ์„ฑ์— ์‹คํŒจํ•œ ๊ฒƒ์ด๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๋””๋ฒ„๊น…ํ•˜๊ธฐ๋ฅผ ์ฝ์–ด๋ณด์ž.

์นด์‚ฐ๋“œ๋ผ ๋ง์„ ์ƒ์„ฑํ•˜๋Š” ์Šคํ…Œ์ดํŠธํ’€์…‹ ์ด์šฉํ•˜๊ธฐ

์Šคํ…Œ์ดํŠธํ’€์…‹ ๋งค๋‹ˆํŽ˜์ŠคํŠธ์—๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š”๋ฐ 3๊ฐœ ํŒŒ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ์นด์‚ฐ๋“œ๋ผ ๋ง์„ ์ƒ์„ฑํ•œ๋‹ค.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: cassandra
  labels:
    app: cassandra
spec:
  serviceName: cassandra
  replicas: 3
  selector:
    matchLabels:
      app: cassandra
  template:
    metadata:
      labels:
        app: cassandra
    spec:
      terminationGracePeriodSeconds: 500
      containers:
      - name: cassandra
        image: gcr.io/google-samples/cassandra:v13
        imagePullPolicy: Always
        ports:
        - containerPort: 7000
          name: intra-node
        - containerPort: 7001
          name: tls-intra-node
        - containerPort: 7199
          name: jmx
        - containerPort: 9042
          name: cql
        resources:
          limits:
            cpu: "500m"
            memory: 1Gi
          requests:
            cpu: "500m"
            memory: 1Gi
        securityContext:
          capabilities:
            add:
              - IPC_LOCK
        lifecycle:
          preStop:
            exec:
              command:
              - /bin/sh
              - -c
              - nodetool drain
        env:
          - name: MAX_HEAP_SIZE
            value: 512M
          - name: HEAP_NEWSIZE
            value: 100M
          - name: CASSANDRA_SEEDS
            value: "cassandra-0.cassandra.default.svc.cluster.local"
          - name: CASSANDRA_CLUSTER_NAME
            value: "K8Demo"
          - name: CASSANDRA_DC
            value: "DC1-K8Demo"
          - name: CASSANDRA_RACK
            value: "Rack1-K8Demo"
          - name: POD_IP
            valueFrom:
              fieldRef:
                fieldPath: status.podIP
        readinessProbe:
          exec:
            command:
            - /bin/bash
            - -c
            - /ready-probe.sh
          initialDelaySeconds: 15
          timeoutSeconds: 5
        # These volume mounts are persistent. They are like inline claims,
        # but not exactly because the names need to match exactly one of
        # the stateful pod volumes.
        volumeMounts:
        - name: cassandra-data
          mountPath: /cassandra_data
  # These are converted to volume claims by the controller
  # and mounted at the paths mentioned above.
  # do not use these in production until ssd GCEPersistentDisk or other ssd pd
  volumeClaimTemplates:
  - metadata:
      name: cassandra-data
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: fast
      resources:
        requests:
          storage: 1Gi
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: fast
provisioner: k8s.io/minikube-hostpath
parameters:
  type: pd-ssd

cassandra-statefulset.yaml ํŒŒ์ผ๋กœ ์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹ ์ƒ์„ฑ

# cassandra-statefulset.yaml์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์— ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค.
kubectl apply -f https://k8s.io/examples/application/cassandra/cassandra-statefulset.yaml

ํด๋Ÿฌ์Šคํ„ฐ์— ๋งž๊ฒŒ cassandra-statefulset.yaml ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ๋‹ค์šด๋กœ๋“œํ•œ ๋‹ค์Œ ์ˆ˜์ •๋œ ๋ฒ„์ „์„ ์ €์žฅํ•œ ํด๋”์—์„œ ํ•ด๋‹น ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ ์šฉํ•œ๋‹ค. https://k8s.io/examples/application/cassandra/cassandra-statefulset.yaml

# cassandra-statefulset.yaml์„ ๋กœ์ปฌ์—์„œ ์ˆ˜์ •ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค.
kubectl apply -f cassandra-statefulset.yaml

์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹ ๊ฒ€์ฆํ•˜๊ธฐ

  1. ์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹ ์–ป๊ธฐ

    kubectl get statefulset cassandra
    

    ์‘๋‹ต์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

    NAME        DESIRED   CURRENT   AGE
    cassandra   3         0         13s
    

    StatefulSet๋ฆฌ์†Œ์Šค๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ํŒŒ๋“œ๋ฅผ ๋ฐฐํฌํ•œ๋‹ค.

  2. ์ˆœ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํ˜„ํ™ฉ์„ ๋ณด๊ธฐ ์œ„ํ•ด ํŒŒ๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž.

    kubectl get pods -l="app=cassandra"
    

    ์‘๋‹ต์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

    NAME          READY     STATUS              RESTARTS   AGE
    cassandra-0   1/1       Running             0          1m
    cassandra-1   0/1       ContainerCreating   0          8s
    

    ๋ชจ๋“  3๊ฐœ ํŒŒ๋“œ๊ฐ€ ๋ฐฐํฌ๋˜๊ธฐ๊นŒ์ง€ ๋ช‡ ๋ถ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐํฌ ํ›„, ๋™์ผ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์‘๋‹ตํ•œ๋‹ค.

    NAME          READY     STATUS    RESTARTS   AGE
    cassandra-0   1/1       Running   0          10m
    cassandra-1   1/1       Running   0          9m
    cassandra-2   1/1       Running   0          8m
    
  3. ์ฒซ ๋ฒˆ์งธ ํŒŒ๋“œ ๋‚ด๋ถ€์— ๋ง์˜ ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์นด์‚ฐ๋“œ๋ผ nodetool์„ ์‹คํ–‰ํ•˜์ž.

    kubectl exec -it cassandra-0 -- nodetool status
    

    ์ด ์‘๋‹ต์€ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋ณด์ผ ๊ฒƒ์ด๋‹ค.

    Datacenter: DC1-K8Demo
    ======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  172.17.0.5  83.57 KiB  32           74.0%             e2dd09e6-d9d3-477e-96c5-45094c08db0f  Rack1-K8Demo
    UN  172.17.0.4  101.04 KiB  32           58.8%             f89d6835-3a42-4419-92b3-0e62cae1479c  Rack1-K8Demo
    UN  172.17.0.6  84.74 KiB  32           67.1%             a6a1e8c2-3dc5-4417-b1a0-26507af2aaad  Rack1-K8Demo
    

์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹ ์ˆ˜์ •ํ•˜๊ธฐ

kubectl edit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹์˜ ํฌ๊ธฐ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.

  1. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

    kubectl edit statefulset cassandra
    

    ์ด ๋ช…๋ น์€ ํ„ฐ๋ฏธ๋„์—์„œ ํŽธ์ง‘๊ธฐ๋ฅผ ์—ฐ๋‹ค. ๋ณ€๊ฒฝํ•ด์•ผํ•  ํ–‰์€ replicas ํ•„๋“œ์ด๋‹ค. ๋‹ค์Œ ์˜ˆ์ œ๋Š” ์Šคํ…Œ์ดํŠธํ’€์…‹ ํŒŒ์ผ์—์„œ ๋ฐœ์ทŒํ–ˆ๋‹ค.

    # ๋‹ค์Œ์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค. '#'๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์€ ๋ฌด์‹œ๋˜๊ณ ,
    # ๋นˆ ํŒŒ์ผ์€ ํŽธ์ง‘์„ ์ค‘๋‹จํ•œ๋‹ค. ์ €์žฅํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ํŒŒ์ผ์ด
    # ๊ด€๋ จ ์‹คํŒจ์™€ ํ•จ๊ป˜ ๋‹ค์‹œ ์—ด๋ฆฐ๋‹ค.
    #
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      creationTimestamp: 2016-08-13T18:40:58Z
      generation: 1
      labels:
      app: cassandra
      name: cassandra
      namespace: default
      resourceVersion: "323"
      uid: 7a219483-6185-11e6-a910-42010a8a0fc0
    spec:
      replicas: 3
    
  2. ๋ ˆํ”Œ๋ฆฌ์นด ๊ฐœ์ˆ˜๋ฅผ 4๋กœ ๋ฐ”๊พธ๊ณ , ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ €์žฅํ•œ๋‹ค.

    ์Šคํ…Œ์ดํŠธํ’€์…‹์€ 4๊ฐœ์˜ ํŒŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์Šค์ผ€์ผ ํ•œ๋‹ค.

  3. ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹์„ ์‚ดํŽด๋ณด์ž

    kubectl get statefulset cassandra
    

    ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•˜๋‹ค.

    NAME        DESIRED   CURRENT   AGE
    cassandra   4         4         36m
    

์ •๋ฆฌํ•˜๊ธฐ

์Šคํ…Œ์ดํŠธํ’€์…‹์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์Šค์ผ€์ผ๋งํ•˜๋Š” ๊ฒƒ์€ ์Šคํ…Œ์ดํŠธํ’€์…‹์— ์—ฐ๊ด€๋œ ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋‹น์‹ ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์Šคํ…Œ์ดํŠธํ’€์…‹์˜ ๊ด€๋ จ๋œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ฐ€์น˜์žˆ๊ธฐ์— ์ด ์„ค์ •์€ ๋‹น์‹ ์˜ ์•ˆ์ „์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.

  1. ๋‹ค์Œ ๋ช…๋ น์–ด(ํ•œ ์ค„๋กœ ์—ฐ๊ฒฐ๋œ)๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์นด์‚ฐ๋“œ๋ผ ์Šคํ…Œ์ดํŠธํ’€์…‹์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜์ž.

    grace=$(kubectl get pod cassandra-0 -o=jsonpath='{.spec.terminationGracePeriodSeconds}') \
      && kubectl delete statefulset -l app=cassandra \
      && echo "Sleeping ${grace} seconds" 1>&2 \
      && sleep $grace \
      && kubectl delete persistentvolumeclaim -l app=cassandra
    
  2. ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์นด์‚ฐ๋“œ๋ผ์— ๋Œ€ํ•ด ์„ค์ •ํ•œ ์„œ๋น„์Šค๋ฅผ ์ œ๊ฑฐํ•˜์ž.

    kubectl delete service -l app=cassandra
    

์นด์‚ฐ๋“œ๋ผ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ ๋ณ€์ˆ˜

์ด ํŠœํ† ๋ฆฌ์–ผ์˜ ํŒŒ๋“œ ๋Š” ๊ตฌ๊ธ€์˜ ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— gcr.io/google-samples/cassandra:v13 ์ด๋ฏธ์ง€๋ฅผ ์ด์šฉํ•œ๋‹ค. ์ด ๋„์ปค ์ด๋ฏธ์ง€๋Š” debian-base์— ๊ธฐ๋ฐ˜ํ•˜์˜€๊ณ  OpenJDK 8์„ ํฌํ•จํ•œ๋‹ค.

์ด ์ด๋ฏธ์ง€๋Š” ์•„ํŒŒ์น˜ ๋ฐ๋น„์•ˆ ๋ฆฌํฌ์˜ ํ‘œ์ค€ ์นด์‚ฐ๋“œ๋ผ ์„ค์น˜๋ณธ์„ ํฌํ•จํ•œ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ cassandra.yaml์— ์‚ฝ์ž…๋œ ๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ธฐ๋ณธ๊ฐ’
CASSANDRA_CLUSTER_NAME 'Test Cluster'
CASSANDRA_NUM_TOKENS 32
CASSANDRA_RPC_ADDRESS 0.0.0.0

๋‹ค์Œ ๋‚ด์šฉ

์ตœ์ข… ์ˆ˜์ • June 07, 2023 at 5:58 PM PST: [ko] Update links in dev-1.26-ko.1 (00461e0912)