Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Contrail Insights Kubernetes용 설치

아키텍처 및 용어

Kubernetes 클러스터 노드

네트워크 모니터링을 진행하는 Kubernetes 클러스터의 기본 노드 및 Contrail Insights. 이들 노드는 Contrail Insights Agent를 실행합니다.

Contrail Insights 플랫폼 노드

플랫폼 구성 Contrail Insights 설치할 노드 Kubernetes 클러스터 노드에 도달할 수 있습니다.

그림 1은 각기 다른 구성 요소와 Contrail Insights Kubernetes 클러스터와 상호 작용하는 방법을 보여줍니다.

그림 1: Contrail Insights 및 Kubernetes 워크플로우 Contrail Insights and Kubernetes Workflow

요구 사항

다음은 Kubernetes에 대한 Contrail Insights 요구 사항입니다.

  • Kubernetes 버전 1.8 이상.

  • 하드웨어 및 Contrail Insights 요구 사항에 대한 자세한 일반 요구 사항을 참조하십시오.

  • Kubernetes API 서버에 대한 API 액세스. Contrail Insights API 서버에서 클러스터에 대한 정보를 읽습니다. 구성 중에 제공되는 토큰은 읽기 전용 API 호출에 충분한 권한을 제공해야 합니다. Contrail Insights 플랫폼은 API 서버가 실행되는 호스트 및 포트에 대한 연결을 열 수도 있어야 합니다.

  • 참고:

    업그레이드 공지: Contrail Insights 3.2.6에서 시작하여 라이선스 파일에 대한 요구 사항이 제거됩니다. 3.2.6보다 일찍 버전을 설치하는 경우 설치 전에 라이선스가 필요합니다.

    라이선스 키를 에서 얻을 수 mailto:APPFORMIX-KEY-REQUEST@juniper.net. 요청 시 다음과 같은 정보를 제공합니다.

4단계 워크플로우

설치는 다음과 같은 단계로 구성됩니다.

  1. 최초 설정.

  2. Kubernetes 구성.

  3. 설치 Contrail Insights.

  4. Contrail Insights 스케줄러 확장기 설정

최초 설정

최초 설정에 대한 다음 단계를 수행합니다.

  1. 다음 필수 파일을 Contrail Insights 플랫폼 노드에 설치합니다.

    참고:

    RHEL의 경우, 포트 iptables 9000에 액세스하기 위해 다음 규칙이 필요합니다.

  2. Contrail Insights 플랫폼 노드에서 파일을 편집하고 Kubernetes 클러스터 노드의 IP 주소를 /etc/hosts/ 입력합니다.

  3. Contrail Insights 플랫폼 노드와 Kubernetes 클러스터 노드 간에 암호가 없는 SSH를 설정합니다. 다음 명령을 실행하여 SSH 공용 키를 모든 노드에 생성하고 복사합니다.

Kubernetes 구성

Contrail Insights Kubernetes 클러스터의 리소스에 대한 정보를 읽어볼 수 있습니다. 이 소프트웨어는 클러스터의 모든 객체에 대한 읽기 전용 액세스를 제공하는 클러스터 관리자 역할 또는 또 다른 역할을 필요로 합니다. 새 서비스 계정을 생성하고 클러스터 Contrail Insights 할당하는 것이 좋습니다.

새 Service Account를 생성하지 않는 경우, 서비스 구성 시 필요한 액세스 권한을 보유한 기존 Service Account에서 토큰을 Contrail Insights.

네트워크 액세스가 필요한 새 Service Account를 Contrail Insights Kubernetes 클러스터에서 다음 단계를 수행합니다.

  1. YAML 파일을 다음과 같이 작성합니다.

  2. 1단계에서 작성한 파일을 사용하여 Service appformix Account 생성:

  3. Service Account가 생성된지 확인 나중에 필요하면 이름 공간에 대해 유의해야 합니다.

  4. 3단계에서 언급된 네임스페이스에 대한 < > 역할을 서비스 계정에 cluster-admin appformix namespace 추가합니다.

  5. 다음 명령을 실행하여 Service Account에 필요한 액세스 appformix 권한을 부여합니다.

    명령의 출력은 "예"입니다.

  6. Contrail Insights Kubernetes 클러스터와 통신하도록 구성해야 합니다. Kubernetes 클러스터에서 설치하는 동안 사용할 Kubernetes Contrail Insights.

    kubernetes_cluster_url

    Kubernetes API Server의 URL입니다. 이 값을 얻기 위해 Kubernetes 클러스터에서 다음 명령을 실행합니다.

    kubernetes_auth_token

    이는 Service appformix Account의 인증 토큰입니다. 이 값을 얻기 위해 Kubernetes 클러스터에서 다음 명령을 실행합니다.

설치 Contrail Insights

