Contrail Command를 설치하고 Contrail 클러스터를 프로비저닝하는 방법
이 문서를 사용하여 Contrail Networking의 그래픽 사용자 인터페이스인 Contrail Command를 설치하고 서버 또는 VM을 Contrail 클러스터의 노드로 프로비저닝하십시오. 서버 또는 VM은 컴퓨팅 노드, 제어 노드, 오케스트레이터 노드, Contrail Insights 노드, Contrail Insights Flows 노드 또는 서비스 노드로 프로비저닝되어 이 절차에 따라 Contrail 클러스터를 생성합니다.
Contrail Insights 및 Contrail Insights Flows의 이전 명칭은 Appformix 및 Appformix Flows였습니다.
이 문서를 사용하는 경우
Contrail Networking의 구성 및 유지 관리를 위한 기본 인터페이스로 Contrail Command를 사용하는 것이 좋습니다.
따라서 Contrail Networking 환경에서 초기 구성 작업으로 이 문서의 절차를 완료해야 합니다.
서버 요구 사항
Contrail Networking 환경에는 서버 기능을 제공하는 물리적 서버 또는 VM이 포함될 수 있지만, 가능하면 확장성 및 가용성을 위해 물리적 서버를 사용하는 것이 좋습니다.
Contrail 환경의 각 서버에는 최소한 다음이 있어야 합니다.
64GB 메모리.
300GB 하드 드라이브.
4개의 CPU 코어.
하나 이상의 이더넷 포트.
Contrail Networking의 서버 요구 사항에 대한 자세한 내용은 서버 요구 사항 및 지원 플랫폼을 참조하십시오.
소프트웨어 요구 사항
Contrail Command 및 Contrail Networking
Contrail Command와 Contrail Networking은 동시에 업데이트되며 항상 동일한 버전의 Contrail Networking 소프트웨어를 실행합니다.
각 Contrail Networking 릴리스에는 오케스트레이션 플랫폼 버전, 오케스트레이션 플랫폼 구축에 사용된 배포자, 지원되는 서버 운영 체제 버전 및 기타 소프트웨어 요구 사항에 기반한 소프트웨어 호환성 요구 사항이 있습니다.
모든 Contrail Networking 릴리스에 대해 지원되는 플랫폼 목록과 추가적인 환경별 소프트웨어 요구 사항은 Contrail Networking 지원 플랫폼 목록을 참조하십시오.
Contrail Insights 및 Contrail Insights 플로우
Contrail 릴리스 2005부터 Contrail Networking 릴리스를 지원하는 Contrail Insights 및 Contrail Insights Flows 이미지는 Contrail Command 내에서 자동으로 프로비저닝됩니다. Contrail Command 버전을 다운로드하면 Contrail Command는 주니퍼 Contrail 레지스트리 내에서 Contrail Networking 버전에 대한 Contrail Insights 및 Contrail Insights Flows 이미지를 자동으로 가져옵니다. 따라서 개별 Contrail Insights 소프트웨어를 별도로 다운로드하거나 설치에 대한 Contrail Insights 또는 Contrail Insights 버전 번호를 인식할 필요가 없습니다.
Contrail 이미지 획득 방법
이 문서에 사용된 절차는 hub.juniper.net 주니퍼 네트웍스 Contrail Docker 프라이빗 보안 레지스트리에서 Contrail Command, Contrail Insights 및 Contrail Insights Flows 소프트웨어를 다운로드합니다. 이 레지스트리에 대한 액세스 자격 증명을 얻기 위해 mailto:contrail-registry@juniper.net 이메일을 보냅니다.
Contrail 레지스트리에서 Contrail 이미지를 검색하려면 Contrail 이미지에 대한 을 Container Tags (를) 알아야 합니다. Contrail Registry 21XX에 대한 README 액세스를 참조하십시오.
Contrail Networking 이미지는 Contrail 다운로드 페이지에서도 사용할 수 있습니다. 제품 이름으로 입력합니다 Contrail Networking .
Contrail Insights 및 Contrail Insights Flows 이미지는 Contrail Insights 다운로드 페이지에서도 사용할 수 있습니다. 제품 이름으로 입력합니다 Contrail Insights .
Contrail Command 설치 방법
Contrail Command는 Contrail Networking을 위한 단일 창 GUI 인터페이스입니다. 최적화된 Contrail 네트워킹 경험을 위해 Contrail 클러스터를 생성하기 전에 Contrail Command를 설치하는 것이 좋습니다. Contrail Command는 이러한 지침에 따라 설치됩니다.
Contrail Command에 대한 자세한 내용은 Contrail 네트워킹 구성 요소 이해하기를 참조하십시오.
시작하기 전에
Contrail Command를 호스팅할 Contrail Command 서버가 다음과 같은 최소 시스템 요구 사항을 충족하는 가상 머신(VM) 또는 물리적 x86 서버인지 확인합니다.
vCPU 4개
32 기가바이트 램
100GB의 디스크 스토리지(모든 사용자 스토리지가 "/" 파티션에 포함됨).
"/home" 파티션이 있는 경우 해당 파티션을 제거하고 "/" 파티션을 해제된 저장 공간의 양만큼 늘립니다.
서버 요구 사항에 나열된 사양을 충족합니다.
사용 중인 Contrail Networking 버전을 지원하는 CentOS 버전을 실행합니다.
Contrail Networking 및 오케스트레이션 플랫폼 조합으로 지원되는 CentOS 버전 목록은 Contrail Networking 지원 플랫폼 목록을 참조하십시오.
명령을 사용하여 업데이트된 패키지와 함께 CentOS를 설치할 수 있습니다
yum update
.hub.juniper.net 에서 Contrail Container 레지스트리에 액세스할 수 있습니다. 이 액세스 권한이 필요한 이유는 Contrail Command Docker 이미지를 포함하는 Contrail Command 배포자가 이 설치 절차 중에 이 레지스트리에서 검색되기 때문입니다.
Contrail Container 레지스트리에 대한 액세스 권한이 없는 경우 mailto:contrail-registry@juniper.net 이메일을 보내 액세스 자격 증명을 받으십시오. 이 레지스트리 액세스에 대한 자세한 내용은 Contrail Registry 21XX에 대한 액세스 읽어 보기를 참조하십시오.
인터넷에 연결되어 있습니다.
관리 네트워크에 연결된 하나 이상의 활성 IP 인터페이스를 포함합니다. Contrail Command는 관리 IP 인터페이스를 통해 Contrail 및 오케스트레이터 클러스터를 관리합니다.
설치 중인 릴리스에 대한 컨테이너 태그를 가져옵니다. 컨테이너 태그는 이 절차 중에 설치된 hub.juniper.net 리포지토리에서 Contrail Command 컨테이너 파일을 식별하는 데 필요합니다.
모든 Contrail 릴리스 21 기반 이미지의 컨테이너 태그는 Contrail Registry 21XX에 대한 README 액세스에서 찾을 수 있습니다.
설치를 위한 Contrail Command Server 준비
설치를 위해 서버 또는 VM을 준비하려면 다음을 수행합니다.
Contrail Command 설치
서버에 Contrail Command를 설치하는 방법:
Contrail 클러스터에 서버를 프로비저닝하는 방법
이 절차에 따라 Contrail 클러스터에 서버를 프로비저닝합니다. Contrail 클러스터는 클라우드 네트워킹 환경에서 컴퓨팅 노드, 제어 노드, 오케스트레이터 노드, Contrail Insights 노드, Contrail Insights Flows 노드 또는 서비스 노드로 프로비저닝된 상호 연결된 서버의 모음입니다.
시작하기 전에
시작하기 전에:
토폴로지를 계획합니다.
대역 외 관리 네트워크가 설정되었는지 확인합니다.
Contrail Command가 설치되어 있는지 확인합니다. contrail 명령 설치 방법을 참조하십시오.
Contrail 클러스터 기능을 호스팅하는 모든 서버가 서버 요구 사항에 나열된 사양을 충족하는지 확인합니다.
Contrail 클러스터 프로비저닝 방법
Contrail 클러스터를 프로비저닝하려면 다음을 수행합니다.
Contrail Command 설치를 위한 샘플 command_servers.yml 파일
최소 command_servers.yml 파일
다음 샘플 파일에는 Contrail Command를 설치할 때 필요한 최소 구성이 있습니다.
보안을 위해 사용자 환경에서 고유한 사용자 이름 및 암호 조합을 만드는 것이 좋습니다. 이 예에서는 설명 목적으로만 사용자 이름과 비밀번호 조합이 제공됩니다.
--- # Required for Appformix and Appformix Flows installations in Release 2003 and earlier user_command_volumes: - /opt/software/appformix:/opt/software/appformix - /opt/software/xflow:/opt/software/xflow command_servers: server1: ip: <IP Address> # IP address of server where you want to install Contrail Command connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> registry_insecure: false container_registry: hub.juniper.net/contrail container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail contrail_config: database: type: postgres dialect: postgres password: contrail123 keystone: assignment: data: users: admin: password: contrail123 insecure: true client: password: contrail123
전체 command_servers.yml 파일
다음 샘플 파일에는 Contrail Command를 설치할 때 사용할 수 있는 전체 구성 및 지원 매개 변수 목록이 포함되어 있습니다.
보안을 위해 사용자 환경에서 고유한 사용자 이름 및 암호 조합을 만드는 것이 좋습니다. 이 예에서는 설명 목적으로만 사용자 이름과 비밀번호 조합이 제공됩니다.
--- # Required for Appformix and Appformix Flows installations in Release 2003 and earlier user_command_volumes: - /opt/software/appformix:/opt/software/appformix - /opt/software/xflow:/opt/software/xflow # User defined volumes #user_command_volumes: # - /var/tmp/contrail:/var/tmp/contrail command_servers: server1: ip: <IP Address> connection: ssh ssh_user: root ssh_pass: <contrail command server password> sudo_pass: <contrail command server root password> ntpserver: <NTP Server address> # Specify either container_path #container_path: /root/contrail-command-051618.tar # or registry details and container_name registry_insecure: false container_registry: hub.juniper.net/contrail container_name: contrail-command container_tag: <container_tag> container_registry_username: <registry username> container_registry_password: <registry password> config_dir: /etc/contrail # contrail command container configurations given here go to /etc/contrail/contrail.yml contrail_config: # Database configuration. PostgreSQL supported database: type: postgres dialect: postgres host: localhost user: root password: contrail123 name: contrail_test # Max Open Connections for DB Server max_open_conn: 100 connection_retries: 10 retry_period: 3s # Log Level log_level: debug # Cache configuration cache: enabled: true timeout: 10s max_history: 100000 rdbms: enabled: true # Server configuration server: enabled: true read_timeout: 10 write_timeout: 5 log_api: true address: ":9091" # TLS Configuration tls: enabled: true key_file: /usr/share/contrail/ssl/cs-key.pem cert_file: /usr/share/contrail/ssl/cs-cert.pem # Enable GRPC or not enable_grpc: false # Static file config # key: URL path # value: file path. (absolute path recommended in production) static_files: /: /usr/share/contrail/public # API Proxy configuration # key: URL path # value: String list of backend host #proxy: # /contrail: # - http://localhost:8082 notify_etcd: false # VNC Replication enable_vnc_replication: true # Keystone configuration keystone: local: true assignment: type: static data: domains: default: &default id: default name: default projects: admin: &admin id: admin name: admin domain: *default demo: &demo id: demo name: demo domain: *default users: admin: id: admin name: Admin domain: *default password: contrail123 email: admin@juniper.nets roles: - id: admin name: admin project: *admin bob: id: bob name: Bob domain: *default password: bob_password email: bob@juniper.net roles: - id: Member name: Member project: *demo store: type: memory expire: 36000 insecure: true authurl: https://localhost:9091/keystone/v3 # disable authentication with no_auth true and comment out keystone configuraion. #no_auth: true insecure: true etcd: endpoints: - localhost:2379 username: "" password: "" path: contrail watcher: enabled: false storage: json client: id: admin password: contrail123 project_name: admin domain_id: default schema_root: / endpoint: https://localhost:9091 compilation: enabled: false # Global configuration plugin_directory: 'etc/plugins/' number_of_workers: 4 max_job_queue_len: 5 msg_queue_lock_time: 30 msg_index_string: 'MsgIndex' read_lock_string: "MsgReadLock" master_election: true # Plugin configuration plugin: handlers: create_handler: 'HandleCreate' update_handler: 'HandleUpdate' delete_handler: 'HandleDelete' agent: enabled: true backend: file watcher: polling log_level: debug # The following are optional parameters used to patch/cherrypick # revisions into the contrail-ansible-deployer sandbox. These configs # go into the /etc/contrail/contrail-deploy-config.tmpl file # cluster_config: # ansible_fetch_url: "https://review.opencontrail.org/Juniper/contrail-ansible-deployer refs/changes/80/40780/20" # ansible_cherry_pick_revision: FETCH_HEAD # ansible_revision: GIT_COMMIT_HASH
재해 복구 및 문제 해결
요약 이 섹션에서는 일반적으로 볼 수 있는 오류 및 실패 시나리오와 이를 해결하는 절차를 나열합니다.
문제
설명
Recovering the Galera Cluster Upon Server Shutdown- Kolla 및 OpenStack Rocky를 사용하여 프로비저닝된 OpenStack HA 설정에서 모든 서버를 동시에 종료했다가 나중에 가동하면 Galera 클러스터가 실패합니다.
솔루션
Galera 클러스터를 복구하려면 다음 단계를 수행합니다.
/etc/kolla/mariadb/galera.cnf 파일을 편집하여 다음과 같이 컨트롤러 중 하나에서 주소를 제거합니다
wsrep
.wsrep_cluster_address = gcomm:// #wsrep_cluster_address = gcomm://10.x.x.8:4567,10.x.x.10:4567,10.x.x.11:4567
참고:관리되는 시나리오에서 모든 컨트롤러가 동시에 종료되는 경우 마지막으로 종료된 컨트롤러를 선택해야 합니다.
Docker는 파일을 편집한 컨트롤러에서 mariadb를 시작합니다.
몇 분 동안 기다렸다가 mariadb 컨테이너가 다시 시작되지 않는지 확인한 다음 나머지 컨트롤러에서 docker start mariadb를 시작합니다.
/etc/kolla/mariadb/galera.cnf 파일 변경 사항을 복원하고 이전에 선택한 컨트롤러에서 mariadb 컨테이너를 다시 시작합니다.
문제
설명
Containers from Private Registry Not Accessible- CONTAINER_REGISTRY라는 개인 레지스트리에서 가져온 컨테이너에 액세스할 수 없는 상황이 있을 수 있습니다.
솔루션
이 문제를 해결하려면 REGISTRY_PRIVATE_INSECURE True로 설정되어 있는지 확인합니다.