Practice Test - ReplicaSets

zuckerfrei·2023년 6월 8일
0

Kubernetes

목록 보기
12/63
  1. dry-run으로 파일의 유효성 여부를 확인할 수는 없다..!

    controlplane ~ ➜  kubectl apply -f replicaset-definition-2.yaml --dry-run=client
    replicaset.apps/replicaset-2 created (dry run)

    레플리카셋이 생성될 것이라고,, 이상이 없길래 실행시켰더니… 에러 발생

    controlplane ~ ➜  kubectl apply -f replicaset-definition-2.yaml
    The ReplicaSet "replicaset-2" is invalid: spec.template.metadata.labels: 
    Invalid value: map[string]string{"tier":"nginx"}: `selector` does not match template `labels`

  2. rs를 통해 배포할 파드의 라벨은 selector에 포함되어야 함

    spec.selector.matchLabels >> spec.template.metadata.labels

    apiVersion: apps/v1
    kind: ReplicaSet
    metadata:
      name: myapp-replicaset
      labels:
        app: myapp
        type: front-end
    spec:
      selector:
        matchLabels:
          type: front-end  ----> 이게 있음?없음?
      template:
        metadata:
          name: myapp-pod
          labels:
            app: myapp
            type: front-end ----> 없으면 에러
        spec:
          containers:
          - name: nginx-container
            image: nginx
      replicas: 3
    

  3. 이미 생성된 오브젝트 정보 확인 & yaml 파일 생성

    이렇게 하면 수정을 빠르게 할 수 있을 것 같음

    # 터미널로 확인
    kubectl get [pod, rs ..] -o yaml
    
    # 파일로 생성 
    kubectl get [pod, rs ..] -o yaml > file.yml

    에시

    controlplane ~ ➜  kubectl get rs new-replica-set -o yaml
    apiVersion: apps/v1
    kind: ReplicaSet
    metadata:
      creationTimestamp: "2023-06-08T13:36:40Z"
      generation: 1
      name: new-replica-set
      namespace: default
      ...
    controlplane ~ ➜  kubectl get rs new-replica-set -o yaml > rs-smlee.yml
    
    controlplane ~ ➜  vi rs-smlee.yml
    
    ------
    piVersion: apps/v1
    kind: ReplicaSet
    metadata:
      creationTimestamp: "2023-06-08T13:36:40Z"
      generation: 1
      name: new-replica-set
      namespace: default
      resourceVersion: "973"
      uid: 10d56492-5db0-4aac-a05a-c4bc7b594e43
    spec:
    ....

  4. edit 편집 방법

    바로 vi 편집기로 열리고, 수정 후 저장하면 바로 반영됨

    kubectl edit [pod, rs ..]
    controlplane ~ ➜  kubectl edit rs
    replicaset.apps/new-replica-set edited
    replicaset.apps/replicaset-2 skipped

    scale은 edit로 변경 즉시 반영됨

    그러나 기존 rs에서 생성되어있던 pod는 변경된 상태로 수정되지 않음
    → 기존의 pod를 모두 죽인 후 변경된 rs가 변경된 버전의 pod를 띄울 때 까지 기다려야 함

profile
무설탕 음료를 좋아합니다

0개의 댓글