Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

클러스터 매니지드 네트워킹을 통한 설치

이 절차를 통해 클러스터 매니지드 네트워킹 클러스터를 불러올 수 있습니다. 클러스터 매니지드 네트워킹은 보조 설치 관리자가 클러스터에 통합 로드 밸런서와 수신을 설치하는 구축을 의미합니다.

그림 1 은 로드 밸런서(표시되지 않음)가 클러스터 내에 통합되는 cluster-managed networking 설정에서 베어 메탈 서버 또는 가상 머신에서 실행되는 컨트롤 플레인 노드 3개와 작업자 노드 2개를 보여줍니다. 172.16.0.0/24 패브릭 가상 네트워크를 사용하여 설치자 트래픽 및 Kubernetes 컨트롤 플레인 트래픽을 지원합니다. Contrail 컨트롤 플레인 트래픽 및 사용자 데이터 플레인 트래픽은 10.16.0.0/24 패브릭 가상 네트워크를 사용합니다.

그림 1: 클러스터 매니지드 네트워킹을 갖춘 베어 메탈 서버(또는 VM)의 Contrail OpenShift 클러스터 Contrail OpenShift Cluster on Bare Metal Servers (or VMs) with Cluster-Managed Networking

별도의 시스템이 보조 설치 관리자 클라이언트 역할을 합니다. 지원 설치자 클라이언트는 curl 명령을 사용하여 지원 설치 서비스로 API 호출을 실행하여 클러스터를 생성할 수 있습니다. 이 절차의 예에서는 보조 설치 관리자 클라이언트 머신을 사용하여 서브넷에 대한 DNS/DHCP 서버도 호스팅합니다.

로컬 관리자는 두 다이어그램 모두에서 별도의 네트워크에 연결되어 있음을 알 수 있습니다. 이는 일반적으로 로컬 관리자가 기업 LAN에서 패브릭과 클러스터를 관리하는 많은 설치에서 가능합니다. 그 다음 절차에서 로컬 관리자 스테이션을 로컬 컴퓨터로 언급합니다.

참고:

모든 노드를 함께 연결하는 것은 데이터센터 패브릭이며, 이 예에는 두 개의 서브넷으로 표시됩니다. 실제 설치 환경에서 데이터센터 패브릭은 클러스터에 물리적 연결을 제공하는 스파인 및 리프 스위치 네트워크입니다.

Apstra 매니지드 데이터센터에서는 기본 패브릭 스위치에서 생성하는 오버레이 가상 네트워크를 통해 이러한 연결을 지정합니다.

