쿠버네티스 레플리카셋

목차
  • 복제 세트란 무엇입니까?
  • 어떤 문제를 해결합니까?
  • 객체란 무엇입니까?
  • 리소스란 무엇입니까?
  • ReplicaSet 매니페스트 분석
  • 확장/축소 방법은 무엇입니까?
  • 축소
  • 확대

  • 복제 세트를 삭제하는 방법은 무엇입니까?
  • 포드를 삭제하지 않고 복제 세트를 삭제하는 방법

  • 😃 쿠버네티스를 배우는 과정에서 Replicasets를 접하게 됩니다.
    평균? 왜 우리가 그것을 사용하고 있습니까? 우리는 그것을 어디에 사용합니까? 나는 몇 가지 의심을 없애려고 노력할 것입니다.
    초보자로서 당신에게 다가옵니다. 그것이 무엇에 관한 것인지, 그리고 그것이 어떤 역할을 하는지 봅시다.
    쿠버네티스의 세계



    Replicaset은 단순히 n개의 포드를 가질 수 있는 것처럼 포드를 복제한다는 의미입니다.
    복제본 1개는 하나의 포드를 제어한다는 의미이며, 복제본 세트의 후드 아래에는 중앙
    레이블이라는 중요한 개념, 그것이 무엇인지 자세히 살펴보고 살펴 보겠습니다.
    정확히 replicaset의 의미와 사용 사례...

    어떤 문제를 해결합니까?



    자동으로 복제하고 특정 수의 포드가 모든 작업을 실행하는지 확인합니다.
    매니페스트 파일에서 언급한 시간입니다.

    시작하기 전에 몇 가지 용어를 이해하고 싶습니다.

    객체란 무엇입니까?



    단순히 객체는 우리가 특정 목적을 위해서만 사용하는 디자인 모델입니다.
    쿠버네티스의 객체

    자원이란 무엇입니까?



    간단히 말해서 리소스는 특정 리소스에 대한 개체 모음입니다.
  • (포드) -> 이것은 객체입니다
  • (포드) -> 엔드포인트입니다. 이 경우 포드 모음
  • 을 저장합니다.

    사용 가능한 다른 리소스가 무엇인지 봅시다. 이에 대한 명령이 있습니다.

    kubectl api-resources 
    



    NAME                              SHORTNAMES   APIVERSION                             NAMESPACED   KIND
    bindings                                       v1                                     true         Binding
    componentstatuses                 cs           v1                                     false        ComponentStatus
    configmaps                        cm           v1                                     true         ConfigMap
    endpoints                         ep           v1                                     true         Endpoints
    events                            ev           v1                                     true         Event
    limitranges                       limits       v1                                     true         LimitRange
    namespaces                        ns           v1                                     false        Namespace
    nodes                             no           v1                                     false        Node
    persistentvolumeclaims            pvc          v1                                     true         PersistentVolumeClaim
    persistentvolumes                 pv           v1                                     false        PersistentVolume
    pods                              po           v1                                     true         Pod
    podtemplates                                   v1                                     true         PodTemplate
    replicationcontrollers            rc           v1                                     true         ReplicationController
    resourcequotas                    quota        v1                                     true         ResourceQuota
    secrets                                        v1                                     true         Secret
    serviceaccounts                   sa           v1                                     true         ServiceAccount
    services                          svc          v1                                     true         Service
    mutatingwebhookconfigurations                  admissionregistration.k8s.io/v1        false        MutatingWebhookConfiguration
    validatingwebhookconfigurations                admissionregistration.k8s.io/v1        false        ValidatingWebhookConfiguration
    customresourcedefinitions         crd,crds     apiextensions.k8s.io/v1                false        CustomResourceDefinition
    apiservices                                    apiregistration.k8s.io/v1              false        APIService
    controllerrevisions                            apps/v1                                true         ControllerRevision
    daemonsets                        ds           apps/v1                                true         DaemonSet
    deployments                       deploy       apps/v1                                true         Deployment
    replicasets                       rs           apps/v1                                true         ReplicaSet
    statefulsets                      sts          apps/v1                                true         StatefulSet
    tokenreviews                                   authentication.k8s.io/v1               false        TokenReview
    localsubjectaccessreviews                      authorization.k8s.io/v1                true         LocalSubjectAccessReview
    selfsubjectaccessreviews                       authorization.k8s.io/v1                false        SelfSubjectAccessReview
    selfsubjectrulesreviews                        authorization.k8s.io/v1                false        SelfSubjectRulesReview
    subjectaccessreviews                           authorization.k8s.io/v1                false        SubjectAccessReview
    horizontalpodautoscalers          hpa          autoscaling/v2                         true         HorizontalPodAutoscaler
    cronjobs                          cj           batch/v1                               true         CronJob
    jobs                                           batch/v1                               true         Job
    certificatesigningrequests        csr          certificates.k8s.io/v1                 false        CertificateSigningRequest
    leases                                         coordination.k8s.io/v1                 true         Lease
    bgpconfigurations                              crd.projectcalico.org/v1               false        BGPConfiguration
    bgppeers                                       crd.projectcalico.org/v1               false        BGPPeer
    blockaffinities                                crd.projectcalico.org/v1               false        BlockAffinity
    caliconodestatuses                             crd.projectcalico.org/v1               false        CalicoNodeStatus
    clusterinformations                            crd.projectcalico.org/v1               false        ClusterInformation
    felixconfigurations                            
    
    


    다음은 볼 수 있는 일부 리소스 및 개체 유형입니다.
  • 이제 예제를 통해 복제본 세트를 이해하겠습니다.

  • apiVersion: apps/v1
    kind: ReplicaSet
    metadata:
      name: frontend
      labels:
        app: guestbook
        tier: frontend
    spec:
      # modify replicas according to your case
      replicas: 4
      selector:
        matchLabels:
          tier: frontend
      template:
        metadata:
          labels:
            tier: frontend  
        spec:
          containers:
          - name: php-redis
            image: gcr.io/google_samples/gb-frontend:v3
    


    ReplicaSet 매니페스트 분석



    내부에 무엇이 있는지 이해합시다(단계별)

    apiVersion: apps/v1
    kind: ReplicaSet
    metadata:
      name: frontend
      labels:
        app: guestbook
        tier: frontend
    
    


    다음과 같은 매니페스트 파일에 항상 언급하고 싶은 리소스가 있습니다.apiVersion , kind , metadata , specapiVersion : 이것은 단순히 생성하는 데 사용하는 API 버전을 의미합니다.
    그 물체
    kind : 이는 생성 중인 객체의 종류를 의미합니다. 이 경우 Replicaset입니다.
    plz 참고: 객체로 제공하는 것은 원하는 상태이며
    당신의 워크로드가 될 것입니다
    metadata : 작업량을 식별하기 위한 추가 정보입니다.
    이 경우 워크로드는 복제 세트입니다.
  • metadata.name(name: frontend) -> 클러스터의 개체 이름
  • metadata.labels(labels app: guestbook tier: frontend) -> 이것은 replicaset에 대한 태그와 같습니다.
    해당 레이블을 사용하여 복제 세트의 세부 정보를 볼 수 있습니다
  • .

    labels are most important in Replicaset more info coming below



    spec:
      # modify replicas according to your case
      replicas: 4
      selector:
        matchLabels:
          tier: frontend
      template:
        metadata:
          labels:
            tier: frontend
    

    spec : 복제 세트의 사양을 나타냅니다.
    replicas : 레플리카 세트에서 생성하려는 포드(인스턴스) 수
    selector : 여기서 선택자는 복제 세트가 선택자를 가져오고 동일한 항목을 확인합니다.
    제어하려는 팟(Pod)이 무엇인지 식별하는 레이블입니다.

    you want to make sure (selector.matchLabels.tier: frontend)-> this tier: frontend
    taken as a reference by replicaset to check the pod == (template.metadata.labels.tier: frontend)
    -> this tag is attached to each pod, this just wants to be the same, then only rs knows what
    are the pods it wants to checkout.


    template : 위에서 우리는 동일한 포드 수를 의미하는 4개의 복제본을 언급했습니다.
    레플리카 세트에 의해 생성되며 포드가 생성되면 다음에서 참조로 간주됩니다.
    새 포드를 생성하기 위한 복제 세트

    don't think replicaset means just creating replicas, that's not the main view, it
    replicates or re-create pods if anyone one of them dies, but how replicaset is identifying
    its designated pods

    just by matching the selector.tier tag to the template.tier tag



    스케일 업/다운은 어떻게 하나요?



    Pod를 확장하거나 축소하는 두 가지 방법이 있습니다. 하나는 매니페스트를 수정하는 것입니다.
    다른 하나는 명령을 내리는 것입니다.

    축소하면 이렇게 됩니다.




    $ kubectl get rs
    NAME       DESIRED   CURRENT   READY   AGE
    frontend   4         4         4       19s
    $ kubectl scale --replicas=2 rs frontend
    replicaset.apps/frontend scaled
    $ kubectl get rs
    NAME       DESIRED   CURRENT   READY   AGE
    frontend   2         2         2       23s
    
    


    스케일링은 이렇게 하세요




    $ kubectl get rs
    NAME       DESIRED   CURRENT   READY   AGE
    frontend   2         2         0       32s
    $ kubectl scale --replicas=6 rs frontend
    replicaset.apps/frontend scaled
    $ kubectl get rs
    NAME       DESIRED   CURRENT   READY   AGE
    frontend   6         6         6       45s
    
    


    클러스터에서 복제 세트 제거



    복제본을 삭제하는 방법은 무엇입니까?




    kubectl delete rs frontend
    


    포드를 삭제하지 않고 복제 세트를 삭제하는 방법은 무엇입니까?




    kubectl delete rs frontend --cascade=orphan
    


    이것이 여행에 도움이 되기를 바랍니다. 제 블로그를 읽어주셔서 감사합니다. 내 작업이 마음에 들면 언제든지 연결하거나 다른 사람과 만나십시오. 😀


    
    

    좋은 웹페이지 즐겨찾기