설치하려면 Contrail Insights:

  1. 소프트웨어 다운로드에서 Contrail Insights 플랫폼 노드로 배포하는 Contrail Insights 패키지를 다운로드하십시오. 아래 파일 다운로드:

    3.2.6보다 일찍 버전을 설치하는 경우 Contrail Insights 플랫폼 노드에 Contrail Insights 라이선스 파일을 복사합니다.

  2. contrail-insights-<version>.tar.gz 언지프(Unzip) 이 패키지에는 설치에 필요한 모든 Ansible 플레이북이 Contrail Insights.

    참고:

    나머지 단계는 디렉토리 내에서 contrail-insights-<version>/ 실행됩니다. 제품 이름이 "AppFormix"에서 "Contrail Insights"로 변경됐지만, UI 및 내부 명령 경로는 계속 AppFormix 표시되고 나중에 새 이름을 반영합니다.

  3. 템플릿으로 sample_inventory 사용하여 설치를 위한 인벤토리 파일을 만듭니다. 섹션에 Kubernetes 클러스터 노드와 섹션의 Contrail Insights compute 플랫폼 노드를 appformix_controller 설명합니다.

  4. 으로 불리는 디렉토리를 group_vars 생성합니다. 에서 요구하는 구성 변수를 사용하여 이 디렉토리 내부에 all 이름을 Contrail Insights.

    3.2. Contrail Insights 6보다 일찍 버전을 설치하는 경우 group_vars/all

    참고:

    데프문(Deprecation Notice) : 이전에는 2.19.5에서 시작된 매개 변수가 Contrail Insights 이제 더 이상 appformix_mongo_cache_size_gb Contrail Insights 3.2.0에서 지원되지 않습니다. Mongo는 Contrail Insights 3.2.0 버전에서부터 Contrail Insights 플랫폼 노드에서 최대 40%의 가용 메모리를 사용하도록 구성됩니다.

  5. 클러스터에서 네트워크 디바이스 모니터링을 활성화하려면 파일에 다음을 group_vars/all 포함하십시오.

  6. Ansible 플레이북을 실행합니다.

    오류 없이 플레이북을 실행하여 완료해야 합니다.

  7. 다음의 Contrail Insights 대시보드에 로그인합니다.

  8. Contrail Insights 플랫폼 노드의 다음 파일에서 토큰을 사용하여 로그인합니다.

Contrail Insights 스케줄러 확장기 설정

Contrail Insights Kubernetes 스케줄러에 추가할 수 있는 Scheduler Extender 모듈이 함께 제공합니다. 이 모듈을 설치하면 Kubernetes 스케줄러는 기본 정책뿐만 아니라 사용자 정의 SLA 정책을 사용하여 클러스터에서 pod를 예약할 위치를 결정할 수 있습니다.

Scheduler Extender를 설정하기 위해 다음을 실행합니다.

  1. Contrail Insights Scheduler Extender를 설명하는 JSON 파일을 생성합니다. 이 파일을 /etc/kubernetes Kubernetes 기본 노드에 저장합니다.

  2. 블록에 옵션을 추가하여 기본 노드에 확장 kube-scheduler --policy-config-file 기능을 spec.containers.command 추가합니다.

  3. 기본 노드에서 서비스를 재시작하여 kube-scheduler kubelet 컨테이너를 업데이트합니다.

    kube-scheduler 현재 Contrail Insights 스케줄러 확장기에서 실행됩니다.

    기본적으로 Kubernetes는 기본 노드에서 사용자 pod를 예약할 수 없습니다. 3 노드 Kubernetes 클러스터에서 Contrail Insights Scheduler Extender가 실제로 실행되는 경우, 다음 명령을 사용하여 Kubernetes 기본 노드에서 스케줄링을 활성화합니다.

Seduling을 위한 Contrail Insights SLA 프로필 사용

Contrail Insights 하트비트 누락, 높은 CPU 로드, 높은 메모리 사용량에 대한 알람이 포함된 기본 스위킹 SLA가 함께 제공됩니다.

Schuling SLA에서 프로필을 변경하려면 다음을 합니다.

  1. Dashboard 우측 상단의 목록에서 설정을 선택한 다음 SLA 설정 및 > 선택

    그림 2: Contrail Insights 설정 Contrail Insights Settings in Dashboard
  2. 삭제 프로파일을 클릭하여 기존 프로파일 삭제.

    그림 3: 스위킹 프로파일 삭제 Delete Scheduling Profile
  3. Add New Rule을 클릭하고 새 경보를 정의합니다.

    그림 4: 프로파일에 새로운 규칙 추가 Add New Rule in Scheduling Profile
  4. 사용 가능한 알람 목록에서 새로 생성된 경보를 선택하고 Profile 생성을 클릭합니다. 사용자 지정 가중치를 사용하여 SLA 프로필에 여러 알람을 추가할 수 있습니다.

    그림 5: SLA Create Profile in Scheduling SLA 예정에 프로필 생성
  5. Scheduler Extender가 실제로 실행되는 경우, 스케줄링 SLA를 위반할 수 있도록 Kubernetes 클러스터 노드 중 하나에 대한 일부 로드를 생성합니다. Alarms 페이지의 SLA 상태를 선택합니다.

    그림 6: 알람 내 SLA Violated Scheduling SLA in Alarms page 위반

    그런 다음 Kubernetes 클러스터에서 일부 pod를 생성하고 예정된 노드를 검사합니다. 스케줄링 SLA를 위반하는 노드는 스케줄링된 새로운 pod를 얻지 못합니다.