[Cloude] k8s- workload Resource = Controller

MeltingOlafยท2022๋…„ 5์›” 18์ผ
0

[Cloud]

๋ชฉ๋ก ๋ณด๊ธฐ
20/25

โœ”๏ธ Workload Resource = Controller

ํŒŒ๋“œ์˜ ์ง‘ํ•ฉ

โœ”๏ธ ReplicationController

  • ํŒŒ๋“œ์˜ ๋ณต์ œ๋ณธ ๊ฐœ์ˆ˜ ๊ด€๋ฆฌ
  • ์ปจํŠธ๋กค๋Ÿฌ์— ์˜ํ•ด์„œ ๊ด€๋ฆฌ๋˜๋Š” ํŒŒ๋“œ๋Š” label์ด ๋ถ™์–ด์žˆ์–ด์•ผํ•จ

myweb-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb-rc
spec:
  replicas: 3
  selector:
    app: web
# Pod Configure
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: myweb
          image: ghcr.io/c1t1d0s7/go-myweb
          ports:
            - containerPort: 8080
              protocol: TCP
$ kubectl create -f myweb-rc.yaml
$ watch kubectl get rc,pods --show-labels -o wide

NAME                 READY   STATUS    RESTARTS   AGE   LABELS
pod/myweb-rc-7m4v7   1/1     Running   0          29m   app=web
pod/myweb-rc-7s4vp   1/1     Running   0          78m   app=web
pod/myweb-rc-jtq7d   1/1     Running   0          78m   app=web
$ kubectl label pod myweb-rc-jtq7d app=db --overwrite
$ kubectl label pod myweb-rc-jtq7d app=web --overwrite

โœ”๏ธ RC ์Šค์ผ€์ผ๋ง

๋ช…๋ นํ˜• ์ปค๋งจ๋“œ

$ kubectl scale rc myweb-rc --replicas=5

๋ช…๋ นํ˜• ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑ

$ kubectl replace -f myweb-rc.yaml
$ kubectl patch -f myweb-rc.yaml -p '{"spec": {"replicas": 3}}'
$ kubectl patch rc myweb-rc.yaml --patch-file replicas.json

replicas.json

{"spec": {"replicas": 3}}
$ kubectl edit -f myweb-rc.yaml
$ kubectl edit rc myweb-rc
$ kubectl edit rc/myweb-rc

์„ ์–ธํ˜• ์˜ค๋ธŒ์ ํŠธ ๊ตฌ์„ฑ

$ kubectl apply -f myweb-rc.yaml

โœ”๏ธ ReplicaSets

ReplicationController -> ReplicaSets

apiVersion: apps/v1
kind: ReplicaSets
metadata:
  name: myweb-rs
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
      env: dev
  template:
    metadata:
      labels:
        app: web
        env: dev
    spec:
      containers:
        - name: myweb
          image: ghcr.io/c1t1d0s7/go-myweb
          ports:
            - containerPort: 8080
              protocol: TCP
              
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: myweb-rs-set
spec:
  replicas: 3
  selector:
    matchExpressions:
      - key: app
        operator: In
        values: 
          - web
      - key: env
        operator: Exists
  template:
    metadata:
      labels:
        app: web
        env: dev
    spec:
      containers:
        - name: myweb
          image: ghcr.io/c1t1d0s7/go-myweb
          ports:
            - containerPort: 8080
              protocol: TCP
              
$ cd ~/kubespray

โœ”๏ธ Job

ํŒŒ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ํŒŒ๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค
์•ˆ์ „ํ•œ ์ข…๋ฃŒ๋ฅผ ๋ณด์žฅ

profile
How R U Today :)

0๊ฐœ์˜ ๋Œ“๊ธ€