검색

18.2. AWS 로컬 영역에서 사용자 워크로드 생성

download PDF

AWS(Amazon Web Service) 로컬 영역 환경을 생성하고 클러스터를 배포한 후 에지 작업자 노드를 사용하여 로컬 영역 서브넷에서 사용자 워크로드를 생성할 수 있습니다.

설치 프로그램을 실행하고 클러스터를 생성한 후 설치 프로그램은 NoSchedule 의 각 에지 작업자 노드에 테인트 효과를 자동으로 지정합니다. 즉, Pod가 테인트에 대해 지정된 허용 오차와 일치하지 않는 경우 스케줄러에서 새 Pod 또는 배포를 노드에 추가하지 않습니다. 각 로컬 영역 서브넷에서 노드가 워크로드를 생성하는 방법을 더 잘 제어하기 위해 테인트를 수정할 수 있습니다.

설치 프로그램은 로컬 영역 서브넷에 있는 각 에지 작업자 노드에 적용된 node-role.kubernetes.io/edgenode-role.kubernetes.io/worker 라벨을 사용하여 컴퓨팅 머신 세트 매니페스트 파일을 생성합니다.

사전 요구 사항

  • OpenShift CLI(oc)에 액세스할 수 있습니다.
  • 정의된 로컬 영역 서브넷이 있는 VPC(Virtual Private Cloud)에 클러스터를 배포했습니다.
  • 로컬 영역 서브넷의 에지 작업자에 대한 컴퓨팅 머신 세트가 node-role.kubernetes.io/edge 에 대한 테인트를 지정하도록 했습니다.

프로세스

  1. 로컬 영역 서브넷에서 작동하는 에지 작업자 노드에 배포할 예제 애플리케이션에 대한 배포 리소스 YAML 파일을 생성합니다. 엣지 작업자 노드의 테인트와 일치하는 올바른 허용 오차를 지정해야 합니다.

    로컬 영역 서브넷에서 작동하는 에지 작업자 노드에 대해 구성된 배포 리소스의 예

    kind: Namespace
    apiVersion: v1
    metadata:
      name: <local_zone_application_namespace>
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: <pvc_name>
      namespace: <local_zone_application_namespace>
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: gp2-csi 1
      volumeMode: Filesystem
    ---
    apiVersion: apps/v1
    kind: Deployment 2
    metadata:
      name: <local_zone_application> 3
      namespace: <local_zone_application_namespace> 4
    spec:
      selector:
        matchLabels:
          app: <local_zone_application>
      replicas: 1
      template:
        metadata:
          labels:
            app: <local_zone_application>
            zone-group: ${ZONE_GROUP_NAME} 5
        spec:
          securityContext:
            seccompProfile:
              type: RuntimeDefault
          nodeSelector: 6
            machine.openshift.io/zone-group: ${ZONE_GROUP_NAME}
          tolerations: 7
          - key: "node-role.kubernetes.io/edge"
            operator: "Equal"
            value: ""
            effect: "NoSchedule"
          containers:
            - image: openshift/origin-node
              command:
               - "/bin/socat"
              args:
                - TCP4-LISTEN:8080,reuseaddr,fork
                - EXEC:'/bin/bash -c \"printf \\\"HTTP/1.0 200 OK\r\n\r\n\\\"; sed -e \\\"/^\r/q\\\"\"'
              imagePullPolicy: Always
              name: echoserver
              ports:
                - containerPort: 8080
              volumeMounts:
                - mountPath: "/mnt/storage"
                  name: data
          volumes:
          - name: data
            persistentVolumeClaim:
              claimName: <pvc_name>

    1
    storageClassName: 로컬 영역 구성의 경우 gp2-csi 를 지정해야 합니다.
    2
    kind: 배포 리소스를 정의합니다.
    3
    name: Local Zone 애플리케이션의 이름을 지정합니다. 예를 들면 local-zone-demo-app-nyc-1 입니다.
    4
    namespace: 사용자 워크로드를 실행하려는 AWS 로컬 영역의 네임스페이스를 정의합니다. 예: local-zone-app-nyc-1a.
    5
    zone-group: 영역이 속한 그룹을 정의합니다. 예를 들면 us-east-1-iah-1 입니다.
    6
    nodeSelector: 지정된 라벨과 일치하는 에지 작업자 노드를 대상으로 지정합니다.
    7
    tolerations: Local Zone 노드의 MachineSet 매니페스트에 정의된 테인트 와 일치하는 값을 설정합니다.
  2. 노드의 서비스 리소스 YAML 파일을 생성합니다. 이 리소스는 대상 엣지 작업자 노드의 Pod를 Local Zone 네트워크 내에서 실행되는 서비스에 노출합니다.

    로컬 영역 서브넷에서 작동하는 에지 작업자 노드에 대해 구성된 서비스 리소스의 예

    apiVersion: v1
    kind: Service 1
    metadata:
      name:  <local_zone_application>
      namespace: <local_zone_application_namespace>
    spec:
      ports:
        - port: 80
          targetPort: 8080
          protocol: TCP
      type: NodePort
      selector: 2
        app: <local_zone_application>

    1
    kind: 서비스 리소스를 정의합니다.
    2
    selector: 관리 Pod에 적용되는 라벨 유형을 지정합니다.

다음 단계

  • 선택 사항: AWS Load Balancer(ALB) Operator를 사용하여 대상 엣지 작업자 노드의 Pod를 공용 네트워크에서 로컬 영역 서브넷 내에서 실행되는 서비스에 노출합니다. AWS Load Balancer Operator 설치를 참조하십시오.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.