이 절차는 Red Hat에서 호스팅하는 보조 설치 서비스 를 사용하며 호스트를 불러 오기 전에 클러스터를 등록하는 일반적인 초기 바인딩 사용 사례를 다룹니다.

  1. 보조 설치 관리자 클라이언트 시스템에 로그인합니다. 보조 설치 관리자 클라이언트 머신은 보조 설치 관리자 API를 지원 설치 서비스로 호출하는 경우입니다.
  2. 나중에 사용할 환경 변수를 설정하여 구축을 준비합니다.
    1. 클러스터의 노드에 액세스하는 데 사용할 SSH 키를 만듭니다. 키를 환경 변수에 저장합니다.
      이 예에서는 기본 위치 ~/.ssh/id_rsa.pub에 SSH 키를 저장합니다.
    2. Red Hat 계정의 이미지 풀 시크릿을 로컬 컴퓨터로 다운로드하십시오. 풀 암호는 설치가 OpenShift 구성 요소에 대한 컨테이너 이미지를 제공하는 서비스 및 레지스트리에 액세스할 수 있게 해줍니다.

      Red Hat에서 호스팅된 보조 설치 관리자를 사용하는 경우 다운로드 페이지에서 풀 암호 파일(풀 암호)을 다운로드할 수 있습니다 . 풀 암호 파일을 보조 설치 관리자 클라이언트 머신에 복사합니다. 이 예에서 풀-암호는 pull-secret.txt라는 파일에 저장합니다.

      공백을 제거하고, 내용을 JSON 문자열 형식으로 변환하고 다음과 같이 환경 변수로 저장합니다.

    3. Red Hat 계정에서 오프라인 액세스 토큰을 복사합니다. OpenShift Cluster Manager API 토큰을 사용하면(보조 설치자 클라이언트 머신에서) Red Hat에서 호스팅하는 보조 설치 관리자 API 서비스와 상호 작용할 수 있습니다.
      토큰은 로컬 환경 변수에 복사하여 붙여넣을 수 있는 문자열입니다. Red Hat에서 호스팅된 보조 설치 관리자를 사용하는 경우 다운로드 페이지에서 API 토큰을 복사할 수 있습니다 .
    4. OFFLINE_ACCESS_TOKEN 토큰을 생성(새로 고침). API 명령을 실행할 때마다 이 생성된 토큰을 사용합니다.
      참고:

      이 토큰은 정기적으로 만료됩니다. 이 토큰이 만료되면 API 명령을 실행할 때마다 HTTP 400 응답을 받게 됩니다. 토큰이 만료될 때 새로 고치거나 토큰이 만료되기 전에 정기적으로 새로 고칩니다. 토큰이 만료되지 않은 경우 토큰을 리프레시하는 데 해가 되지 않습니다.

    5. 나머지 환경 변수를 설정합니다.
      표 1 은(는) 이전 단계에 설명된 변수를 포함하여 이 절차에서 설정해야 하는 모든 환경 변수를 나열합니다.
      표 1: 환경 변수
      변수 설명
      CLUSTER_SSHKEY 생성한 (공개) ssh 키입니다. 이 키는 모든 클러스터 노드에 설치됩니다.
      PULL_SECRET JSON 문자열 형식으로 다운로드, 제거 및 변환한 이미지 풀 암호입니다.
      OFFLINE_ACCESS_TOKEN 복사한 OpenShift Cluster Manager API 토큰입니다.
      토큰 OFFLINE_ACCESS_TOKEN 생성한 토큰(새로 고침).
      CLUSTER_NAME 클러스터를 호출할 이름입니다. Red Hat 하이브리드 클라우드 콘솔 UI에 나타날 이름입니다.
      참고:

      이 이름은 소문자여야 합니다.

      내 클러스터
      CLUSTER_DOMAIN 클러스터에 할당할 기본 도메인입니다. 클러스터 개체는 이 도메인에 이름이 할당됩니다. Contrail.lan
      CLUSTER_NET 오버레이 클러스터 네트워크. Pod에는 이 네트워크에 IP 주소가 할당됩니다. 10.128.0.0/14
      CLUSTER_SVC_NET 오버레이 서비스 네트워크. 서비스에는 이 네트워크에 IP 주소가 할당됩니다. 172.31.0.0/16
      CLUSTER_HOST_PFX CLUSTER_NET IP 주소를 할당하기 위한 서브넷 접두사 길이. 이는 pod IP 주소 할당에 사용할 CLUSTER_NET IP 주소의 하위 집합을 정의합니다. 23
      CLUSTER_MACHINE_NET 호스트가 연결하는 시스템 네트워크입니다. Kubernetes 컨트롤 플레인 트래픽을 위한 패브릭 가상 네트워크입니다. 172.16.0.0/24
      CLUSTER_API_VIP

      API 엔드포인트에 할당할 가상 IP 주소입니다. 이는 내부 로드 밸런서가 API 트래픽을 백엔드 노드로 배포하는 데 사용할 프론트엔드 IP 주소입니다.

      사용되지 않는 CLUSTER_MACHINE_NET 내에서 IP 주소를 선택합니다.

      172.16.0.100
      CLUSTER_INGRESS_VIP

      수신으로 할당할 가상 IP 주소입니다. 이는 내부 로드 밸런서가 애플리케이션 트래픽을 백엔드 노드로 배포하는 데 사용할 프론트엔드 IP 주소입니다.

      사용되지 않는 CLUSTER_MACHINE_NET 내에서 IP 주소를 선택합니다.

      172.16.0.101
      AI_URL 보조 설치 관리자 서비스의 URL입니다. 이 예에서는 Red Hat 호스팅 보조 설치 관리자를 사용합니다. https://api.openshift.com
  3. 보조 설치 서비스로 클러스터를 등록합니다. 등록하면 지원 설치 관리자 서비스에 생성하려는 클러스터의 특성에 대해 알려야 합니다. 이에 대응하여 보조 설치자 서비스는 클러스터 리소스를 생성하고 해당 클러스터 리소스를 고유하게 식별하는 클러스터 식별자를 반환합니다.
    1. 생성할 클러스터를 설명하는 파일을 만듭니다. 이 예에서는 file deployment.json의 이름을 지정합니다.
    2. 클러스터를 등록하고 CLUSTER_ID 환경 변수에 저장합니다. 방금 생성한 deployment.json 파일을 참조하십시오.
    3. 클러스터 속성을 업데이트하여 클러스터가 Contrail을 네트워킹 기술로 사용할 수 있도록 지정합니다.
    4. 변경 사항을 검토합니다.
    클러스터를 등록한 후에는 브라우저를 Red Hat 하이브리드 클라우드 콘솔( https://console.redhat.com/openshift)으로 연결하여 설치 진행 상황을 확인할 수 있습니다. 클러스터 이름 또는 cluster ID로 클러스터를 검색할 수 있습니다.
  4. 디스커버리 부팅 ISO를 생성합니다. 이 ISO를 사용하여 클러스터의 노드를 부팅합니다.
    ISO는 설정하려는 인프라 환경을 기반으로 인프라에 맞춤화됩니다.
    1. 인프라 환경을 설명하는 파일을 생성합니다. 이 예에서는 infra-envs.json의 이름을 지정합니다.
      초기 바인딩을 사용하면 인프라 환경에 클러스터 세부 정보가 포함됩니다.
    2. 지정된 인프라 환경을 기반으로 디스커버리 부팅 ISO를 구축하려면 보조 설치 관리자 서비스에 문의하십시오. 방금 생성한 infra-envs.json 파일을 참조합니다. 그 대가로 보조 설치 서비스(Assisted Installer) 서비스는 저장해야 하는 InfraEnv 식별자를 할당합니다.
    3. 확장된 API 서버에 대한 적절한 인증서로 ISO를 패치합니다.
      점화 파일을 적용하여 이 작업을 수행합니다. 아래 내용을 infra-ignition.json 파일에 복사합니다. 콘텐츠에는 확장된 API 서버를 적절한 인증서로 구성하는 인코딩 스크립트가 포함되어 있습니다.
      방금 생성한 ignition 파일을 적용합니다.
    4. ISO를 다운로드하십시오. 이 예에서는 이름을 비롯한 클러스터 식별자를 참조하는 ai-liveiso-iso$CLUSTER_ID라고 합니다.
  5. 디스커버리 부팅 ISO로 컨트롤 플레인 노드 3개 부팅.
    1. 인프라에 가장 편리한 부팅 방법을 선택하십시오. Red Hat 호스팅 보조 설치 서비스에 액세스할 수 있는 네트워크에 연결된 시스템이 부팅되는지 확인합니다.
      그림 1에 표시된 네트워크 예시에서 노드는 2개의 인터페이스를 가지고 있으며, 하나의 인터페이스는 172.16.0.0/24 네트워크에 연결되고 다른 인터페이스는 10.16.0.0/24 네트워크에 연결됩니다.
      참고:

      DHCP 서버를 구성하여 컨트롤 플레인 노드에 대해 10.16.0.0/24 네트워크(예: 컨트롤 플레인 노드에 10.16.0.11~ 10.16.0.13, 작업자 노드에 10.16.0.14 및 10.16.0.15)를 할당하도록 구성합니다.

      설치 전의 4단계에 따라 99-network-configmap.yaml 매니페스트를 구성해야 합니다.

    2. 클러스터 상태를 확인합니다.
      상태는 노드가 성공적으로 올라올 때 준비를 표시해야 합니다.
    3. 검증 상태 확인:
      검증 상태는 클러스터를 올바르게 정의했는지 여부를 보여줍니다. 출력에 오류가 없어야 합니다.
    4. 호스트 확인:
      출력에는 부팅한 모든 노드의 세부 정보가 표시됩니다.
      호스트 ID와 같은 특정 정보를 필터링할 수 있습니다.
      및 호스트 역할:
    5. 역할이 할당되었는지 확인합니다.

      브라우저에서 Red Hat 하이브리드 클라우드 콘솔(https://console.redhat.com/openshift)으로 이동하여 클러스터의 세부 정보를 보려면 클러스터를 클릭합니다. 클러스터 이름 또는 cluster ID로 클러스터를 검색할 수 있습니다.

      노드(호스트)가 나타나고 역할이 컨트롤 플레인 노드로 성공적으로 할당된 경우에만 다음 단계로 진행합니다. 컨트롤 플레인 노드 3개만 부팅했으므로 UI에서 할당된 역할이 컨트롤 플레인, 작업자로 표시됩니다.

  6. API 트래픽에 대한 가상 IP 주소를 설정합니다.
  7. 5단계를 반복하여 작업자 노드를 부팅합니다.
    호스트 역할을 쿼리하면 작업자 노드가 자동 할당 상태인 것을 볼 수 있습니다. 이것은 예상됩니다. 지원 설치자 서비스는 클러스터를 설치할 때 나중에 이러한 노드에 대한 역할을 할당합니다.
  8. Contrail 매니페스트(설치 전에 다운로드한 매니페스트)를 보조 설치 서비스에 업로드합니다. 클러스터 관리 네트워킹에 특정한 추가 매니페스트를 포함해야 합니다.

    편의를 위해 다음 bash 스크립트를 사용할 수 있습니다. 스크립트는 매니페스트 디렉터리에 매니페스트 를 배치한 것으로 가정합니다. 이 스크립트를 사용하는 경우 다음을 확인해야 합니다.

    • 하위 디렉터리에서 사용하려는 모든 매니페스트를 포함하여 이 디렉터리에 사용하려는 모든 매니페스트를 배치합니다.
    • 이 디렉터리에 다른 YAML 파일을 배치하지 않습니다.

    스크립트는 매니페스트 디렉터리에 있는 모든 *.yaml 파일을 루프하여 base64에 인코딩하고 클러스터에 적용합니다.

  9. 클러스터 설치를 시작합니다.

    보조 설치자 서비스는 사용자가 정의한 클러스터 리소스를 기반으로 클러스터를 만듭니다. 먼저, 보조 설치자는 컨트롤 플레인 노드 중 하나를 부트스트랩 노드로 할당하고, 이 노드는 다른 노드를 준비합니다. 비 부트스트랩 노드가 클러스터로 재부팅되고, 비 부트스트랩 컨트롤 플레인 노드가 먼저 재부팅되고, 작업자 노드와 마지막으로 부트스트랩 노드가 하나씩 재부팅되는 것을 볼 수 있습니다.

    설치에는 한 시간 이상이 걸릴 수 있습니다. Red Hat 하이브리드 클라우드 콘솔(https://console.redhat.com/openshift)에서 설치 진행 상황을 확인할 수 있습니다.

    Red Hat 하이브리드 클라우드 콘솔에 설치 스톨링이 표시되면 사용자 이름이 core 있는 각 노드에 로그인하고 호스트가 도메인 이름, 특히 DNS/DHCP 서버에서 구성한 도메인 이름, Red Hat 보조 설치 서비스 및 주니퍼 네트웍스 리포지토리 도메인 이름을 해결할 수 있는지 확인합니다. 대부분의 일반적인 설치 문제는 잘못된 DNS 구성과 같은 네트워크 구성 오류로 거슬러 올라갈 수 있습니다. 또한 일부 환경에서는 노드가 재부팅 대신 종료될 수 있습니다. 이 경우 종료된 노드를 수동으로 시작합니다.

  10. 클러스터에 대한 kubeconfig를 다운로드합니다.
    1. kubeconfig를 로컬 kubeconfig 파일로 다운로드합니다.
    2. kubeconfig를 ~/.kube/config로 복사합니다. 나중에 사용할 명령은 kubeconfig가 기본 위치에 있을 것으로 예상하기 때문에 contrailstatus kubeconfig는 기본값 ~/.kube/config 위치여야 합니다.
  11. 설치를 확인합니다.
    1. 모든 포드의 상태를 확인합니다. 모든 포드가 실행 중 또는 완료된 상태에 있는지 확인합니다.
    2. 실행 또는 완료된 상태가 아닌 해당 꼬투리의 경우, kubectl 설명 명령을 사용하여 더 자세히 조사합니다.

      일반적인 문제가 이미지를 다운로드하지 못하고 있습니다. 이 경우 다음을 수행합니다.

      • 네트워크가 주니퍼 네트웍스 리포지토리에 도달할 수 있는지 확인
      • 실패한 포드가 있는 노드가 DNS 서버에 액세스하도록 구성되었는지 확인합니다.
      • 실패한 포드가 있는 노드가 호스트 이름으로 리포지토리를 ping할 수 있는지 확인합니다.
  12. (선택 사항) OpenShift 웹 콘솔에 로그인하여 클러스터를 모니터링합니다.
    웹 콘솔 URL은 https://console-openshift-console.apps.<cluster-name><cluster-domain>입니다.
    1. 웹 콘솔에 액세스하려는 브라우저가 웹 콘솔 URL에 액세스할 수 있는 컴퓨터에 있는지 확인합니다. 해당 콘솔의 호스트 이름에 대한 항목을 해당 시스템의 /etc/hosts 파일에 추가해야 할 수 있습니다. 이 매핑은 설치 전의 DNS 서버에서 구성한 *.apps.mycluster.contrail.lan 매핑입니다.
    2. Kubeadmin 암호를 다운로드합니다.
    3. 사용자 이름 kubeadmin 및 다운로드한 암호를 사용하여 OpenShift 웹 콘솔에 로그인합니다.
Contrail Networking OpenShift를 성공적으로 설치했습니다.